2amigos/yii2-app-template

此包已废弃且不再维护。没有建议的替代包。

Yii 2 项目模板

1.0.9 2017-07-28 23:38 UTC

This package is auto-updated.

Last update: 2023-08-16 02:53:03 UTC


README

Packagist Version Latest Stable Version Total Downloads

此项目是使用 https://github.com/2amigos/yii2-config-kit 可以完成的示例。

这是一个为 Yii2 项目提出的应用项目模板。这个新模板适用于任何规模的项目。尽管 Yii 社区推荐使用高级项目模板,但如果我们仔细查看该模板,你会很快意识到它实际上只是一个包含三个应用程序的模板:backend / frontend / console。那么,这个模板和那个模板有什么区别?一个共享的公共文件夹和另一个应用程序?阻止你以这种起点架构进行相同操作的是什么?当然,什么都没有。

我们使用 Yii 的知识和经验告诉我们,高级模板实际上并不必要来构建这个模板也能处理的所有内容。你希望创建一个超级管理员应用程序吗?那么,只需在你想添加的地方添加另一个文件夹,并从 src 文件夹注入共享资源,以及 businessdomain 逻辑。

如果你正在使用我们提出的模板,请考虑我们的以下建议

  • 确保你的应用程序逻辑 不在 你的模型中。是的,避免那种 MVC 模式推荐厚模型。你肯定会结束于许多上帝对象(具有大量代码的单一模型,难以维护,以至于你会后悔开始编码的那一天;特别是,当你需要将业务逻辑迁移到更好的/更新的架构时)。
  • 保持你的控制器薄,你的模型更薄,你的视图尽可能不包含 PHP 和 JS 代码。
  • 如果你的应用程序将要很大,请不要使用你的模型的事件,尽管它们允许你这样做,确保它们不是大型流程的一部分。你最终会得到一个难以测试、难以维护或扩展的噩梦。尝试以不同的方式实现观察者模式,允许你的观察者对象池通知这些事件。这将使你的代码更容易测试。
  • 不要在你的视图中混合不同的代码。请,请,请不要使用内联脚本和/或 CSS,不要在 PHP 文件中注入 JavaScript 代码,不要使用框架的动态 JavaScript jQuery onload 功能。我相信这种方法是如此错误。对于小型项目可以使用,但不要用于大型项目。坚持关注点的分离,并保持 JS 在它应该的地方:在前端,在 JS 文件中...并且为了我们大家,不要成为时尚主义者。不要让 HTML 模板出现在你的 JavaScript 组件中,即使库允许你这样做。K.I.S.S.,朋友们,一路 K.I.S.S.
  • 使用任务管理器或模块打包器为你的 JavaScript 文件。我们已添加 .bowerrcgulpfile.js 以尽可能保持其简单性。Yii 资产打包器对于小型项目来说是好的,并且达到了目的,但说实话,这是当今 Web 设计趋势所在吗?

Yii 是一个出色的框架,因为它封装了所有工具。它具有极大的灵活性,尽管很多人抱怨它的继承疯狂和内部设计,但它仍然是一个良好的健壮框架。我们只需要非常谨慎地使用这种力量,因为它可能会给你带来比优势更多的问题。

目录结构

app                 [ Yii's application related code: commands, components, controllers, bundles, models, modules, 
|                     views and widgets ]
├── assets          [ contains asset's definitions ]
├── commands        [ contains Console commands (Yii names them controllers) ]
├── controllers     [ contains Web controller classes ]
├── migrations      [ database migrations ]
├── models          [ contains model classes ]
├── views           [ contains application views ]
└── widgets         [ contains widget components ]
bin                 [ contains command-line executable scripts ]
bootstrap           [ contains bootstrap process files ]
config              [ contains application configuration files ]
public              [ contains Web application entry script + static resources ]
runtime             [ contains files generated during application's runtime ]
src                 [ contains domain business logic files. Portable code, free of Yii's code. Build your library here. ]
tests               [ contains codeception tests for your application ]

要求

此项目模板对您的Web服务器支持PHP 5.4.0的最小要求。但我们强烈建议您使用最新的PHP 7+。

安装

通过Composer安装

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

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

php composer.phar create-project --prefer-dist --stability=dev 2amigos/yii2-app-template your-site-name

命令完成后,请进行以下操作

cd your-site-name 
composer start-server 

您将可以在 http://localhost:8080 访问您的应用程序。要停止服务器,只需在终端中键入
composer stop-server 即可停止。您也可以简单地按 Ctrl+C 来停止脚本执行。

请注意,此模板中包含的Composer命令已在Linux | Mac环境中进行了测试,对不起,没有Windows。

测试

测试位于 tests 目录中。它们使用 Codeception PHP 测试框架开发。默认情况下有3个测试套件

  • 单元测试
  • 功能测试
  • 验收测试

首先运行测试服务器。此命令将在您的网站根目录中 inject index-test.php 脚本,以便您能够运行功能测试和验收测试

composer start-test-server 

然后可以执行以下命令来运行测试

composer exec codecept run

或者,如果您已经全局安装了codeception,可以简单地

codecept run 

编写干净的代码

我们为您添加了一些开发工具,以便您检查您的工作是否为干净的代码

  • PHP杂乱检测器:分析给定的PHP源代码库,并查找其中可能存在的多个潜在问题。
  • PHP代码检查器:对PHP、JavaScript和CSS文件进行标记,并检测违反定义的编码标准。
  • PHP代码修复器:分析一些PHP源代码,并尝试修复编码标准问题。请修改 .php_cs 以满足您的需求。

您应该按此顺序使用它们。

使用php杂乱检测器

包含所有选项的示例

 ./vendor/bin/phpmd ./src text codesize,unusedcode,naming,design,controversial,cleancode

使用代码检查器

 ./vendor/bin/phpcs -s --report=source --standard=PSR2 ./

使用代码修复器

我们添加了一个PHP代码修复器来标准化我们的代码。它包括Symfony、PSR2和某些贡献者的规则。

./vendor/bin/php-cs-fixer fix ./src --config .php_cs

2amigOS!