ybgsolutions/ybgcore

带有插件管理的Yii 2基本项目

安装: 3

依赖: 0

建议者: 0

安全: 0

星级: 0

关注者: 2

分支: 0

开放问题: 2

语言:CSS

类型:项目

1.0 2021-06-08 17:57 UTC

README

YBG Core基于Yii框架


此模板实现了基于Yii 2 Basic的插件系统。主要思想是将代码模块化和可重用。

该模板包含基本功能,包括用户登录/注销和仪表盘页面。它包括所有常用配置,使您能够专注于添加新功能到您的应用程序。

Latest Stable Version Total Downloads build

目录结构

  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

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

运行验收测试

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

  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
    

    如果您使用的是从版本 48 开始的 Firefox 浏览器或从版本 53 开始的 Google Chrome 浏览器,并且使用 Selenium 服务器 3.0,您必须下载 GeckoDriverChromeDriver 并与 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
    
  5. (可选) 创建 yii2basic_test 数据库,并应用迁移(如果有的话)来更新它。

    tests/bin/yii migrate
    

    数据库配置可以在 config/test_db.php 文件中找到。

  6. 启动 Web 服务器

    tests/bin/yii serve
    
  7. 现在您可以运行所有可用的测试

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