DatabaseEventRepository
in package
implements
IEventRepository
Database-backed event repository.
Works with SQLite, MySQL, and PostgreSQL.
Table of Contents
Interfaces
- IEventRepository
- Repository interface for Event entities.
Properties
- $_pdo : PDO
Methods
- __construct() : mixed
- Constructor
- all() : array<string|int, Event>
- Get all events
- create() : Event
- Create new event
- delete() : bool
- Delete event
- findById() : Event|null
- Find event by ID
- findBySlug() : Event|null
- Find event by slug
- getByCategory() : array<string|int, Event>
- Get events by category
- getByCreator() : array<string|int, Event>
- Get events by creator
- getByDateRange() : array<string|int, Event>
- Get events by date range
- getPast() : array<string|int, Event>
- Get past events
- getUpcoming() : array<string|int, Event>
- Get upcoming events
- incrementViewCount() : void
- Increment view count
- slugExists() : bool
- Check if event slug exists
- update() : Event
- Update event
- loadRelations() : void
- Load category and creator relationships for an event
Properties
$_pdo
protected
PDO
$_pdo
Methods
__construct()
Constructor
public
__construct(SettingManager $settings) : mixed
Parameters
- $settings : SettingManager
-
Settings manager with database configuration
Tags
all()
Get all events
public
all() : array<string|int, Event>
Return values
array<string|int, Event>create()
Create new event
public
create(Event $event) : Event
Parameters
- $event : Event
Return values
Eventdelete()
Delete event
public
delete(Event $event) : bool
Parameters
- $event : Event
Return values
boolfindById()
Find event by ID
public
findById(int $id) : Event|null
Parameters
- $id : int
Return values
Event|nullfindBySlug()
Find event by slug
public
findBySlug(string $slug) : Event|null
Parameters
- $slug : string
Return values
Event|nullgetByCategory()
Get events by category
public
getByCategory(int $categoryId[, string $status = 'published' ]) : array<string|int, Event>
Parameters
- $categoryId : int
- $status : string = 'published'
-
Filter by status (default: 'published')
Return values
array<string|int, Event>getByCreator()
Get events by creator
public
getByCreator(int $userId) : array<string|int, Event>
Parameters
- $userId : int
Return values
array<string|int, Event>getByDateRange()
Get events by date range
public
getByDateRange(DateTimeImmutable $startDate, DateTimeImmutable $endDate[, string $status = 'published' ]) : array<string|int, Event>
Parameters
- $startDate : DateTimeImmutable
- $endDate : DateTimeImmutable
- $status : string = 'published'
-
Filter by status (default: 'published')
Return values
array<string|int, Event>getPast()
Get past events
public
getPast([int|null $limit = null ][, string $status = 'published' ]) : array<string|int, Event>
Parameters
- $limit : int|null = null
-
Maximum number of events to return
- $status : string = 'published'
-
Filter by status (default: 'published')
Return values
array<string|int, Event>getUpcoming()
Get upcoming events
public
getUpcoming([int|null $limit = null ][, string $status = 'published' ]) : array<string|int, Event>
Parameters
- $limit : int|null = null
-
Maximum number of events to return
- $status : string = 'published'
-
Filter by status (default: 'published')
Return values
array<string|int, Event>incrementViewCount()
Increment view count
public
incrementViewCount(Event $event) : void
Parameters
- $event : Event
slugExists()
Check if event slug exists
public
slugExists(string $slug[, int|null $excludeId = null ]) : bool
Parameters
- $slug : string
- $excludeId : int|null = null
Return values
boolupdate()
Update event
public
update(Event $event) : Event
Parameters
- $event : Event
Return values
EventloadRelations()
Load category and creator relationships for an event
private
loadRelations(Event $event) : void
Parameters
- $event : Event