Documentation

EventFactory
in package

EventFactory - Transforms raw database data into Event entities

This factory class acts as a translator between the database layer (PDO arrays with column names) and the domain layer (Event entities).

Responsibilities:

  • Hydrate Event entities from PDO result arrays
  • Handle type conversions (string to int, int to bool, etc.)
  • Provide clean, type-safe entities to controllers

Design Pattern: Factory Pattern Related to: Data Mapper Pattern

Tags
author

BdeLive - Group 8

version
1.0.0

Table of Contents

Methods

createCollectionFromDatabase()  : array<int, Event>
Create multiple Event entities from database result set
createFromDatabase()  : Event
Create an Event entity from database row data
toDatabase()  : array<string, mixed>
Convert an Event entity back to database-ready array

Methods

createCollectionFromDatabase()

Create multiple Event entities from database result set

public static createCollectionFromDatabase(array<int, array<string, mixed>> $dataSet) : array<int, Event>

Batch version of createFromDatabase for paginated results. Useful when retrieving multiple events from findAll() or findPaginated().

Parameters
$dataSet : array<int, array<string, mixed>>

Array of database rows

Return values
array<int, Event>

Array of hydrated Event entities

createFromDatabase()

Create an Event entity from database row data

public static createFromDatabase(array<string, mixed> $data) : Event

Transforms a raw PDO array (from EVENTS table) into a clean, type-safe Event entity. Handles all type conversions and ensures data integrity.

Database columns mapping:

  • event_id → id (int|null)
  • event_name → name (string)
  • slug → slug (string)
  • event_date → date (string, Y-m-d format)
  • event_time → time (string, H:i format)
  • event_location → location (string)
  • event_theme → theme (string)
  • status_participating → statusParticipating (string)
  • description → description (string)
  • images → images (string, JSON)
  • is_group_event → isGroupEvent (bool)
  • team_size → teamSize (int)
Parameters
$data : array<string, mixed>

Raw database row from EVENTS table

Return values
Event

Hydrated Event entity

toDatabase()

Convert an Event entity back to database-ready array

public static toDatabase(Event $event) : array<string, mixed>

Useful for UPDATE and INSERT operations. Transforms the entity back into an array format compatible with PDO prepared statements.

Note: This method excludes the ID for INSERT operations (handled separately).

Parameters
$event : Event

Event entity to convert

Return values
array<string, mixed>

Database-ready associative array


        
On this page

Search results