Object Handlers
The OpenRegister application uses a set of specialized handler classes to manage different aspects of object operations. Each handler is responsible for a specific type of operation, following the Single Responsibility Principle.
Handler Overview
ObjectHandlers/
├── DeleteObject.php
├── GetObject.php
├── RenderObject.php
├── SaveObject.php
└── ValidateObject.php
GetObject Handler
Responsible for retrieving objects from the system.
Key Features
- Finding objects by UUID
- Retrieving multiple objects
- Handling pagination
- Managing file information
- Finding related objects
- Retrieving object logs
Main Methods
public function findByUuid(string $uuid): ?ObjectEntity
public function getObject(Register $register, Schema $schema, string $uuid): ObjectEntity
public function findMultiple(array $ids, ?array $extend = [], bool $files = false): array
public function findAll(?int $limit = null, ?int $offset = null, array $filters = []): array
public function findRelated(ObjectEntity $object): array
public function findLogs(ObjectEntity $object): array
SaveObject Handler
Handles object persistence operations.
Key Features
- Creating new objects
- Updating existing objects
- Managing object metadata
- Handling file attachments
- Setting default values
- Managing object relations
Main Methods
public function saveObject(
Register|int|string $register,
Schema|int|string $schema,
array $object,
?int $depth = null
): ObjectEntity
DeleteObject Handler
Manages object deletion operations.
Key Features
- Deleting single objects
- Cascading deletes
- File cleanup
- Maintaining referential integrity
- Tracking deletion operations
Main Methods
public function deleteObject(
Register|int|string $register,
Schema|int|string $schema,
string $uuid,
?string $originalObjectId = null
): bool
ValidateObject Handler
Handles object validation against schemas.
Key Features
- JSON Schema validation
- Custom validation rules
- Schema resolution
- Error formatting
- Format validation
Main Methods
public function validateObject(array $object, Schema|int|string $schema): ValidationResult
public function resolveSchema(string $uri): array