serhio-w03/yii2-advanced-template

Nenad Zivkovic 改进的 Yii 2 高级应用模板

2.2.3.1 2019-06-14 17:11 UTC

This package is auto-updated.

Last update: 2024-09-19 19:21:48 UTC


README

  • 更改 composer json:extra.asset-installer-paths 选项已弃用
  • 更改 composer json:使用 codeception/codeception 代替 yii-codeception

小贴士

针对版本 2.2.3.1 及 php 7.2.+(包括文章演示)

( composer create-project nenad/yii2-advanced-template:2.2.3 )

                                      +++
                                      
                    replace _protected/init with init from master branch : replaced mcrypt with openssl
                    optional: replace composer.json with composer.json from master branch (see lines above)
                    composer update after changes

yii2-advanced-template

Yii2-advanced-template 是基于由 Yii2 核心开发者创建的 yii2-app-advanced 模板。对此模板进行了几项升级。

  1. 此模板的附加功能在指南的下一段中列出。
  2. 应用结构已更改,以适应“共享托管友好”。

特性

  • 注册时是否激活账户
    • 您可以选择新用户是否需要通过电子邮件激活系统来激活账户才能登录。(见:common/config/params.php)。
  • 使用电子邮件/密码或用户名/密码组合登录。
    • 您可以选择用户如何登录系统。他们可以通过用户名|密码组合或电子邮件|密码登录。(见:common/config/params.php)。
  • 当您运行 yii migrate 命令时,Rbac 表与其他迁移一起安装。
    • RbacController 的 init() 动作将在迁移创建的 rbac 表中插入 5 个角色和 2 个权限。
    • 管理员可以轻松地将角色分配给用户(见:backend/user)。
    • 此应用程序提供了一个关于如何在代码中使用 rbac 的好例子。见:BackendController。
  • 具有 editor+ 角色的用户可以创建文章。
  • 会话数据默认存储在数据库中。
  • 系统设置存储在 config/params.php 文件中(从 v2 开始)。
  • 默认支持主题。
  • 默认支持翻译。
  • 管理员和创建者可以管理用户(从 v2 开始)。
  • 密码强度验证和强度计。
  • 此模板包含了默认高级模板的所有功能。
  • 代码有大量注释。

安装

假设您知道如何:安装和使用 Composer,以及安装可能需要的其他包/驱动。如果您对这一切都很陌生,您可以查看我关于在 Windows 8 和基于 Ubuntu 的 Linux 操作系统上安装由 Yii2 开发者提供的默认 Yii2 应用模板的指南,该指南发布在 www.freetuts.org 上。

  1. 创建您将用于应用程序的数据库(您可以使用 phpMyAdmin 或您喜欢的任何其他工具)。

  2. 现在打开您的控制台,并使用 cd 命令进入您的网站根目录,例如: cd /var/www/sites/

  3. 运行 Composer 的 create-project 命令

    composer create-project nenad/yii2-advanced-template advanced

  4. 一旦模板下载完成,您需要将其初始化为以下两个环境之一:开发(dev)或生产(prod)。将您的当前工作目录更改为 _protected 并执行 php init 命令。

    cd advanced/_protected/

    php init

    输入 0 以进行开发,执行命令,输入 yes 以确认,然后再次执行。

  5. 现在您需要告诉您的应用程序使用您之前创建的数据库。打开主本地配置文件 advanced/_protected/common/config/main-local.php 并调整您的连接凭证。

  6. 回到控制台。现在是时候运行 yii 迁移以在数据库中创建必要的表了。在 _protected 文件夹内,执行 ./yii migrate 命令

    ./yii migrate 或者在 Windows 上 yii migrate

  7. 执行 rbac 控制器的 init 动作,这将用默认的角色和权限填充我们的 rbac 表

    ./yii rbac/init 或者 Windows 上 yii rbac/init

已完成,您现在可以在浏览器中启动应用程序。

提示:如果您的应用程序名称是,例如,advanced,要查看其前端,只需访问本地主机的此 URL: localhost/advanced。要查看后端,这就可以了: localhost/advanced/backend

注意:首先注册的用户将获得 'The Creator'(超级管理员)角色。这应该是您。此角色拥有所有可能的超级权力 :)。之后注册的每个其他用户都将获得 'member' 角色。成员只是普通认证用户。

测试

如果您想运行测试,您应该创建一个额外的数据库来存储您的测试数据。通常测试数据库将与生产数据库具有相同的结构。我假设您已经全局安装了 Codeception,并且知道如何使用它。以下是轻松设置一切的步骤

  1. 假设您已创建名为 advanced 的数据库。创建一个名为 advanced_tests 的测试数据库。

  2. 在您的 main-local.php 配置文件中,将您要使用的数据库更改为 advanced_tests

  3. 打开控制台,使用 cd 命令进入应用程序的 _protected 文件夹。

  4. 再次运行迁移: ./yii migrate 或者 Windows 上 yii migrate

  5. 再次运行 rbac/init: ./yii rbac/init 或者 Windows 上 yii rbac/init

  6. 现在您可以告诉应用程序再次使用 advanced 数据库而不是 advanced_tests。再次调整您的 main-local.php 配置文件。

  7. 现在您已准备好告诉 Codeception 使用 advanced_tests 数据库。

    _protected/tests/codeception/config/config.php 文件中,告诉您的 db 使用 advanced_tests 数据库。

  8. 在应用程序根目录中启动 php 服务器: php -S localhost:8080(如果应用程序名称是 advanced,则根目录是 advanced 文件夹)

  9. 要运行针对应用程序前端编写的测试,请使用 cd 命令进入 _protected/tests/codeception/frontend,然后运行 codecept build,然后运行测试。

  10. 对于后端和通用测试,采取与步骤 9 相似的步骤。

目录结构

_protected
    backend
        assets/              contains backend assets definition
        config/              contains backend configurations
        controllers/         contains Web controller classes
        helpers/             contains helper classes
        models/              contains backend-specific model classes
        runtime/             contains files generated during runtime
        views/               contains view files for the Web application
    common
        config/              contains shared configurations
        mail/                contains view files for e-mails
        models/              contains model classes used in both backend and frontend
        rbac/                contains role based access control classes
    console
        config/              contains console configurations
        controllers/         contains console controllers (commands)
        migrations/          contains database migrations
        models/              contains console-specific model classes
        runtime/             contains files generated during runtime
    environments             contains environment-based overrides
    frontend
        assets/              contains frontend assets definition
        config/              contains frontend configurations
        controllers/         contains Web controller classes
        models/              contains frontend-specific model classes
        runtime/             contains files generated during runtime
        views/               contains view files for the Web application
        widgets/             contains frontend widgets

assets                   contains application assets generated during runtime
backend                  contains the entry script and Web resources for backend side of application
themes                   contains frontend themes
uploads                  contains various files that can be used by both frontend and backend applications

2.2.0 版本更改

  1. uploads 文件夹添加到应用程序根目录,该文件夹可以由前端和后端应用程序共享。
  2. 已添加 @uploads 别名,因此您可以在代码中使用它(将针对 your_app_name/uploads 文件夹)。
  3. 包含额外的翻译。感谢 MeFuMo 和 hior。
  4. 已将警报小部件调用添加到后端 main.php 布局。
  5. 进行了少量修复。

2.1.0 版本更改

  1. 已添加 CRUD 文章(帖子)的选项。
  2. 已包含翻译支持,并添加了塞尔维亚语翻译。
  3. 改进了主题。
  4. 添加了新的角色、权限和规则。
  5. 进行了其他代码重构。

2.0 版本更改

  1. 设置存储在 config/params.php 配置文件中,以减少数据库负载。
  2. 将账户更新与用户管理合并,现在用户管理功能更强大。
  3. 将用户模型从 UserIdentity 和 User 分离出来(以便更容易理解和使用)。
  4. 包含 4 个美观的 bootstrap 响应式主题。
  5. 注释样式根据 yii2 官方样式进行更改。
  6. 根据所做的更改重写了测试。
  7. 进行了许多其他润色。

密码强度指南

从 1.1.1 版本发布以来,密码强度扩展已包含为核心模板的改进部分。使用方法非常简单。

在我们的注册、用户创建/更新和密码重置表单中,当用户输入密码时,密码强度计始终显示。这将向用户提供其密码强度的直观表示。
但这还不是全部。作为创建者,您可以在设置中启用“强制使用强密码”选项。如果您启用它,用户将被强制使用您选择的预设的强密码。例如,如果您使用正常预设,用户将被强制使用至少8个字符的密码,其中至少包含一个大小写字母和一个数字。

从版本2开始,设置存储在config/params.php文件中!

选择预设

默认情况下,正常预设用于注册和用户创建/更新表单。对于密码重置,我们使用'reset'预设。如果您想自定义使用哪个预设,请查看SignupForm模型、User模型和ResetPasswordForm模型。您将看到声明用于使用强密码的规则。预设位于vendor/nenad/yii2-password-strength/presets.php。您可以选择预设.php中声明的其他预设,或者创建新的预设。

Yii2