kwaadpepper / crud-policies
Makes CRUD easy, make policies easy and everyone happy
Requires
- doctrine/dbal: ^3.1
- facade/flare-client-php: ^1.8
- illuminate/support: ~8
- kwaadpepper/enum: ^2.0
- laravel/framework: ~8
- mews/purifier: ^3.3
Requires (Dev)
- orchestra/testbench: ^6.13
- phpunit/phpunit: ~9.0
- slevomat/coding-standard: ^7.0
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2024-10-30 01:59:23 UTC
README
Installation
composer require kwaadpepper/crud-policies
CSP
If you wish to make this package CSP compliant you shall
share to all views a $nonce
variable.
Note that ckeditor will require unsafe-inline style anyway.
Usage
- Create a model that will use the
Kwaadpepper\CrudPolicies\IsCrudModel
trait - Create a controller that will use the
Kwaadpepper\CrudPolicies\CrudController
trait - Create a policy that will extends the
Kwaadpepper\CrudPolicies\Policies\RootPolicy
class
Create a Model (IsCrudModel)
- Use
php artisan make:crudModel ModelName
- Do it by hand
If You choose to do it by hand take the file examples/CrudModel.php as an example.
Some infos :
- The model has to use
IsCrudModel
trait - rules for models fields has to be set in the constructor as the provided example ($editableProperties prop)
- Each CrudType enum is handled in a specific way more doc will be to come, or are welcome if you are willing to write it
- Requests validation are constructed from the model for create and update actions
- Your model has to set
protected $crudLabelColumn = 'string column name';
- Your model has to set
protected $crudValueColumn = 'unique constrained column name';
! The two last points are specially needed for relations !
Create a Controller (CrudController)
- Use
php artisan make:crudController ControllerName
- Do it by hand
If You choose to do it by hand take the file examples/CrudController.php as an example.
Some hooks are available in the controller, you can also overload methods to handle your own way the think
You can of course write your own methods to handle the rest of your application.
More documentation is yet to come, dont hesite to check in code directly
Create a Policy (RootPolicy)
- Use
php artisan make:policy ModelName
- Do it by hand
If You choose to do it by hand take the file examples/CrudPolicy.php as an example.
Note that policies rules make method returns a boolean value. You can find an example of rules in examples/UserRoleRules.php
NOTE: Artisan make commands yet has to be developped
Notes:
- For crud type images, you must do
php artisan storage:link
Change log
Please see the changelog for more information on what has changed recently.
Testing
SOON available
Contributing
Please see contributing.md for details and a todolist.
Security
If you discover any security related issues, please email github@jeremydev.ovh instead of using the issue tracker.
Credits
License
MIT. Please see the license file for more information.