Yii高级版部署指南
貌似好久没写博客了,索性来灌个水~本来是决定不再写PHP相关的博客的,但是为了给博客充数,还是来一发。
Yii官方给我们提供了两种安装方法,composer安装和从模版创建。事实上,这两种方法安装下来都会区分基础版和高级版本。今天,就来看看从压缩文件部署Yii高级版本。
1,在本地电脑部署好PHP环境之后(这里推荐使用xampp),我们就可以把压缩包的部署模板下载下来了(Yii官网->Download频道->Install from an Archive File)。解压到站点目录,比如htdocs/learnYii(解压完了learnYii的结构应该和图中是一样的)。
2,不用尝试访问http://localhost/learnYii , 你是访问不到的,别问我为什么!因为你压根都没部署。部署之前,请确认你的PHP可执行目录加入到了操作系统的环境变量(在系统变量path加上一个值,该值为php.exe所在文件夹的路径),以确保在cmd窗口可以使用php命令。检查是否存在PHP环境变量,只需要在cmd中打php –version
看到PHP的版本信息,那么就安装成功了。
*如果你使用的是xampp,就没必要这么麻烦了,点击面板上面的shell,即可执行。
3,在shell窗口将目录切到htdocs\learnYii
……
cd htdocs\learnYii
4,执行初始化批处理文件,选择环境,推荐选择开发环境。
初始化
#init
选择版本
#which environment do you want the application to be initialized in?
0
确认选择
#yes
5,访问http://localhost/learnYii/frontend/web/ 和http://localhost/learnYii/backend/web/ 如果出页面,则表示安装成功。
*事实上,能不能安装Yii,是可以检测的http://localhost/learnYii/requirements.php 即可。
6,尝试在目录htdocs\learnYii\frontend\controllers\新建文件TestController.php
并写入以下内容
<?php
namespace frontend\controllers;
use Yii;
use yii\web\Controller;
/**
- Test controller
*/
class TestController extends Controller
{
/**
- Default Action
*/
public function actionIndex()
{
echo “Test::Hello”;
}
/**
- Test Action
*/
public function actionTest()
{
echo “Test::Test”;
}
}
如果http://localhost/learnYii/frontend/web/?r=test/ 和 http://localhost/learnYii/frontend/web/?r=test/test 能输出内容,那么就OK了。
*Yii是一套十分完善的MVC框架。网址中r表示路径。其中r=a/b表示A控制器下的B action~控制器的文件名必须为XyzController。并且action必须为actionAbc。注意,文件名必须要和类名保持一致。类名采用大写字母开头的驼峰,action名字采用小写字母开头的驼峰。
7,既然前面的六步完成了,那我们看看gii吧。赶紧访问http://localhost/learnYii/frontend/web/?r=gii
这货可以自动生成model,curd,Controller,表单,Module,扩展……
这里试试Module
预览:
点击生成按钮
8,根据提示,将以下代码放到frontend\config\main.php当中的return 部分(作为单独的元素)
‘modules’ => [
'api' => [ 'class' => 'app\modules\api\Module', ], ],
访问,[http://localhost/learnYii/frontend/web/index.php?r=api](http://localhost/learnYii/frontend/web/index.php?r=api "http://localhost/learnYii/frontend/web/index.php?r=api") 如果成功了就说明创建module成功。
[](http://www.httpbin.com.cn/wp-content/uploads/2015/06/image9.png)
*一个modules包含了完成的MVC构架。大家可以查看生成的代码。