ybgsolutions / ybgcore
带有插件管理的Yii 2基本项目
Requires
- php: >=7.3
- almasaeed2010/adminlte: ~3.0
- bizley/migration: ^4.1
- froala/yii2-froala-editor: 3.2.5
- pudinglabs/yii2-bootstrap-tags-input: ^1.0
- trntv/yii2-aceeditor: ^2.1
- yiisoft/yii2: ~2.0.14
- yiisoft/yii2-bootstrap: ~2.0.0
- yiisoft/yii2-bootstrap4: ^2.0
- yiisoft/yii2-redis: ^2.0
- yiisoft/yii2-swiftmailer: ~2.0.0 || ~2.1.0
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
- symfony/browser-kit: >=2.7 <=4.2.4
- yiisoft/yii2-debug: ~2.1.0
- yiisoft/yii2-faker: ~2.0.0
- yiisoft/yii2-gii: ~2.1.0
This package is not auto-updated.
Last update: 2024-09-26 07:54:37 UTC
README
YBG Core基于Yii框架
此模板实现了基于Yii 2 Basic的插件系统。主要思想是将代码模块化和可重用。
该模板包含基本功能,包括用户登录/注销和仪表盘页面。它包括所有常用配置,使您能够专注于添加新功能到您的应用程序。
目录结构
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
plugins/ contains all plugin code
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
插件结构
PluginName
includes contains config, setup...
migrations contains db migrate
models contains models
views contains views
PluginName.plugin.php main controller of plugin
需求
本项目模板的最小要求是您的Web服务器支持PHP 7.1。
安装
通过Composer安装
如果您没有Composer,您可以按照getcomposer.org上的说明进行安装。
然后,您可以使用以下命令安装此项目模板
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
现在,您应该可以通过以下URL访问应用程序,假设basic
是Web根目录下的直接目录。
https:///basic/web/
从存档文件安装
将从yiiframework.com下载的存档文件解压缩到Web根目录下名为basic
的目录。
在config/web.php
文件中将cookie验证密钥设置为某个随机密钥字符串
'request' => [ // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation 'cookieValidationKey' => '<secret random string goes here>', ],
然后,您可以通过以下URL访问应用程序
https:///basic/web/
使用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缓存
配置
数据库
使用实际数据编辑文件config/db.php
,例如
return [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=yii2basic', 'username' => 'root', 'password' => '1234', 'charset' => 'utf8', ];
注意
- Yii不会为您创建数据库,您必须手动创建,才能访问它。
- 检查并编辑
config/
目录中的其他文件,以根据需要自定义应用程序。 - 有关基本应用程序测试的详细信息,请参阅
tests
目录中的README。
测试
测试位于tests
目录中。它们是用Codeception PHP测试框架开发的。默认情况下,有3个测试套件
单元
功能
验收
可以通过以下命令执行测试
vendor/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
如果您使用的是从版本 48 开始的 Firefox 浏览器或从版本 53 开始的 Google Chrome 浏览器,并且使用 Selenium 服务器 3.0,您必须下载 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
-
(可选) 创建
yii2basic_test
数据库,并应用迁移(如果有的话)来更新它。tests/bin/yii migrate
数据库配置可以在
config/test_db.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 --coverage-html --coverage-xml
#collect coverage only for unit tests
vendor/bin/codecept run unit --coverage --coverage-html --coverage-xml
#collect coverage for unit and functional tests
vendor/bin/codecept run functional,unit --coverage --coverage-html --coverage-xml
您可以在 tests/_output
目录下查看代码覆盖率输出。