saritasa / laravel-entity-services
Saritasa entity service for typical CRUD operations
Installs: 11 667
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 10
Forks: 0
Open Issues: 2
Requires
- php: >=8.0
- illuminate/support: >=5.0 <12.0
- saritasa/laravel-repositories: ^4.0
Requires (Dev)
- mockery/mockery: ^1.1
- phpunit/phpunit: ^8.5
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2024-09-07 07:28:30 UTC
README
Library for fast build laravel based application with simple CRUD operations.
As Repositories layer uses laravel-repositories library.
Laravel 5.5/6.0
Install the saritasa/laravel-entity-services
package:
bash $ composer require saritasa/laravel-entity-services ```
## Usage
### Get service for model:
```php
$entityServiceFactory = app(IEntityServiceFactory::class);
$entityService = $entityServiceFactory->build(User::class);
*Note: if entity class not exists, EntityServiceException will be thrown
Configuration
Publish file
To publish configuration file you can run next command:
php artisan vendor:publish --tag=laravel_entity_services
It will copy file laravel_entity_services.php in config directory.
Register custom entity service implementation
To register your own IEntityService implementation you can put it into configuration file, like:
return [ 'bindings' => [\App\Models\User::class => \App\EntityServices\UserEntityService::class,],];
NOTE: Just remember that default IEntityServiceFactory implementation can work only with classes extended from EntityService. If you want change this behavior you should add your own implementation.
Available operations:
Create:
$createdModel = $entityService->create($params);
Update:
php $entityService->update($model, $params);
Delete:
php $entityService->delete($model);
Custom service for entity:
If you need use custom service for some entity, you can register it in factory using register
method.
Example:
$entityServiceFactory = app(IEntityServiceFactory::class); $entityService = $entityServiceFactory->register(User::class, YourServiceRealization::class);
Note: Your realization must be extend EntityService class
Events
EntityCreatedEvent - Throws when entity is created.
EntityUpdatedEvent - Throws when entity is updated.
EntityDeletedEvent - Throws when entity is deleted.
Contributing
- Create fork, checkout it
- Develop locally as usual. Code must follow PSR-1, PSR-2 -
run PHP_CodeSniffer to ensure, that code follows style guides - Cover added functionality with unit tests and run PHPUnit to make sure, that all tests pass
- Update README.md to describe new or changed functionality
- Add changes description to CHANGES.md file. Use Semantic Versioning convention to determine next version number.
- When ready, create pull request
Make shortcuts
If you have GNU Make installed, you can use following shortcuts:
make cs
(instead ofphp vendor/bin/phpcs
) -
run static code analysis with PHP_CodeSniffer
to check code stylemake csfix
(instead ofphp vendor/bin/phpcbf
) -
fix code style violations with PHP_CodeSniffer
automatically, where possible (ex. PSR-2 code formatting violations)make test
(instead ofphp vendor/bin/phpunit
) -
run tests with PHPUnitmake install
- instead ofcomposer install
*make all
or justmake
without parameters -
invokes described above install, cs, test tasks sequentially -
project will be assembled, checked with linter and tested with one single command