derabinsergey / yii2-app-extended
Yii 2 扩展项目模板
v2.0.0
2022-10-24 23:04 UTC
Requires
- php: ^8.1
- rmrevin/yii2-fontawesome: ~3.7.0
- yiisoft/yii2: ~2.0.46
- yiisoft/yii2-bootstrap5: ~2.0.2
- yiisoft/yii2-symfonymailer: ~2.0.3
Requires (Dev)
- codeception/codeception: ^5.0.0
- codeception/lib-innerbrowser: ^3.0
- codeception/module-asserts: ^3.0
- codeception/module-filesystem: ^3.0
- codeception/module-webdriver: ^3.2
- codeception/module-yii2: ^1.1
- codeception/verify: ^2.2
- phpunit/phpunit: ~9.5.0
- symfony/browser-kit: ^6.0
- yiisoft/yii2-debug: ~2.1.18
- yiisoft/yii2-faker: ~2.0.0
- yiisoft/yii2-gii: ~2.2.0
README
通过composer安装
composer create-project --prefer-dist deryabinsergey/yii2-app-extended:2
优点
此项目模板基于高级模板,并进行了一些修改
- 添加rmrevin / yii2-fontawesome资产包,包含Font Awesome 5
- 将Bootstrap仪表板模板添加到后端
- 从
user.username
中移除唯一键。通过电子邮件和密码进行授权。 - 为用户添加RBAC实现。用于后端。
- 添加用户CRUD到后端
- 使Codeception测试有效,使用yii2-bootstrap5
- 添加一些测试到后端/创建用户,后端接受测试
- 在
docker-compose.yml
中添加selenium,并在frontend/tests/acceptance.suite.yml.example
中的docker配置 - 在
Dockerfile
中将php更改为yiisoftware/yii2-php:8.1-apache
- 在
Dockerfile
中添加配置以实现美观的URL - 将
urlManagerFrontend
添加到后端配置,以便从后端到前端创建链接
注意在environments/dev/frontend/web/index-test.php
和environments/dev/backend/web/index-test.php
中删除代码以在Docker上启动测试
// NOTE: Make sure this file is not accessible when deployed to production
if (!in_array(@$_SERVER['REMOTE_ADDR'], ['127.0.0.1', '::1'])) {
die('You are not allowed to access this file.');
}
所有信息和文档可在高级项目模板中找到。
使用RBAC
角色和权限在common/config/params.php
中定义。为了添加新的权限、角色和分配给角色的权限,应创建迁移。例如,请参阅console/migrations/m221002_102238_initialize_rbac_roles.php
。为了开始,我创建了以下权限
- 后端 - 访问后端
- userCreate - 在后端添加新用户
- userRead - 查看现有用户的信息
- userUpdate - 可以更新用户信息
- userDelete - 可以删除用户(注意:您可以软删除现有用户,只需将状态设置为已删除)
以及以下角色
- admin具有完全权限
- manager具有除删除外的完全权限
- viewer只有读取权限
树形视图中默认的角色和权限
admin (role)
├─userDelete (permission)
│
└─manager (role)
├─userCreate (permission)
├─userUpdate (permission)
│
└─viever (role)
│
├─backend (permission)
└─userRead (permission)
接受测试
完成以下步骤以启用接受测试
- 将前端配置文件
frontend/tests/acceptance.suite.yml.example
复制到frontend/tests/acceptance.suite.yml
,并将后端配置文件backend/tests/acceptance.suite.yml.example
复制到backend/tests/acceptance.suite.yml
- 在
docker-compose.yml
中取消注释selenium-event-bus
、selenium-sessions
、selenium-session-queue
、selenium-distributor
、selenium-router
、chrome
和firefox
部分 - 构建测试:
./vendor/bin/codecept build
运行所有测试:./vendor/bin/codecept run