01. Yii 2.0 框架的安装
1. Yii 概述
Yii Framework 是一个高性能的,适用于开发 WEB2.0 应用的 PHP 框架。
3.2 从归档文件安装
5. 设置cookieValidationKey (仅 Yii 基础版需要设置) 修改 basic/config/web.php 文件,给 cookieValidationKey 配置项 添加一个密钥(若你通过 Composer 安装,则此步骤会自动完成): // !!! 在下面设置一个密钥, 以供 cookie validation 的需要 "cookieValidationKey" => md5("basic-2016"), 6. web服务器的虚拟主机配置 修改apache的虚拟主机配置文件(E:xamppapacheconfextrahttpd-vhosts.conf)
NameVirtualHost *:80 ########## Yii 2.0 基础版 ########## <VirtualHost *:80> ServerName www.basic.com ServerAlias basic.com DocumentRoot "E:xampphtdocsasicweb" ErrorLog "logs/basic.com-error.log" CustomLog "logs/basic.com-access.log" common </VirtualHost> ########## Yii 2.0 基础版 ##########
########## Yii 2.0 高级版 ########## <VirtualHost *:80> ServerName www.yii.frontend.com ServerAlias yii.frontend.com DocumentRoot "E:xampphtdocsadvancedfrontendweb" ErrorLog "logs/yii.frontend.com-error.log" CustomLog "logs/yii.frontend.com-access.log" common </VirtualHost> <VirtualHost *:80> ServerName www.yii.backend.com ServerAlias yii.backend.com DocumentRoot "E:xampphtdocsadvancedackendweb" ErrorLog "logs/yii.backend.com-error.log" CustomLog "logs/yii.backend.com-access.log" common </VirtualHost> ########## Yii 2.0 高级版 ##########
配置好虚拟主机后,请修改本机的host文件(设置IP和域名的映射关系),然后重启Apache,打开浏览器,输入:http://basic.com/ 如果能正常打开Yii的提示页, 如提示 "Congratulations!",则说明 Yii 2.0 安装成功,且虚拟主机配置也成功了。
如果使用的是 Yii 2.0 的高级版,则需要先初始化 Yii 应用,初始化方法如下: 打开 cmd,切换至项目根目录(如 E:xampphtdocsadvanced),运行下面的命令: php init 出现一个选择提示: [ 0 ] Development [ 1 ] Production ( 0 表示初始化为开发环境,1表示初始化为生产环境) 这里我们输入 0,即表示将 Yii 应用初始化为开发环境。 初始化完成之后,打开浏览器,输入:http://yii.frontend.com,可访问前台页面;输入:http://yii.backend.com,可访问后台登录界面。
7. 创建第一个控制器 基础版: 在 E:xampphtdocsasiccontrollers 目录下创建一个 IndexController.php 文件,内容如下: <?php namespace appcontrollers; use yiiwebController;
class IndexController extends Controller { public function actionIndex(){ echo "欢迎使用 Yii2.0 基本应用!"; } } 在浏览器地址栏输入:http://basic.com/index.php?r=index/index,就可以访问对应控制器里的方法。
高级版: 在 E:xampphtdocsadvancedackendcontrollers 目录(后台控制器目录)下创建一个 IndexController.php 文件,内容如下: <?php namespace backendcontrollers; use yiiwebController;
class IndexController extends Controller { public function actionIndex(){ echo "欢迎使用 Yii 2.0 高级应用后台管理系统!"; } } 在浏览器地址栏输入:http://yii.backend.com/index.php?r=index/index,就可以访问后台对应控制器里的方法。
在 E:xampphtdocsadvancedfrontendcontrollers 目录(前台控制器目录)下创建一个 IndexController.php 文件,内容如下: <?php namespace frontendcontrollers; use yiiwebController;
class IndexController extends Controller { public function actionIndex(){ echo "欢迎访问 Yii 2.0 高级应用前台页面!"; } } 在浏览器地址栏输入:http://yii.frontend.com/index.php?r=index/index,就可以访问前台对应控制器里的方法。
8. 开启 pathinfo 模式 下面都以基础版为例,高级版类似。 修改 basic/config 目录下的 web.php,在$config = [ "components"=>[ 加到这里 ] ]中加入:
urlManager" => [ "enablePrettyUrl" => true, "showScriptName" => false, "rules" => [ ], ], 或者,如果 urlManager 所指向的数组已存在,去掉注释即可。 就可以通过 pathinfo 的形式访问控制器里面的方法,如:http://basic.com/index.php/index/index
设置伪静态: 在 urlManager 所指向的数组中,加入如下代码: "suffix"=>".html", 就可以这样访问:http://basic.com/index.php/index/index.html
隐藏入口文件 index.php: web服务器需要开启 mod_rewrite(url重写模块),在 basic/web 目录下,新建一个文件,命名为 .htaccess,内容如下:
# 开启 mod_rewrite 用于美化 URL 功能的支持(译注:对应 pretty URL 选项) RewriteEngine on # 如果请求的是真实存在的文件或目录,直接访问 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 如果请求的不是真实文件或目录,分发请求至 index.php RewriteRule . index.php # ...其它设置...
另外一种方法: 将该url重写规则,用 Directory 标签包裹,然后写入虚拟主机配置文件 httpd-vhosts.conf 对应的标签(<VirtualHost *:80> ... </VirtualHost>)内部,如下:
NameVirtualHost *:80 ########## Yii 2.0 基础版 ########## <VirtualHost *:80> ServerName www.basic.com ServerAlias basic.com DocumentRoot "E:xampphtdocsasicweb" ErrorLog "logs/basic.com-error.log" CustomLog "logs/basic.com-access.log" common
Yii 自带了丰富的功能 ,包括 MVC,DAO/ActiveRecord,I18N/L10N,缓存,身份验证和基于角色的访问控制,脚手架,测试等,可显著缩短开发时间。
Yii 是纯面向对象的,基于组件的,用于开发大型 Web 应用的高性能 PHP 框架。从面向对象的角度来说,它比 TP 框架要好,但 TP 框架使用起来比 Yii 框架简单。
2. Yii 准备工作
Yii 2.0 对运行环境的要求:
需要 PHP 5.4.0 或以上版本
PHP 需要开启PDO的扩展(如果使用MySQL数据库,就开启php_pdo_mysql.dll)
缓存支持(memcache、redis或apc),安装相应的php扩展和对应的软件
3. 安装 Yii
你可以通过两种方式安装 Yii:使用 Composer 或下载一个归档文件。 推荐使用前者,这样只需执行一条简单的命令就可以安装新的扩展或更新 Yii 了。3.1 通过 Composer 安装
如果你的系统还未安装 Composer,你就需要先安装 Composer,具体可参考 Composer 中文网
Composer 安装好后,切换到一个可通过 Web 访问的目录(如:E:xampphtdocs)
(使用 composer 安装软件包时,建议启用本镜像服务,来加快下载速度,启用本镜像服务的方法,可参考:http://pkg.phpcomposer.com/) 先运行下面的命令,来安装 Composer Asset 插件: composer global require "fxp/composer-asset-plugin:^1.2.0" 安装完 Composer Asset 插件后,再来安装 Yii2 的基本应用程序模板(Yii 2.0 的基础版本 -> basic),运行下面的命令: composer create-project yiisoft/yii2-app-basic basic 2.0.9 如果想要安装 Yii2 的高级应用程序模板(Yii 2.0 的高级版本 -> advanced),就运行下面的命令: composer create-project yiisoft/yii2-app-advanced advanced 2.0.9 注意:通过 composer 安装 Yii 2.0 的过程中,可能会提示你输入 GitHub 账户的授权 token,用于验证权限。故你必须要有一个 GitHub 账户,然后按照命令行的提示进入指定网页,生成token,将token输入到命令行中,继续安装。3.2 从归档文件安装
下载以下归档文件之一,然后将其解压到一个Web服务器的根目录(如 E:xampphtdocs):
- Yii2的基本应用程序模板
- Yii2的高级应用程序模板
5. 设置cookieValidationKey (仅 Yii 基础版需要设置) 修改 basic/config/web.php 文件,给 cookieValidationKey 配置项 添加一个密钥(若你通过 Composer 安装,则此步骤会自动完成): // !!! 在下面设置一个密钥, 以供 cookie validation 的需要 "cookieValidationKey" => md5("basic-2016"), 6. web服务器的虚拟主机配置 修改apache的虚拟主机配置文件(E:xamppapacheconfextrahttpd-vhosts.conf)
NameVirtualHost *:80 ########## Yii 2.0 基础版 ########## <VirtualHost *:80> ServerName www.basic.com ServerAlias basic.com DocumentRoot "E:xampphtdocsasicweb" ErrorLog "logs/basic.com-error.log" CustomLog "logs/basic.com-access.log" common </VirtualHost> ########## Yii 2.0 基础版 ##########
########## Yii 2.0 高级版 ########## <VirtualHost *:80> ServerName www.yii.frontend.com ServerAlias yii.frontend.com DocumentRoot "E:xampphtdocsadvancedfrontendweb" ErrorLog "logs/yii.frontend.com-error.log" CustomLog "logs/yii.frontend.com-access.log" common </VirtualHost> <VirtualHost *:80> ServerName www.yii.backend.com ServerAlias yii.backend.com DocumentRoot "E:xampphtdocsadvancedackendweb" ErrorLog "logs/yii.backend.com-error.log" CustomLog "logs/yii.backend.com-access.log" common </VirtualHost> ########## Yii 2.0 高级版 ##########
配置好虚拟主机后,请修改本机的host文件(设置IP和域名的映射关系),然后重启Apache,打开浏览器,输入:http://basic.com/ 如果能正常打开Yii的提示页, 如提示 "Congratulations!",则说明 Yii 2.0 安装成功,且虚拟主机配置也成功了。
如果使用的是 Yii 2.0 的高级版,则需要先初始化 Yii 应用,初始化方法如下: 打开 cmd,切换至项目根目录(如 E:xampphtdocsadvanced),运行下面的命令: php init 出现一个选择提示: [ 0 ] Development [ 1 ] Production ( 0 表示初始化为开发环境,1表示初始化为生产环境) 这里我们输入 0,即表示将 Yii 应用初始化为开发环境。 初始化完成之后,打开浏览器,输入:http://yii.frontend.com,可访问前台页面;输入:http://yii.backend.com,可访问后台登录界面。
7. 创建第一个控制器 基础版: 在 E:xampphtdocsasiccontrollers 目录下创建一个 IndexController.php 文件,内容如下: <?php namespace appcontrollers; use yiiwebController;
class IndexController extends Controller { public function actionIndex(){ echo "欢迎使用 Yii2.0 基本应用!"; } } 在浏览器地址栏输入:http://basic.com/index.php?r=index/index,就可以访问对应控制器里的方法。
高级版: 在 E:xampphtdocsadvancedackendcontrollers 目录(后台控制器目录)下创建一个 IndexController.php 文件,内容如下: <?php namespace backendcontrollers; use yiiwebController;
class IndexController extends Controller { public function actionIndex(){ echo "欢迎使用 Yii 2.0 高级应用后台管理系统!"; } } 在浏览器地址栏输入:http://yii.backend.com/index.php?r=index/index,就可以访问后台对应控制器里的方法。
在 E:xampphtdocsadvancedfrontendcontrollers 目录(前台控制器目录)下创建一个 IndexController.php 文件,内容如下: <?php namespace frontendcontrollers; use yiiwebController;
class IndexController extends Controller { public function actionIndex(){ echo "欢迎访问 Yii 2.0 高级应用前台页面!"; } } 在浏览器地址栏输入:http://yii.frontend.com/index.php?r=index/index,就可以访问前台对应控制器里的方法。
8. 开启 pathinfo 模式 下面都以基础版为例,高级版类似。 修改 basic/config 目录下的 web.php,在$config = [ "components"=>[ 加到这里 ] ]中加入:
urlManager" => [ "enablePrettyUrl" => true, "showScriptName" => false, "rules" => [ ], ], 或者,如果 urlManager 所指向的数组已存在,去掉注释即可。 就可以通过 pathinfo 的形式访问控制器里面的方法,如:http://basic.com/index.php/index/index
设置伪静态: 在 urlManager 所指向的数组中,加入如下代码: "suffix"=>".html", 就可以这样访问:http://basic.com/index.php/index/index.html
隐藏入口文件 index.php: web服务器需要开启 mod_rewrite(url重写模块),在 basic/web 目录下,新建一个文件,命名为 .htaccess,内容如下:
# 开启 mod_rewrite 用于美化 URL 功能的支持(译注:对应 pretty URL 选项) RewriteEngine on # 如果请求的是真实存在的文件或目录,直接访问 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 如果请求的不是真实文件或目录,分发请求至 index.php RewriteRule . index.php # ...其它设置...
另外一种方法: 将该url重写规则,用 Directory 标签包裹,然后写入虚拟主机配置文件 httpd-vhosts.conf 对应的标签(<VirtualHost *:80> ... </VirtualHost>)内部,如下:
NameVirtualHost *:80 ########## Yii 2.0 基础版 ########## <VirtualHost *:80> ServerName www.basic.com ServerAlias basic.com DocumentRoot "E:xampphtdocsasicweb" ErrorLog "logs/basic.com-error.log" CustomLog "logs/basic.com-access.log" common
<Directory "E:xampphtdocsasicweb"># 开启 mod_rewrite 用于美化 URL 功能的支持(译注:对应 pretty URL 选项)RewriteEngine on# 如果请求的是真实存在的文件或目录,直接访问RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d# 如果请求的不是真实文件或目录,分发请求至 index.phpRewriteRule . index.php# ...其它设置...
</Directory>
</VirtualHost>########## Yii 2.0 基础版 ##########
重启 Apache 服务器,就可以这样访问:http://basic.com/index/index.html
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。