dominus77/yii2-advanced-start

基于 Yii2 的 Yii 2 高级模板

资助包维护!
Patreon

安装: 937

依赖项: 0

建议者: 0

安全: 0

星标: 23

关注者: 9

分支: 12

公开问题: 0

类型:项目

2.3.0 2020-09-09 09:08 UTC

README

Latest Stable Version License build Scrutinizer Code Quality Code Intelligence Status Total Downloads

应用程序采用高级模式构建,具有模块化结构。后端部分使用 AdminLTE 模板。提供控制台用户管理命令和 RBAC 系统。

基本组件

页面(后端 AdminLTE 模板)

  • 首页
  • 用户
  • RBAC
  • 个人资料
  • 登录
  • 维护

页面(前端)

  • 首页
  • 联系
  • 注册
  • 个人资料
  • 登录
  • 维护

模块

  • main
  • rbac
  • users

功能

  • 重置密码
  • 通过电子邮件确认
  • 最后访问
  • 从控制台和 Web 界面管理 RBAC
  • 维护

系统

  • RBAC(DbManager)
  • 管理用户
  • 管理维护
  • 控制台命令
  • i18n

CSS 主题 Bootstrap

模板包括 CSS 主题 Bootstrap

切换主题在 /frontend/config/main.php 中发生

要求

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

目录结构

api
    components/          contains components api application
    config/              contains api application configurations
    messages/            contains i18n api application
    modules/             contains modules api version application
    runtime/             contains files generated during runtime
    tests/               contains tests for api application
    web/                 contains the entry script
common
    assets/              contains application assets such as JavaScript and CSS
    components/          contains components frontend, backend and console
    config/              contains shared configurations
    mail/                contains layouts files for e-mails
    messages/            contains i18n backend frontend
    models/              contains model classes used in both backend and frontend    
    tests/               contains tests for common classes
    widgets/             contains widgets backend and frontend
console
    components/          contains console components
    config/              contains console configurations
    controllers/         contains console controllers (commands)
    messages/            contains i18n console
    migrations/          contains database migrations
    models/              contains console-specific model classes
    runtime/             contains files generated during runtime
backend
    assets/              contains application assets such as JavaScript and CSS
    components/          contains backend components
    config/              contains backend configurations
    controllers/         contains Web controller classes
    messages/            contains i18n backend
    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
    widgets/             contains backend widgets
frontend
    assets/              contains application assets such as JavaScript and CSS
    config/              contains frontend configurations
    controllers/         contains Web controller classes
    messages/            contains i18n frontend
    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
vendor/                  contains dependent 3rd-party packages
environments/            contains environment-based overrides
modules/
    main/               contains module main
        controllers/    contains module Web controller classes
            backend/    contains module backend Web controller classes
            frontend/   contains module frontend Web controller classes
        messages/       contains i18n module
        models/         contains module-specific model classes
            backend/    contains module backend-specific model classes
            frontend/   contains module frontend-specific model classes
        traits/         contains module traits
        views/          contains module view files for the Web application
            backend/    contains module backend view files for the Web application
            frontend/   contains module frontend view files for the Web application
        Bootstrap.php   File autoload module settings app components (urlManager)
        Module.php      General Module class
    rbac/               contains module rbac
        components/     rules and rbac init
            behavior/   access backend behavior
        console/        contains console controllers (commands)
        controllers/    contains module Web controller classes
            backend/    contains module backend Web controller classes
        messages/       contains i18n module
        migrations/     contains database migrations module
        models/         contains module-specific model classes
        tests/          contains module tests
        traits/         contains module traits
        views/          contains module view files for the Web application
            backend/    contains module backend view files for the Web application
        Bootstrap.php   File autoload module settings app components (urlManager)
        Module.php      General Module class
    users/              contains module users
        behavior/       contains module behavior
        commands/       contains console controllers (commands)
        controllers/    contains module Web controller classes
            backend/    contains module backend Web controller classes
            frontend/   contains module frontend Web controller classes
        mail/           contains module view files for e-mails
        messages/       contains i18n module
        migrations/     contains database migrations module
        models/         contains module-specific model classes
            backend/    contains module backend-specific model classes
            frontend/   contains module frontend-specific model classes
        traits/         contains module traits
        views/          contains module view files for the Web application
            ajax/       contains module ajax.js
            backend/    contains module backend view files for the Web application
            frontend/   contains module frontend view files for the Web application
        widgets/        contains module widgets
        Bootstrap.php   File autoload module settings app components (urlManager)
        Module.php      General Module class

安装

安装此项目的首选方式是通过 composer

创建项目

composer create-project --prefer-dist --stability=dev dominus77/yii2-advanced-start public_html

或克隆存储库以启用 pull 命令

git clone https://github.com/Dominus77/yii2-advanced-start.git public_html
cd public_html
composer install

初始化环境

在项目的根目录 public_html 中运行命令

如果开发环境

composer app-init-dev

如果生产环境

composer app-init-prod

否则选择周三

php init

Yii 应用程序要求检查器

请参阅 http://sitename.com/requirements.php

注意:对于生产环境,建议删除 frontend\web\requirements.php 文件

如果一切正常,请继续,否则配置服务器配置。

继续

创建数据库,默认配置为 yii2_advanced_start 在 common\config\main-local.php

$config = [
    //...
    'components' => [
        'db' => [
            'dsn' => 'mysql:host=localhost;dbname=yii2_advanced_start',
            //...
        ],
        //...
    ],
    //...
];

应用迁移

composer migrate-up

初始化 RBAC

composer rbac-init

创建用户,输入命令并按照说明操作

php yii users/user/create
  • 用户名:设置用户名(admin);
  • 电子邮件:设置电子邮件(admin@example.com);
  • 密码:设置密码(至少 6 个符号);
  • 状态:设置状态(0 - 锁定,1 - 活动,2 - 等待,? - 帮助);

分配管理员角色

php yii rbac/roles/assign
  • 用户名:设置用户名(admin);
  • 角色:设置角色(admin,editor,manager,super_admin,user,? - 帮助);(此设置配置 rbac 模块模型 Role.php、Permission.php 以及在 components 文件夹中的 RbacInit.php)

如果您正在将服务器安装到 Apache 服务器上的 public_html 文件夹中,您必须配置重定向。在根目录中创建 public_html .hitaccess,内容如下

Options FollowSymLinks
AddDefaultCharset utf-8

<IfModule mod_rewrite.c>
    RewriteEngine On

    # the main rewrite rule for the frontend application
    RewriteCond %{REQUEST_URI} !^/(backend/web|admin)
    RewriteCond %{REQUEST_URI} !^/(api/web|api)
    RewriteRule !^frontend/web /frontend/web%{REQUEST_URI} [L]

    # redirect to the page without a trailing slash (uncomment if necessary)
    #RewriteCond %{REQUEST_URI} ^/admin/$
    #RewriteRule ^(admin)/ /$1 [L,R=301]
    # the main rewrite rule for the backend application
    RewriteCond %{REQUEST_URI} ^/admin
    RewriteRule ^admin(.*) /backend/web/$1 [L]

    # redirect to the page without a trailing slash (uncomment if necessary)
    #RewriteCond %{REQUEST_URI} ^/api/$
    #RewriteRule ^(api)/ /$1 [L,R=301]
    # the main rewrite rule for the api application
    RewriteCond %{REQUEST_URI} ^/api
    RewriteRule ^api(.*) /api/web/$1 [L]

    # if a directory or a file of the frontend application exists, use the request directly
    RewriteCond %{REQUEST_URI} ^/frontend/web
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # otherwise forward the request to index.php
    RewriteRule . /frontend/web/index.php [L]

    # if a directory or a file of the backend application exists, use the request directly
    RewriteCond %{REQUEST_URI} ^/backend/web
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # otherwise forward the request to index.php
    RewriteRule . /backend/web/index.php [L]

    # if a directory or a file of the api application exists, use the request directly
    RewriteCond %{REQUEST_URI} ^/api/web
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # otherwise forward the request to index.php
    RewriteRule . /api/web/index.php [L]

    RewriteCond %{REQUEST_URI} \.(htaccess|htpasswd|svn|git)
    RewriteRule \.(htaccess|htpasswd|svn|git) - [F]
</IfModule>

Web 文件夹,后端,前端和 api 部分也添加 .hitaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

现在前端在 http://sitename.com 上可用,后端在 http://sitename.com/admin 上,api 在 http://sitename.com/api/v1/users

代码检查器

composer check-style

测试

创建数据库,默认配置为 yii2_advanced_start_test 在 common\config\test-local.php

$config = [
    //...
    'components' => [
        'db' => [
            'dsn' => 'mysql:host=localhost;dbname=yii2_advanced_start_test',
            //...
        ],
        //...
    ],
    //...
];

应用迁移

composer migrate-test-up

在控制台中运行

composer build
composer test

许可证

BSD 许可证(BSD)。有关更多信息,请参阅 许可证文件