请选择 进入手机版 | 继续访问电脑版

Yii2|Yii爱好者中文社区门户

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
热搜: yii 控制器 数组
查看: 17484|回复: 9

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

  [复制链接]

175

主题

861

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
45484
发表于 2014-4-28 15:20:49 | 显示全部楼层 |阅读模式
高级应用程序模板

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

安装

可以通过Composer来安装
如果没有安装Composer,先安装
  1. curl -s http://getcomposer.org/installer | php
复制代码

然后用如下命令来获取
  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/


目录结构

在根目录下面有这几个子目录
  • backend——后台web程序
  • common——公共的文件
  • console——控制台程序
  • environments——环境配置
  • frontend——前台web程序

根目录下面还有包含一些文件
  • .gitignore ——git版本控制中忽略的文件和目录,如果你有一些你不想要的文件到你的源代码里面就把它添加到这个文件中。
  • composer.json——这个下面会描述
  • init——在Composer里面所描述初始化脚本
  • init.bat——和上面一样,不过是Windows下面的
  • LIENSE.md——这个就不说了
  • README.md——同上
  • requirements.php——Yii运行环境要求检测文件
  • yii——控制台程序引导文件
  • yii.bat——Windows下面的东东


系统定义的路径别名

  • @yii ——框架的目录。
  • @app——当前正在运行的应用程序的基本路径。
  • @common -公共文件目录。
  • @frontend——前端web应用程序目录。
  • @backend ——后端web应用程序目录。
  • @console -控制台目录。
  • @runtime——当前正在运行的web应用程序的运行时目录
  • @vendor ——基础框架目录。
  • @web ——当前正在运行的web应用程序的url
  • @webroot——当前正在运行的web应用程序的web根目录。


应用程序

这个模板包含三个应用程序,
  • 前台应用程序
    所在目录为frontend,通常来说就是展现给终端用户的,也就是项目本身
  • 后台应用程序
    所在目录为backend,一般为管理员控制面板,对整个网站的管理端
  • 控制台应用程序
    所在目录为console,主要用来做一些定时任务和一些简单的服务器的管理,另外也可以用来部署应用程序、数据库的迁移、资源的管理等。

此外还有一个common 目录,这个里面主要是提供一些公共的文件,可用于多个应用程序,例如User模型。

前台和后台都是web应用程序,他们都包含一个web目录,也就是web的根目录,在部署服务器的时候就得要指向这个目录。

每个应用程序都有他们自己的命名空间以及对应的别名。同理,common也有自己的命名空间和对应的别名。


配置和开发环境

在平常的开发中,直接设置配置文件会有多个问题
  • 每个团队成员都有自己的配置选项。如果提交这样的配置将影响其他团队成员。
  • 产品数据库密码和API密钥不应该在代码仓库中。
  • 在有多个服务器的情况下:开发、测试、生产,每一个服务器都应该有自己的配置。
  • 每种情况下都定义所有配置选项很重复,并且还要花太多的时间去维持它。


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

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

  • common/config/main.php
  • common/config/main-local.php
  • frontend/config/main.php
  • frontend/config/main-local.php

参数文件按以下顺序读取
  • common/config/params.php
  • common/config/params-local.php
  • frontend/config/params.php
  • frontend/config/params-local.php

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

整个的流程图形如下



配置 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.             "console/runtime",
  34.             "console/migrations",

  35.             "frontend/runtime",
  36.             "frontend/web/assets"
  37.         ]
  38.     }
  39. }
复制代码



首先,修改一些基本信息。例如名称,描述,关键词,主页等等。
你还可以根据你的需要添加更多的应用程序。这些包都是来自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.             BaseUrl => 'xxx',
  9.             HostInfo => 'yyy',
  10.         ],

  11.     ],
  12. ];
复制代码

具体的BaseUrl和HostInfo是什么 就根据你要求自己写吧
如果不知道 怀在前台var_dump(Yii:app),然后在输出的代码中找前台的UrlManager中相同的参数

之后,就可以像这样来使用前台的url
  1. echo Yii::$app->urlManagerFrontend->createUrl(...);
复制代码




Yii2.0中文开发向导——目录

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

1

主题

7

帖子

49

积分

新手上路

Rank: 1

积分
49
发表于 2014-5-13 09:34:11 | 显示全部楼层
期待持续更新
回复 支持 反对

使用道具 举报

175

主题

861

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
45484
 楼主| 发表于 2014-5-13 14:12:50 | 显示全部楼层
谢谢支持
回复

使用道具 举报

175

主题

861

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
45484
 楼主| 发表于 2014-10-15 10:36:07 | 显示全部楼层
howgoo 发表于 2014-10-10 16:36
我是新手

这两个目录的页面,我在浏览器中打开了,看起来没啥区别啊。

主要就是两个不同的目录吧
回复 支持 反对

使用道具 举报

1

主题

2

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2014-10-21 16:55:15 | 显示全部楼层
我是来混 个分的,这年头没分啥也干不了
回复 支持 反对

使用道具 举报

175

主题

861

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
45484
 楼主| 发表于 2014-10-21 17:57:03 | 显示全部楼层
dengluzhyong 发表于 2014-10-21 16:55
我是来混 个分的,这年头没分啥也干不了


回复 支持 反对

使用道具 举报

0

主题

15

帖子

70

积分

注册会员

Rank: 2

积分
70
发表于 2015-1-30 10:19:48 | 显示全部楼层

yii migrate  数据库迁移是什么意思?
回复 支持 反对

使用道具 举报

0

主题

2

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2015-4-9 18:48:39 | 显示全部楼层
高级模板安装 那个init.bat文件双击 就闪了一下 什么都没有呢?
回复 支持 反对

使用道具 举报

175

主题

861

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
45484
 楼主| 发表于 2015-4-9 19:12:23 | 显示全部楼层
你打开cmd,然后把这个ini.bat文件拖到cmd里面再执行
回复 支持 反对

使用道具 举报

175

主题

861

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
45484
 楼主| 发表于 2015-4-9 19:12:49 | 显示全部楼层
另外还可以再检查一下php的环境变量
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|Yii2|Yii爱好者中文社区门户  

GMT+8, 2017-3-28 04:24 , Processed in 0.294151 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表