Yii2.0中文开发向导——高级应用程序模板

高级应用程序模板
这个模板用在大型的团队开发项目中,而且后台从前台独立分离出来以便于部署在多个服务器中。由于YIi2.0的一些新的特性,这个程序模板的功能要更深一点。提供了基本的数据库的支持,注册、密码找回等功能。

安装

可以通过Composer来安装
如果没有安装Composer,先安装

然后用如下命令来获取

1. `php composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-advanced /path/to/yii-application`

(王银河.CN提供)

也可以直接下载压缩文件:Yii 2 with advanced application template(beta)
https://github.com/yiisoft/yii2/ ... -app-2.0.0-beta.tgz

开始

安装完成后,需要对其进行初始化操作。

  • 执行init,选择开发环境(dev)
    1. php /path/to/yii-application/init


- 创建新的数据库,设置common/config/main-local.php里的components.db数据库信息 - 使用控制台命令迁移数据库
1. yii migrate


- 设置web服务器的根目录
前台/path/to/yii-application/frontend/web/对应的url为http://frontend/
后台/path/to/yii-application/backend/web/对应的url为http://backend/

目录结构

在根目录下面有这几个子目录

根目录下面还有包含一些文件

系统定义的路径别名

应用程序

这个模板包含三个应用程序,前台、后台和控制台。前台通常来说就是展现给终端用户的,也就是项目本身。后台就是管理员控制面板,包含有分析以及类似的功能等。控制台主要用来做一些定时任务和一些简单的服务器的管理,另外也可以用来部署应用程序、数据库的迁移、资源的管理等。

common 目录提供一些公共的文件,可用于多个应用程序,例如User模型。

前台和后台都是web应用程序,他们都包含一个web目录,也就是web的根目录,在部署服务器的时候就得要指向这个目录。
每个应用程序都有他们自己的命名空间以及对应的别名。同理,common也有自己的命名空间和对应的别名。

配置和开发环境

在平常的开发中,直接设置配置文件会有多个问题

为了解决这些问题,Yii引入了一个非常简单的环境的概念。每个环境由环境目录下的一组文件的集合来表示。init命令用于不同环境之间切换。它只是复制从环境目录中所有应用程序的根目录。

通常环境包含应用程序引导文件如index.php和以-local.php后缀的配置文件。这些已经添加到.gitignore中,所以不会再添加到源码仓库中。
为了避免重复的配置文件相互覆盖。例如,前台应用程序按照以下顺序来读取配置:

参数文件按以下顺序读取

后面读取的文件配置会覆盖前面的配置

整个的流程图形如下

配置 Composer 

应用程序安装完成后就可以设置要目录下面的composer.json

1. {
2.     "name""yiisoft/yii2-app-advanced",
3.     "description""Yii 2 Advanced Application Template",
4.     "keywords": ["yii""framework""advanced""application template"],
5.     "homepage""http://www.yiiframework.com/",
6.     "type""project",
7.     "license""BSD-3-Clause",
8.     "support": {
9.         "issues""https://github.com/yiisoft/yii2/issues?state=open",
10.         "forum""http://www.yiiframework.com/forum/",
11.         "wiki""http://www.yiiframework.com/wiki/",
12.         "irc""irc://irc.freenode.net/yii",
13.         "source""https://github.com/yiisoft/yii2"
14.     },
15.     "minimum-stability""dev",
16.     "require": {
17.         "php"">=5.4.0",
18.         "yiisoft/yii2""",
19.         "yiisoft/yii2-swiftmailer""
",
20.         "yiisoft/yii2-bootstrap""",
21.         "yiisoft/yii2-debug""
",
22.         "yiisoft/yii2-gii""*"
23.     },
24.     "scripts": {
25.         "post-create-project-cmd": [
26.             "yii\composer\Installer::setPermission"
27.         ]
28.     },
29.     "extra": {
30.         "writable": [
31.             "backend/runtime",
32.             "backend/web/assets",
33.
34.             "console/runtime",
35.             "console/migrations",
36.
37.             "frontend/runtime",
38.             "frontend/web/assets"
39.         ]
40.     }
41. }

首先,修改一些基本信息。例如名称,描述,关键词,主页等等。
你还可以根据你的需要添加更多的应用程序。这些包都是来自packagist.org,可免费的浏览所有的代码。
修改完composer.json之后 就可以运行

1. php composer.phar update --prefer-dist

,等下载并安装完成后就可以开始使用了。自动加载的类将会自动处理。

创建从后端到前端的链接

  通常情况下需要从后端应用程序连接到前端应用程序。因为前端应用程序可能包含自己的URL管理规则,所以需要再添加一个不同名字的后台的URL管理规则。

1. return [
2.     'components' => [
3.         'urlManager' => [
4.             // here is your normal backend url manager config
5.         ],
6.         'urlManagerFrontend' => [
7.             // here is your frontend URL manager config
8.         ],
9.
10.     ],
11. ];

之后,就可以像这样来使用前台的url

1. echo Yii::$app->urlManagerFrontend->createUrl(...);

原文链接:http://www.yiifans.com/forum.php?mod=viewthread&tid=25 (出处: Yii2|Yii爱好者中文社区门户)

翻译来源:http://www.yiiframework.com/doc-2.0/guide-apps-advanced.html (Yii Framework 2.0 API Decumentation)

comments powered by Disqus