yii2mod/base

Yii2的基础应用模板

安装数量: 1,285

依赖者: 0

建议者: 0

安全: 0

星标: 53

关注者: 9

分支: 15

公开问题: 0

类型:项目

2.5 2018-08-20 19:16 UTC

README

Yii 2 基础项目模板


Yii 2 基础应用模板是一个骨架 Yii 2 应用程序,非常适合快速创建小型项目。

它包括所有常用的配置,让您能够专注于添加新功能到您的应用程序中。

Latest Stable Version Total Downloads License Scrutinizer Code Quality Build Status

支持我们

您的业务是否依赖于我们的贡献?请通过 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

功能

需求

此应用程序模板的最小要求是您的 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 的目录中。您可以选择不同的目录名称。

配置

安装应用程序后,您必须执行以下步骤来初始化已安装的应用程序。您只需执行一次即可。

  1. 使用以下命令初始化应用程序
./init --env=Development
  1. 创建一个新的数据库,并相应地调整 config/common-local.php 中的 components['db'] 配置。

  2. 应用迁移

  • php yii migrate - 创建应用程序的默认表
  • php yii rbac/migrate - 创建角色、权限和规则
  • php yii fixture "*" - 加载数据(cms 页面和用户)
  1. 将您的 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 个测试套件

  • 单元
  • 功能
  • 验收

运行测试

  1. 创建一个新的数据库,并在 config/test_db.php 中相应地配置数据库连接。
  2. 通过以下命令执行迁移
    • ./yii_test migrate --interactive=0 && ./yii_test rbac/migrate --interactive=0
  3. 运行单元和功能测试
bin/codecept run

上述命令将执行单元和功能测试。单元测试是测试系统组件,而功能测试是测试用户交互。验收测试默认禁用,因为它们需要在真实浏览器中执行测试,需要额外的设置。

运行验收测试

要执行验收测试,请执行以下操作

  1. tests/acceptance.suite.yml.example 重命名为 tests/acceptance.suite.yml 以启用套件配置

  2. composer.json 中将 codeception/base 包替换为 codeception/codeception 以安装 Codeception 的完整功能版本

  3. 使用 Composer 更新依赖项

    composer update  
    
  4. 下载 Selenium 服务器 并启动它

    java -jar ~/selenium-server-standalone-x.xx.x.jar
    
  5. 启动 Web 服务器

    ./yii_test serve
    
  6. 现在您可以运行所有可用的测试

    # 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 目录下查看代码覆盖率输出。