rinomau / mva-crud
用于简化 Doctrine 实体 CRUD 操作的 ZF2 模块。
dev-master
2013-11-09 10:54 UTC
Requires
- php: >=5.3.3
- zendframework/zendframework: 2.*
This package is not auto-updated.
Last update: 2024-09-23 14:44:11 UTC
README
MvaCrud
扩展以简化 CRUD 开发的基模块。
安装
Composer
建议的安装方法是通过 composer
php composer.phar require rinomau/mva-crud:dev-master
或
-
在您的 composer.json 中添加此项目
"require": { "rinomau/mva-crud": "dev-master" }
-
现在,通过运行以下命令告诉 composer 下载 MvaCrud
$ php composer.phar update
Git 子模块
将此项目克隆到您的 ./vendor/
目录中
```sh
cd vendor
git clone https://github.com/rinomau/MvaCrud.git
```
配置
全局配置
将 ./vendor/rinomau/mva-crud/config/MvaCrud.config.php
复制到 ./config/autoload/MvaCrud.config.php
。此配置参数适用于所有使用 MvaCrud 的模块
每个模块的配置
在 module/YourModule/config/config.php
中添加如下部分
'MvaCrud' => array(
__NAMESPACE__ => array(
's_indexTitle' => 'Index page default',
's_indexTemplate' => 'crud/index/index',
's_newTitle' => 'New page default',
's_newTemplate' => 'crud/index/default-form',
's_editTitle' => 'Edit page default',
's_editTemplate' => 'crud/index/default-form',
's_detailTitle' => 'Detail page default',
's_detailTemplate' => 'crud/index/detail',
's_processErrorTitle' => 'Form errors page default',
's_processErrorTemplate' => 'crud/index/default-form',
's_deleteRouteRedirect' => 'crud',
's_processRouteRedirect' => 'crud',
)
)
此配置参数适用于在指定命名空间中扩展 MvaCrud 的所有控制器
每个控制器的配置
在调用 MvaCrud 构造函数后,重新定义您想编辑的控制器参数,例如
class IndexController extends \MvaCrud\Controller\CrudIndexController {
public function __construct($I_service, $I_form) {
$entityName = 'Dog';
parent::__construct($entityName, $I_service, $I_form);
$this->s_indexTitle = 'Title specific for this controller';
}
}
用法
在您的模块中创建一个具有 doctrine 实体的模块。在您的模块中扩展 CrudIndexController 和 CrudService
您的 indexController
class IndexController extends \MvaCrud\Controller\CrudIndexController {
public function __construct($I_service, $I_form) {
$entityName = 'Dog';
parent::__construct($entityName, $I_service, $I_form);
}
}
您的 EntityService
class DogService extends \MvaCrud\Service\CrudService {
public function __construct($I_entityManager) {
$this->I_entityRepository = $I_entityManager->getRepository('MvaModuleTemplate\Entity\Dog');
$this->I_entityManager = $I_entityManager;
$I_dog = new Dog();
parent::__construct($this->I_entityManager,$this->I_entityRepository,$I_dog);
}
}
待办事项
- 添加显示删除页面选项
- 添加在删除前要求页面确认选项
- 添加在删除前要求警报确认选项
- 添加禁用列出所有实体选项
- 添加检查用户是否有权查看/编辑/删除实体的函数
- 添加在插入/删除/更新前后的触发事件
- 添加显示实体详细信息的行为
- 允许使用 doctrine 注解 @HasLifecycleCallbacks 并传播异常(这可以用来检查用户是否有权在存储库上插入/更新/删除)
- 允许通过传递给 findBy 的选项数组来从控制器调用实体子集
- 使用 hydrator 填充实体字段
- 允许在不更改配置文件的情况下覆盖模板,只需创建正确的文件夹结构(如 zfcuser)
- 向 Service 添加 fetchAllAsArray 函数,以轻松填充选择选项
- 向 Service 添加 fetchAsArray($options) 函数,以轻松使用实体子集填充选择选项
- 添加基表单,具有根据实体长度设置文本长度的方法