Holloway is an ORM toolkit for Laravel that let's you create your own custom datamappers on top of Laravel's illuminate/database
package. It offers you the query builder you know and love, but at the same time gives you complete control over how your ORM records (Entities) are mapped to and from your database. You can create unbreakable domain models (Entities that are never allowed to exist in an invalid state), with complete control over their construction and behavior throughout the entire application request lifecycle.
- Getting Started - Installation, basic setup, and your first mapper
- Architecture Overview - Understanding the datamapper pattern
- Entity Patterns - Choose the pattern that fits your PHP version
- Entity Hydration - How entities are loaded from the database
- Type Transformations - Automatic value object conversion
- Value Objects - Rich domain types like Money and Email
- Creating Mappers - Mapper basics and configuration
- Query Building - Filtering and retrieving entities
- Persistence Operations - Storing, updating, and deleting
- Scopes - Reusable query logic
- Relationship Overview - Understanding relationships
- Standard Relationships - HasOne, HasMany, BelongsTo, BelongsToMany
- Custom Relationships - Flexible relationship patterns
- Eager Loading - Optimize relationship queries
- Entity Caching - Performance optimization
- Soft Deletes - Soft deletion support
- Events & Hooks - Lifecycle events
- Factories & Testing - Test data creation
Thank you for your interest in improving Holloway! We're currently not accepting PRs at the moment. If you find a bug or have a proposal, please open an issue.
Holloway is open-sourced software licensed under the MIT license.