yii2mod / base
Yii2的基础应用模板
Requires
- php: >=7.0.0
- yii2mod/yii2-bootstrap-notify: ~1.2
- yii2mod/yii2-cms: ~1.9
- yii2mod/yii2-cron-log: ~1.5
- yii2mod/yii2-editable: ~1.5
- yii2mod/yii2-rbac: ~2.2
- yii2mod/yii2-scheduling: ~1.1
- yii2mod/yii2-settings: ~2.4
- yii2mod/yii2-user: ~2.1
- yii2tech/admin: ~1.0
- yii2tech/sitemap: ^1.0
- yiisoft/yii2: ~2.0.14
- yiisoft/yii2-bootstrap: ~2.0.0
- yiisoft/yii2-redis: ~2.0.0
- yiisoft/yii2-swiftmailer: ~2.0.0 || ~2.1.0
Requires (Dev)
- codeception/base: ~2.3.0
- codeception/specify: ~0.4.6
- codeception/verify: ~0.4.0
- friendsofphp/php-cs-fixer: ~2.0
- yiisoft/yii2-debug: ~2.0.0
- yiisoft/yii2-faker: ~2.0.0
- yiisoft/yii2-gii: ~2.0.0
README
Yii 2 基础项目模板
Yii 2 基础应用模板是一个骨架 Yii 2 应用程序,非常适合快速创建小型项目。
它包括所有常用的配置,让您能够专注于添加新功能到您的应用程序中。
支持我们
您的业务是否依赖于我们的贡献?请通过 Patreon 联系我们并支持我们。所有承诺都将用于分配人力进行维护和新奇功能。
目录结构
assets/ contains assets definition
commands/ contains console commands (controllers)
config/ contains application configurations
controllers/ contains Web controller classes
mail/ contains view files for e-mails
models/ contains model classes
runtime/ contains files generated during runtime
tests/ contains various tests for the basic application
vendor/ contains dependent 3rd-party packages
views/ contains view files for the Web application
web/ contains the entry script and Web resources
功能
- 登录、注册、忘记密码等。
- 用户管理
- 预定义的
guest
、user
和admin
角色的 RBAC - 内容管理组件: cms、comments
- 用于记录 cron 任务的 Yii2 组件
- 账户页面
- 键值存储组件
- 运行 cron 任务的调度扩展
- 支持多路径迁移
- 支持 Docker
- 包含 PHP 编码标准修复器
- 支持环境(开发、生产)
需求
此应用程序模板的最小要求是您的 Web 服务器支持 PHP 5.6
安装
使用 Composer 安装
如果您没有 Composer,请按照权威指南中“安装 Yii”部分的说明进行安装。
安装 Composer 后,您可以使用以下命令安装应用程序
composer create-project --prefer-dist --stability=dev yii2mod/base application
第一个命令安装了 composer asset plugin,它允许通过 Composer 管理 bower 和 npm 包依赖项。您只需运行此命令一次即可。第二个命令将 yii2mod/base 应用程序安装到名为 application
的目录中。您可以选择不同的目录名称。
配置
安装应用程序后,您必须执行以下步骤来初始化已安装的应用程序。您只需执行一次即可。
- 使用以下命令初始化应用程序
./init --env=Development
-
创建一个新的数据库,并相应地调整
config/common-local.php
中的components['db']
配置。 -
应用迁移
php yii migrate
- 创建应用程序的默认表php yii rbac/migrate
- 创建角色、权限和规则php yii fixture "*"
- 加载数据(cms 页面和用户)
- 将您的 Web 服务器文档根设置为
/path/to/application/web/
文件夹。
使用 Docker 安装
您需要安装 docker(1.10.0+)和 docker-compose(1.6.0+)。
您可以使用以下命令安装应用程序
composer create-project --no-install --stability=dev yii2mod/base yii2mod-base cd yii2mod-base ./init --env=Development cp .env{.dist,} && cp docker-compose.override.yml{.dist,} docker-compose up -d --build
在
.env
文件中,您需要设置您的 UID。您可以通过以下终端命令获取您的 UID:id -u <username>
下载所需的 docker 镜像可能需要几分钟。完成后,您需要按照以下方式安装供应商
docker-compose exec web bash
composer install
chown -R www-data:www-data runtime web/assets vendor
完成这些步骤后,您需要按照以下方式更新 common-local.php
文件中的 db
部分
<?php $config = [ 'components' => [ 'db' => [ 'dsn' => 'mysql:host=db;dbname=yii2mod_base', 'username' => 'docker', 'password' => 'secret', ], 'mailer' => [ 'useFileTransport' => true, ], 'redis' => [ 'hostname' => 'redis', ], ], ]; return $config;
完成操作后,您需要在 Web 容器中执行以下命令
php yii migrate
php yii rbac/migrate
php yii fixture "*"
完成这些步骤后,您可以通过 http://localhost 访问您的应用程序。
测试
测试位于 tests
目录中。它们使用 Codeception PHP 测试框架 开发。默认情况下有 3 个测试套件
单元
功能
验收
运行测试
- 创建一个新的数据库,并在
config/test_db.php
中相应地配置数据库连接。 - 通过以下命令执行迁移
./yii_test migrate --interactive=0 && ./yii_test rbac/migrate --interactive=0
- 运行单元和功能测试
bin/codecept run
上述命令将执行单元和功能测试。单元测试是测试系统组件,而功能测试是测试用户交互。验收测试默认禁用,因为它们需要在真实浏览器中执行测试,需要额外的设置。
运行验收测试
要执行验收测试,请执行以下操作
-
将
tests/acceptance.suite.yml.example
重命名为tests/acceptance.suite.yml
以启用套件配置 -
在
composer.json
中将codeception/base
包替换为codeception/codeception
以安装 Codeception 的完整功能版本 -
使用 Composer 更新依赖项
composer update
-
下载 Selenium 服务器 并启动它
java -jar ~/selenium-server-standalone-x.xx.x.jar
-
启动 Web 服务器
./yii_test serve
-
现在您可以运行所有可用的测试
# run all available tests bin/codecept run # run acceptance tests bin/codecept run acceptance # run only unit and functional tests bin/codecept run unit,functional
代码覆盖率支持
默认情况下,在 codeception.yml
配置文件中禁用了代码覆盖率,您应该取消注释所需的行以收集代码覆盖率。您可以使用以下命令运行测试并收集覆盖率
#collect coverage for all tests
bin/codecept run -- --coverage-html --coverage-xml
#collect coverage only for unit tests
bin/codecept run unit -- --coverage-html --coverage-xml
#collect coverage for unit and functional tests
bin/codecept run functional,unit -- --coverage-html --coverage-xml
您可以在 tests/_output
目录下查看代码覆盖率输出。