写个hello world
易框架是MVC框架,也就是说有模型,视图,控制三层。
现在我们写一个简单的hello word并不需要用到模型层,只要控制层和视图层就够了。
-
首先要把电脑本机变成一个服务器,不知道这说法对不对
为什么这么说呢,因为php是服务器端的脚本语言,需要服务器解析,单纯的用浏览器打开php文件是不起作用的,或者说浏览器只会把它当作一个文本文件去渲染出来。
那么我用的是集成的运行环境,网上搜upupw,我用的是apache版的php5.4,记得php版本至少要5.4,因为yii2.0不支持php5.4以下的版本。基本上这个软件下完,安装,运行,开启全部服务,最后在浏览器上输入127.0.0.1运行出现这个页面就ok啦
- 第二步先下个框架
yii框架的下载页面我建议是用归档文件安装,暂时用基本模板就够了,然后可能会被墙,因为是在github上的。下载完解压出来。然后打开basic\config\web.php
,添加一个cookieValidationKey
对于的属性。
'request' => [
// !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
'cookieValidationKey' => 'cookie', // 随便填一个
],
访问basic\web\index.php
还有如果是用upupw,那么就要把yii框架的文件解压到upupw安装目录下的htdocs
文件夹里,这样才能访问得到,这样的话我只要在浏览器中访问127.0.0.1/basic/web/index.php
好的开始第三步。
首先你要知道,一个hello world页面是怎么从请求到浏览器渲染出来的。
一般都是通过控制器(controller),然后执行控制器里对应的动作(action),然后动作去返回一个渲染视图。那么我们需要写一个控制器
我们在controllers
目录下,新建一个HelloController.php
这里要注意的是,文件名一样要以Controller
为结尾
<?php // php文件的标识
namespace app\controllers; // 定义命名空间
use yii\web\Controller; // 使用命名空间
// 这是一个叫hello的控制类
class HelloController extends Controller{
// 这是一个动作,必须以action开头,所以该动作就叫index
public function actionIndex(){
$this->layout = false; // 不使用yii框架默认的布局文件
return $this->render('index'); // 渲染view\hello\index.php这个视图文件
}
}
- 还要写在一个视图文件
视图文件都是在view这个文件下的。而我们的控制器叫hello,所以我们要在view下新建一个hello文件夹,在该文件下新建一个index.php
所以就是新建一个view\hello\index.php文件
这个文件很简单,我们就只写
<?php
echo "Hello world!";
- 最后在浏览器中输入
127.0.0.1/basic/web/index.php?r=hello/index
什么意思呢?
就是进入index.php这个入口脚本,然后r=hello/index
这个是说我们用请求hello这个控制器,然后再执行hello控制器下的index动作。而actionIndex会返回一个渲染视图index,而视图文件index我们写的是echo "Hello world!";
所以它就渲染出一句简简单单的Hello world!