pollora / entity
A modern PHP package for WordPress custom post types and taxonomies
Installs: 1 878
Dependents: 1
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 1
pkg:composer/pollora/entity
Requires
- php: ^8.1
- johnbillion/extended-cpts: ^5.0
- pollora/wordpress-args: dev-main
Requires (Dev)
- laravel/pint: ^v1.22.1
- mockery/mockery: ^2.0.x-dev
- pestphp/pest: ^v3.8.2
- phpstan/phpstan: ^2.1.16
This package is auto-updated.
Last update: 2025-09-26 09:33:53 UTC
README
A modern PHP 8.2+ library for easily managing WordPress custom post types and taxonomies with a fluent interface and hexagonal architecture.
Features
- ๐ Modern PHP 8.2+ with type declarations
- ๐๏ธ Fluent interface for easy configuration
- ๐ง Built on top of Extended CPTs library
- ๐ Hexagonal architecture for better separation of concerns
- ๐งช Fully tested with PestPHP
- ๐ก Intuitive method naming with dedicated methods for boolean properties
Installation
composer require pollora/entity
Documentation
- Post Types Documentation - Complete guide for creating and configuring custom post types
- Taxonomies Documentation - Complete guide for creating and configuring custom taxonomies
Quick Start
Post Types
use Pollora\Entity\PostType; PostType::make('book', 'Book', 'Books') ->public() ->showInRest() ->hasArchive() ->supports(['title', 'editor', 'thumbnail']) ->menuIcon('dashicons-book-alt');
Taxonomies
use Pollora\Entity\Taxonomy; Taxonomy::make('genre', 'book', 'Genre', 'Genres') ->hierarchical() ->showInRest() ->showInQuickEdit();
Architecture
This package follows hexagonal architecture principles:
- Domain Layer: Core business logic (Entity, PostType, Taxonomy)
- Application Layer: Services that orchestrate operations
- Adapter Layer: WordPress integration adapters
The Domain layer remains independent of external dependencies, defining interfaces (ports) that adapters implement.
Testing
The package includes comprehensive unit tests using PestPHP with WordPress function mocks:
composer test
Test Structure
tests/helpers.php
: Global WordPress function mockstests/ext_cpts_helpers.php
: Extended CPTs namespace function mockstests/bootstrap.php
: Test environment setup
License
This package is open-source software licensed under the MIT license.