yarcode/yii2-app-yarcode

Yii 2 YarCode 项目模板

1.7.2 2018-06-14 09:55 UTC

This package is not auto-updated.

Last update: 2024-09-14 20:03:57 UTC


README

Build Status

Yii 2 YarCode 项目 - 是一个 Yii 2 应用的骨架。

与yii2-app-advanced的差异

yii2-app-advanced 相比,这个模板自带以下功能:

要求

本项目模板对 Web 服务器的最低要求是支持 PHP 7+。

安装

安装 composer

然后可以使用以下命令安装此项目模板

composer create-project --prefer-dist yarcode/yii2-app-yarcode yarcode 
сd yarcode 
php init 

复制 .env 文件

cp .env.example .env

配置 .env 并应用迁移。确保数据库连接配置正确。

php yii migrate 

模板安装现在已完成。

质量控制

Travis CI

要自动在模板中构建和测试应用,请使用 Travis CI。配置位于项目根目录下的 .travis.yml 文件中。

在配置文件中添加了 PHP Coding Standards Fixer

PHP Coding Standards Fixer

此工具允许我们自动检查项目代码是否符合标准和规则。

配置位于项目根目录下的 .php_cs 文件中。

执行命令以验证代码是否符合 PSR-2 标准

vendor/bin/php-cs-fixer fix -v --dry-run 

虚拟化

此模板支持 Docker 技术

基本用法

构建容器

docker-compose build

创建卷

docker volume create --name=yiidock_postgres_data

初始化并应用迁移

cp docker-compose.override-example.yml docker-compose.override.yml
docker-compose run --rm workspace composer install
docker-compose run --rm workspace php init
docker-compose run --rm yii migrate

启动容器

docker-compose up -d

现在应用必须正常运行

您也可以单独启动服务。例如,仅启动后端

docker-compose up -d nginx-backend 

测试环境

测试位于 {application}/tests 测试目录中。它们使用 Codeception PHP 测试框架 开发。默认情况下,每个应用(apifrontendbackend)都有 2 个测试套件

  • 单元测试
  • 功能测试

有关测试 Yii2 应用的更多信息,请参阅 此处

要在容器中运行测试,可以使用 docker-compose.test.yml 文件。按照以下三个简单步骤进行

  1. 创建测试卷: docker volume create --name=test_postgres_data
  2. 应用测试数据库的迁移: docker-compose -f docker-compose.test.yml run --rm yii_test migrate
  3. 运行模板中所有的测试: docker-compose -f docker-compose.test.yml run --rm codeception run

可以单独运行应用的单元测试或功能测试,例如

docker-compose -f docker-compose.test.yml run --rm codeception run unit -c backend 
docker-compose -f docker-compose.test.yml run --rm codeception run functional -c api 

也可以通过指定测试路径来运行某个特定测试

docker-compose -f docker-compose.test.yml run --rm codeception run functional -c api v1/ApiCest 

调试时,使用标志 -f --debug 运行测试可能会很方便

docker-compose -f docker-compose.test.yml run --rm codeception run functional -c api v1/ApiCest -f --debug 

模板结构

根目录包含以下子目录和文件

api                 web application implements simple REST API    
    component/           contains components api
    config/              contains api configurations
    models/              contains api-specific model classes
    runtime/             contains files generated during runtime
    tests/               contains tests for frontend application
    web/                 contains the entry script
    codeception.yaml     configuration file for Codeception
backend             backend web application
    assets/              contains application assets such as JavaScript and CSS
    config/              contains backend configurations
    controllers/         contains Web controller classes
    models/              contains backend-specific model classes
    runtime/             contains files generated during runtime
    tests/               contains tests for backend application    
    views/               contains view files for the Web application
    web/                 contains the entry script and Web resources
    codeception.yaml     configuration file for Codeception
common              files shared for the whole application
    component/           contains shared components
    config/              contains shared configurations
    fixtures/            contains fixtures
    mail/                contains view files for e-mails
    models/              contains model classes used in both backend and frontend
    tests/               contains tests for common classes        
console             console application
    config/              contains console configurations
    controllers/         contains console controllers (commands)
    migrations/          contains database migrations
    models/              contains console-specific model classes
    runtime/             contains files generated during runtime
environments/       contains environment-based overrides
frontend            frontend web application
    assets/              contains application assets such as JavaScript and CSS
    config/              contains frontend configurations
    controllers/         contains Web controller classes
    models/              contains frontend-specific model classes
    runtime/             contains files generated during runtime
    tests/               contains tests for frontend application
    views/               contains view files for the Web application
    web/                 contains the entry script and Web resources
    widgets/             contains frontend widgets
    codeception.yaml     configuration file for Codeception
tools/              contains helper for IDE       
vendor/             contains dependent 3rd-party packages
.env.example        dotenv file example
.env.travis         dotenv file for Tavis CI
.gitignore          contains a list of directories ignored by git version system. 
.php_cs             configuration file for PHP Coding Standards Fixer
.travis.yaml        configuration file for Travis CI 
codeception.yaml    cnfiguration file for Codeception 
composer.json       composer config described in Configuring Composer.
init                initialization script described in Configuration and environments.
init.bat            same for Windows.
LICENSE.md          license info. Put your project license there.
README.md           basic info about installing template (EN).
README-RU.md        basic info about installing template (RU).
requirements.php    Yii requirements checker.
yii                 console application bootstrap.
yii.bat             same for Windows.