justcoded/yii2-starter

此包已废弃且不再维护。未建议替代包。

Yii 2 项目模板

安装: 709

依赖: 0

建议者: 0

安全: 0

星星: 42

关注者: 7

分支: 20

开放问题: 3

类型:项目

2.0.2 2022-05-11 17:55 UTC

README

993323

Yii 2 JustCoded 项目模板


Yii 2 JustCoded 项目模板是一个最佳的骨架Yii 2应用程序,适用于快速创建带有管理界面和RBAC的项目。

该模板包含基本功能,包括联系页面、用户登录/登出、具有用户管理的管理面板、基于路由的RBAC访问控制、固定示例。它包含所有常用配置,让您能够专注于为应用程序添加新功能。

目录结构

  app/                contains your application classes and files
    |-- assets           css/js assets and AssetBundle classes
    |-- base             base classes (overwrite yii\base or few more) 
    |-- components       application "components" classes 
    |-- console          controllers for console commands
    |-- controllers      controllers for web application
    |-- filters          application filters (similar to yii\filters) 
    |-- forms            various form models 
    |-- mail             view files for e-mails 
    |-- models           ActiveRecord model classes 
    |-- modules          connected modules, admin panel module by default
    |-- rbac             RBAC Manager / components 
    |-- traits           global traits, grouped by type 
    |-- views            view files for the Web application
    |-- widgets          application widgets to use inside views 
  config/             contains application configurations
  database/           contains migration and fixtures
  tests/              contains various tests for the basic application
  vendor/             contains dependent 3rd-party packages
  public/             contains public assets and web entry script index.php / server docroot

Yii2 基础模板 的区别

  • 改进了IDE对自定义组件的支持 (Yii::$app->getComponent(...))
  • 应用程序代码移至自己的文件夹 /app
  • 配置文件移出应用程序代码文件夹,并使用 .env 扩展名(能够从服务器 ENV 变量或 .env 文件中获取值)
  • commands 文件夹重命名为 console(因为实际上我们有控制器,而不是命令)。
  • 表单模型有自己的文件夹,以将其与 ActiveRecord 模型分开
  • assets 文件夹也用于存储公共资产(以便能够以相同的方式发布应用程序/模块/小部件的资产)
  • 包含 CRUD 示例(用户管理)的管理模块
  • 基于 4 个默认角色的高级 RBAC 和基于路由的访问控制。见 justcoded/yii2-rbac
  • 应用程序参数替换为设置扩展(IDE 自动完成可用)。见 justcoded/yii2-settings

需求

此项目模板的最低要求是您的 Web 服务器支持 PHP 7.0。

安装

通过 Composer 安装

如果您没有 Composer,您可以按照 getcomposer.org 上的说明进行安装。

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

php composer.phar create-project --prefer-dist justcoded/yii2-starter my-project

composer create-project --prefer-dist justcoded/yii2-starter my-project

配置

ENV 支持

配置文件对所有环境相同。您不需要创建一些“本地”配置文件。相反,您可以使用 env() 辅助函数从服务器环境接受不同的参数。

服务器环境变量可以通过 web 服务器 vhost 配置、.htaccess 文件或项目根目录中的 .env 文件(最简单的方法)设置。

要开始使用项目模板,请将 .env.example 复制到项目根目录中的 .env,并设置它。

Web

/public/.htaccess.example 复制为 /public/.htaccess 以启用支持漂亮 URL 并缓存/过期令牌,这些是 Google PageSpeed Insights 测试所必需的。

此外,您应该在 .env 中检查以下选项

APP_ENV=dev
APP_DEBUG=true
APP_KEY=wUZvVVKJyHFGDB9qK_Lop4QE1vwb4bYU

*APP_KEY 用于 CSRF 令牌(cookie 验证密钥)。为了设置或更改它,请运行

php yii security/app-key

数据库

您应该更新您的 .env 文件配置

DB_HOST=127.0.0.1
DB_NAME=yii2_starter
DB_USER=root
DB_PASS=12345

注意事项

  • Yii 不会为您创建数据库,您必须手动创建它才能访问。
  • 默认情况下,启动器配置为与 MySQL 数据库一起使用。如果您想使用其他数据库,您需要配置 config/db.php 内部的 dsn 字符串(或定义类似 DB_DSN="mysql:host={host};dbname={dbname}" 的环境变量)。

启动

您需要通过迁移创建所需的表,并初始化 RBAC 扩展。请在终端中运行以下命令

php yii migrate
php yii fixture/load User
php yii rbac/init
php yii rbac/assign-master 1
php yii rbac/scan
php yii rbac/scan --path=@vendor/justcoded/yii2-rbac/ --routesBase=admin/rbac/

现在您应该可以通过以下 URL 访问应用程序,假设 my-project 是 Web 根目录下的目录。

https:///my-project/public/

或者您可以通过运行 yii serve 来启动 Yii 内置的 Web 服务器,类似于常规的 Yii 基础应用程序。

管理面板只能在登录后访问。如果您已使用 fixtures 填充数据库中的示例内容,则管理面板访问将为

https:///my-project/public/admin/
User:       admin@domain.com
Password:   password_0

测试

测试位于 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
    

    如果您使用的是 3.0 版的 Selenium 服务器与 Firefox 浏览器(从 v48 开始)或 Google Chrome 浏览器(从 v53 开始),则必须下载 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. (可选) 创建 yii2_basic_tests 数据库,并根据需要应用迁移进行更新。

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