t4web / crud
ZF2 模块。用于管理领域实体的抽象层
1.3.0
2019-05-13 12:52 UTC
Requires
- php: >=5.5
- sebaks/controller: ~0.1.0
- t4web/domain: ~1.2.0
- zendframework/zend-eventmanager: >=2.6
- zendframework/zend-http: >=2.6
- zendframework/zend-modulemanager: >=2.6
- zendframework/zend-mvc: >=2.6
- zendframework/zend-view: >=2.6
Requires (Dev)
- phpunit/phpunit: ~4.5
- squizlabs/php_codesniffer: ^2.3
README
ZF2 模块。用于管理领域实体的抽象层
内容
安装
在您的 composer.json 中添加此项目
"require": { "t4web/crud": "~1.0.0" }
现在,通过运行以下命令让 composer 下载 T4web\Crud
$ php composer.phar update
安装后
在 application.config.php
文件中启用它。
<?php return array( 'modules' => array( // ... 'T4web\Crud', ), // ... );
简介
此模块生成 CRUD 路由并提供基本的 CRUD 方法及其定制。在我们的视图中,CRUD 包含 6 个操作
new
- 动作,显示新条目表单create
- 动作,接收条目值数组,验证值并创建实体read
- 动作,显示一个实体,验证条件参数和条目存在update
- 动作,接收条目值数组,验证条件参数和条目存在,验证值并更新实体delete
- 动作,删除一个实体,验证条件参数和条目存在list
- 动作,根据条件(过滤器)显示实体
此外,此模块还提供用于通过简短别名创建领域服务的抽象工厂
ENTITY_NAME-crud-create-service
- 将创建T4webDomain\Service\Creator
ENTITY_NAME-crud-read-service
- 将创建T4web\Crud\Service\ReadService
ENTITY_NAME-crud-update-service
- 将创建T4webDomain\Service\Updater
ENTITY_NAME-crud-delete-service
- 将创建T4webDomain\Service\Deleter
ENTITY_NAME-crud-list-service
- 将创建T4web\Crud\Service\ListService
配置选项
为了使用 T4web\Crud
功能,您必须定义 route-generation
配置
'route-generation' => [ [ 'entity' => 'user', 'backend' => [ 'namespace' => '/backend', 'actions' => [ 'new', 'create', 'read', 'update', 'delete', 'list', ], 'options' => [ 'create' => [ 'changesValidator' => Action\Admin\User\CreateAction\ChangesValidator::class, 'controller' => Action\Admin\User\CreateAction\Controller::class, 'allowedMethods' => ['POST'], 'service' => 'user-crud-delete-service', 'redirectTo' => 'admin-user-list', ], 'update' => [ 'changesValidator' => Action\Admin\User\CreateAction\ChangesValidator::class, ], ], ], ], ],
其中 entity
- URI 的实体名称(例如:/backend/user/new
,'/backend/user/create'...),actions
- 定义哪些操作将被处理,如果您没有定义 delete
操作,则不会创建删除 URI,options
- 定义每个操作的自定义选项(见 sebaks/zend-mvc-controller)
对于当前配置,将创建以下路由
'routes' => [ 'admin-user-new' => [ 'type' => 'Segment', 'options' => [ 'route' => '/backend/user/new', 'defaults' => [ 'allowedMethods' => ['GET'], 'controller' => 'sebaks-zend-mvc-controller', ], ], ], 'admin-user-create' => [ 'type' => 'Segment', 'options' => [ 'route' => '/backend/user/create', 'defaults' => [ 'allowedMethods' => ['POST'], 'controller' => 'Users\Action\Admin\User\CreateAction\Controller', 'service' => 'user-crud-create-service', 'redirectTo' => 'admin-user-list', 'changesValidator' => 'Users\Action\Admin\User\CreateAction\ChangesValidator', ], ], ], 'admin-user-read' => [ 'type' => 'Segment', 'options' => [ 'route' => '/backend/user/read/:id', 'defaults' => [ 'allowedMethods' => ['GET'], 'controller' => 'sebaks-zend-mvc-controller', 'routeCriteria' => 'id', 'service' => 'user-crud-read-service', 'criteriaValidator' => 'user-crud-id-validator', ], ], ], 'admin-user-update' => [ 'type' => 'Segment', 'options' => [ 'route' => '/backend/user/update/:id', 'defaults' => [ 'allowedMethods' => ['POST'], 'controller' => 'sebaks-zend-mvc-controller', 'routeCriteria' => 'id', 'criteriaValidator' => 'user-crud-id-validator' 'service' => 'user-crud-update-service', 'redirectTo' => 'admin-user-list', ], ], ], 'admin-user-delete' => [ 'type' => 'Segment', 'options' => [ 'route' => '/backend/user/delete/:id', 'defaults' => [ 'allowedMethods' => ['GET'], 'controller' => 'sebaks-zend-mvc-controller', 'routeCriteria' => 'id', 'criteriaValidator' => 'user-crud-id-validator' 'service' => 'user-crud-delete-service', 'redirectTo' => 'admin-user-list', ], ], ], ]