一、安装Yii2

可以直接官网或github下载:

https://github.com/yiisoft/yii2

下载完后进入项目的web/目录,入口文件为该目录下的index.php,这里直接启用PHP的内置服务器(端口自定义)真,在当前目录下打开终端输入:

php -S localhost:8090

正常情况下就可以在浏览器中访问了。

默认的情况下,我们看到的Yii2首页是/controllers/SiteController.php下的Index方法

public function actionIndex()
{
return $this->render('index');
}

 上面的Index方法渲染了index这个模版,而这个模板位于/views/site/index.php,至于控制器和视图之间的命名规则,参考这里:

views/ControllerID/ViewName.php
  • ControllerID : 表示控制器的ID,也就是控制器去掉Controller的前缀,比如SiteController就对应site
  • ViewName : 是对应方法的名字,但是不包括action字眼,比如actionIndex对应的是index.php

而在使用render方法来渲染视图的时候,Yii2默认地也会渲染载入/views/layouts/main.php这个文件,而这个文件做的事就是载入一些html头部的共用文件,比如jscss,导航栏和底部繁荣导航栏等。这里其实我们最值得关心的其实就是下面这段代码的<?= $content ?>

<?= Breadcrumbs::widget([
'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [],
]) ?>
<?= $content ?>
</div>

  这个<?= $content ?>可以说就是我们之后定义视图的内容,我们后续创建的视图文件会被读成字符串的形式赋给$content,然后进行渲染显示。

二、Hello Word

有了上面的安装和基本知识之后,我们就可以自己动手来创建一个页面了。不过在创建页面之前,我们先来做一点简单的配置:开启Yii2的enablePrettyUrl模式,因为这样对于后续的开发会便捷很多,而且开启之后,我们的url也会变得很简洁又好,不想现在这样:

http://localhost:8090/index.php?r=site%2Fabout

 这是我点击首页导航栏的About出现的url,一看到这个,我是拒绝的,所以来到/config/web.php这个配置文件中,找到'components' => []这个数组,加入下面的两行代码:

'urlManager' => [
'showScriptName' => false,
'enablePrettyUrl' => true
],

这样开启enablePrettyUrl模式之后,我们就可以通过http://localhost:8999/site/about来访问我们的About页面了,这里的规律是这样的:

http://localhost:8090/ControllerID/ActionName

 比如,我们在/controllers/SiteController.php创建一个Say操作方法:

public function actionSay($target = 'World')
{
return $this->render('say', ['target' => $target]);
}

 我们要访问这个方法的正确路径就是http://localhost:8090/site/say 。

在Yii中使用action关键字前缀来区分用于url操作方法和其他方法,这里的actionSay接收一个参数$target,如果用户在访问的时候传入target参数,target就为用户传入的值,而如果用户没有传入,我们将其默认值设为World。有了控制器的方法,从$this->render('say', ['target' => $target])这行代码来看,我们需要需要创建一个say.php模板文件,这个文件是在哪里的呢?

根据前面说的视图模板规则,它应该位于:/views/site/say.php。在里面简单写上下面这一小段代码:

<?php
use yii\helpers\Html;
?>
<h1>Hello <?= Html::encode($target) ?></h1>
<p>Welcome to your Yii2 demonstration application.</p>

 

出于安全的因素考虑,我们在say.php这个模版文件中使用了yii\helpers\Html类来对用户传入的数据进行过滤,所以我们才有了这样的输出:

 
<?= Html::encode($target) ?>

最新文章

  1. VMware Workstation安装MAC OS X系统
  2. poi批量导入excel文件
  3. S2SH框架的集成
  4. 7、8上的cell上的一个按钮,当点击按钮时,要拿到这个cell,可以用代理,也可以用superview
  5. 编程基础-msdn编程指南笔记
  6. 调用CachedRowSetImpl类时,为什么会出现这样的错误
  7. 修改Mac系统的文件权限
  8. 【整理】QT .pro文件中的变量说明
  9. mysql字符集小结
  10. poj3630 Phone List
  11. 执行npm run build之后显示空白页面
  12. Updates were rejected because the tip of your current branch is behind 问题出现解决方案
  13. 性能测试—JMeter 常用元件(四)
  14. ExtJs 编译
  15. actor 内最好不要阻塞
  16. [Linux]实际操作中命令 su 与 sudo 的区别
  17. Apache版本的Hadoop HA集群启动详细步骤【包括Zookeeper、HDFS HA、YARN HA、HBase HA】(图文详解)
  18. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(八)安装zookeeper-3.4.12
  19. 【Python3】 django2.0 url 跳转设置
  20. 【CSS系列】height:100%设置div的高度

热门文章

  1. 15.更新和删除数据--SQL
  2. idea svn操作
  3. Exploring refit, an automatic type-safe REST library for .NET Standard
  4. 解决ueditor jquery javascript 取值问题
  5. If you can&#39;t take it, don&#39;t dish it out.
  6. [20190611]记录一下github的基本用法
  7. 对Yii 2.0模型rules的理解(load()无法正确装载数据)
  8. 中国区 Azure 服务和定价模式概述
  9. POJ 1845 Sumdiv (数学,乘法逆元)
  10. 新萝卜家园GHOST WIN7系统32,64位官方版下载