rob006 / yii2-app-extended
Yii 2 扩展项目模板
Requires
- php: ^7.1
- yiisoft/yii2: ~2.0.32
- yiisoft/yii2-bootstrap: ~2.0.10
- yiisoft/yii2-composer: ~2.0.8
- yiisoft/yii2-swiftmailer: ~2.1.2
Requires (Dev)
- codeception/codeception: ^4.0
- codeception/module-asserts: ^1.0.0
- codeception/module-filesystem: ^1.0.0
- codeception/module-yii2: ^1.0.0
- codeception/specify: ~0.4.6
- codeception/verify: ~0.5.0 || ~1.1.0
- roave/security-advisories: dev-master
- symfony/browser-kit: >=2.7 <=4.2.4
- yiisoft/yii2-debug: ~2.1.13
- yiisoft/yii2-faker: ~2.0.4
- yiisoft/yii2-gii: ~2.1.4
This package is auto-updated.
Last update: 2024-09-14 21:15:36 UTC
README
Yii 2 扩展项目模板是一个针对 Yii 2 应用的骨架,非常适合创建小型和中型项目。
该模板基于 官方 Yii 2 基础项目模板,包含基本功能,如用户登录/注销和联系页面。除了 yii2-app-basic
,它还处理特定环境的配置文件,并简化添加自定义文件头或 @author
phpdoc。
目录结构
app/assets/ contains assets definition
app/commands/ contains console commands (controllers)
app/controllers/ contains Web controller classes
app/mail/ contains view files for e-mails
app/models/ contains model classes
app/views/ contains view files for the Web application
app/widgets/ contains widgets classes
config/ contains application configurations
public/ contains the entry script and Web resources
resources/ contains non-PHP resources
runtime/ contains files generated during runtime
tests/ contains various tests for the application
vendor/ contains dependent 3rd-party packages
要求
本项目模板的最小要求是您的 Web 服务器支持 PHP 7.1.0。
安装
通过 Composer 安装
安装此模板的首选方式是通过 Composer。如果您还没有安装它,您可以按照 getcomposer.org 上的说明进行安装。
然后,您可以使用以下命令安装此项目模板
composer create-project --prefer-dist rob006/yii2-app-extended application
现在您应该可以通过以下 URL 访问应用程序,假设 application
是 Web 根目录下的直接目录。
https:///application/public/
使用 Docker 安装
更新您的供应商包
docker-compose run --rm php composer update --prefer-dist
运行安装触发器(创建 cookie 验证代码)
docker-compose run --rm php composer install
启动容器
docker-compose up -d
然后您可以通过以下 URL 访问应用程序
http://127.0.0.1:8000
注意
- 最低要求的 Docker 引擎版本为
17.04
(开发用,请参阅 卷挂载的性能调整) - 默认配置使用主机卷在您的家目录
.docker-composer
中为 composer 缓存
安装后设置
安装后,您应该执行一些步骤来自定义项目以满足您的需求
-
将项目中的所有 PHP 文件中的
/* {licenseheader} */
语句替换为您的自定义文件头。您也可以将其删除,如果您不希望在项目中包含文件头。 -
将项目中的所有 PHP 文件中的
{author}
语句替换为您的姓名和电子邮件地址(例如John Doe <john@example.com>
)- 这将为项目中的所有现有类的 phpdoc 设置@author
标签。 -
根据您的项目设置调整
composer.json
文件。 -
将包含您的项目许可的
LICENSE
文件添加到项目的根目录。
配置
特定环境的配置文件
模板支持特定于指定环境的配置。例如,config/1-web.php
包含 Web 应用的配置覆盖,而 config/2-prod.php
包含生产环境的配置。这允许您通过创建更通用的配置并在指定环境中覆盖它来避免配置重复。例如,对于 prod
环境中的 Web 应用程序,应用程序按照以下顺序读取和合并配置(有关详细信息,请参阅 ArrayHelper::merge())
config/0-main.php
.config/1-web.php
.config/2-prod.php
.config/3-local.php
.
默认情况下,处理两种类型的环境
dev
- 开发者在应用程序开发中使用。默认情况下,它包含一些在开发期间有用的工具,如调试工具栏或 Gii。prod
- 生产环境。
但您可以通过在 config
目录中创建指定文件轻松添加新环境。
更多关于环境的信息,您可以在维基百科中找到。
环境设置存储在config/env-local.php
(文件在从config/env-local.php
模板中创建时生成)。您可以通过编辑此文件来切换环境(该文件被版本控制系统忽略,因此环境设置仅适用于本地安装)。默认环境是dev
- 在生产部署时请确保将其切换到prod
。
本地配置文件
通常,每个应用程序都有一些配置不应在不同安装之间共享,并且不应存储在版本控制系统中,例如个人密钥或特定于特定服务器的配置。在config
目录中,您可以找到一系列以-local.php
为前缀的配置文件 - 这些文件专门用于存储此类配置。这些本地配置已添加到.gitignore
中,并且永远不会被推送到源代码仓库,因此您可以使用它安全地覆盖一些通用配置。您可以使用config/3-local.php
来覆盖一些通用配置。
在config/templates
目录中,您可以找到本地配置文件的模板。在第一次运行composer install
时,这些文件将被复制到config
目录。您可以编辑这些模板以调整本地配置文件的默认内容,但您不应在模板中存储任何私人数据 - 这些数据应在安装后放入config/*-local.php
文件中。
数据库
使用真实数据编辑文件config/db-local.php
,例如
return [ 'class' => yii\db\Connection::class, 'dsn' => 'mysql:host=localhost;dbname=yii2app', 'username' => 'root', 'password' => '1234', 'charset' => 'utf8mb4', ];
Yii不会为您创建数据库,您必须手动创建它才能访问它。
测试
测试位于tests
目录中。它们使用Codeception PHP 测试框架开发。默认情况下,有3个测试套件
单元测试
功能测试
验收测试
可以通过运行以下命令来执行测试
vendor/bin/codecept run
上述命令将执行单元测试和功能测试。单元测试测试系统组件,而功能测试用于测试用户交互。验收测试默认禁用,因为它们需要额外的设置,因为它们在真实浏览器中执行测试。
运行验收测试
要执行验收测试,请执行以下操作
-
将
tests/acceptance.suite.yml.example
重命名为tests/acceptance.suite.yml
以启用套件配置 -
使用Composer更新依赖项
composer update
-
下载Selenium 服务器并启动它
java -jar ~/selenium-server-standalone-x.xx.x.jar
如果使用Selenium 3.0与Firefox浏览器从v48或Google Chrome从v53开始,您必须下载GeckoDriver或ChromeDriver并使用它启动Selenium
# for Firefox java -jar -Dwebdriver.gecko.driver=~/geckodriver ~/selenium-server-standalone-3.xx.x.jar # for Google Chrome java -jar -Dwebdriver.chrome.driver=~/chromedriver ~/selenium-server-standalone-3.xx.x.jar
作为另一种方法,您可以使用已经配置的带有较旧版本Selenium和Firefox的Docker容器
docker run --net=host selenium/standalone-firefox:2.53.0
-
(可选) 创建
yii2_app_tests
数据库,并根据需要应用迁移来更新它。tests/bin/yii migrate
数据库配置可以在
tests/config/db-local.php
中找到。 -
启动Web服务器
tests/bin/yii serve
-
现在您可以运行所有可用的测试
# run all available tests vendor/bin/codecept run # run acceptance tests vendor/bin/codecept run acceptance # run only unit and functional tests vendor/bin/codecept run unit,functional
代码覆盖率支持
默认情况下,在codeception.yml
配置文件中禁用了代码覆盖率,您应该取消注释所需的行以便能够收集代码覆盖率。您可以使用以下命令运行测试并收集覆盖率
# collect coverage for all tests vendor/bin/codecept run -- --coverage-html --coverage-xml # collect coverage only for unit tests vendor/bin/codecept run unit -- --coverage-html --coverage-xml # collect coverage for unit and functional tests vendor/bin/codecept run functional,unit -- --coverage-html --coverage-xml
您可以在tests/_output
目录下查看代码覆盖率输出。