zoukankan      html  css  js  c++  java
  • Yii 1.1.17 一、安装、目录结构、视图、控制器、扩展自定义函数

    这几天了解了一下Yii框架,以简单的博客项目实战入门。大致的实现流程做个记录。

    一、Yii 安装与环境检测

    从 www.yiiframework.com 获取一份Yii的拷贝,解压到 /wwwroot/yii 目录

    打开浏览器访问 http://127.0.0.1/yii/requirements/index.php,检测本地环境支持。

    二、建立项目与目录介绍

    在命令行环境,cd命令进入到 Yii 框架核心目录 /wwwroot/yii/framework ,键入命令行: php yiic webapp ../blog (注意:确保php.exe的路径配置到环境变量)

    回车后,得到一条确认提示,yes 确定即可。这时在 yii 目录下有了blog 目录,结构如下:

    assets: 公共资源目录,存放JS,CSS,图片资源等等
    protected:书写MVC代码的主要目录 
    themes:主题目录
    uploads:这个是我自己添加的图片上传目录
    .htaccess: 用于Apache重写
    index-text.php:功能测试的入口文件,没用 
    index.php:单入口文件
    

    三、设置默认控制器与载入模板

     1、创建控制器

    class IndexController extends Controller{
      public function actionIndex() {
        //...
      }
    }

    访问:index.php?r=index/index

    r是 route 路由的缩写,/ 分隔 index 控制器和 index 方法

    2、配置默认控制器

    默认访问:控制器SiteController下面的actionIndex方法

    Config/main.php是主配置文件,在其中加入:

    'defaultController' => 'Index',

    3、载入视图

    在控制器方法中,有两个方法可以加载视图:

    $this->render();         // 会加载布局文件
    $this->renderPartial();  // 不会加载布局文件(也不能加载框架自带的jQuery等)
    

     方法中传递视图文件名(YII 1.1.17 中的控制器方法名以 "action" 为前缀,比如 "actionIndex" )

    在视图目录:

    根据控制器名字建立文件夹,里面的文件名是 render 或者 renderPartial 方法传递的名字

    例如:

    控制器是 Index ,则需要建立 Index 文件夹,在 Index 文件夹下建立 index.php 文件,然后渲染视图

    $this->render('index');
    // 或者
    $this->renderPartial('index');

    四、布局介绍

    1、什么是局部

    在 views/layouts 下面的文件是布局文件(有每个模板的公共区域),用 render() 方法渲染视图时会自动加载的文件

    修改步骤:

    • views/layouts下面的,新建布局文件
    • 修改默认布局文件:

    位置:  components/Controller.php ,基类控制器

    修改属性, public $layout = '//layouts/column1';

    这表示使用 protected/views/layouts/column1.php 文件作为默认的布局文件

    2、布局内容

    举个栗子就明白了,比如,一张 html 网页:

    上面是公用头部 html:一般是顶栏,logo, 导航栏等等

    中间左侧的主内容依照不同的网页有不同的内容,使用 <?php echo $content; ?> 

    中间右侧是侧栏 html

    尾部是公用尾部 html:一般是版权信息等等

    五、载入外部文件

    CSS与Js等资源文件放入assets里面,按照前后台目录分开

    Yii::app()->request->baseUrl;可以获取请求的基础路径

    例如: <?php echo Yii:app()->request->baseUrl; ?>/assets/index/css/index.css  将得到一个纸箱前台首页的 css 文件 url

    Yii::app() 返回的是在index.php入口里创建的CWebApplication实例。在一次请求处理过程中,这是唯一的实例

    Yii::app() 主要负责一些全局性的功能模块。

    六、分配变量并在视图中调用

    1、控制器分配变量

    $data = array(
      'articleList' => $articleList,
      'page' => $page
    );
    $this->render('index', $data);

    2、视图中调用变量

    <?php foreach($article as $v): ?>
      <li><?php echo $v->title; ?></li>
    <?php endforeach; ?>
    

    七、扩展自定义函数

    在protected目录下建立function.php文件

    在单入口中引入,

    require_once('./protected/function.php');

  • 相关阅读:
    Docker集群实验环境布署--swarm【4 管理组件--manager】
    Docker集群实验环境布署--swarm【3 注册服务监控与自动发现组件--consul】
    Docker集群实验环境布署--swarm【2 搭建本地镜像仓库】
    Docker集群实验环境布署--swarm【1 架构说明】
    zabbix 布署实践【7 H3C网络设备监控模版制作思路】
    zabbix 布署实践【6 使用微信公众号-消息模版推送告警】
    zabbix 布署实践【5 使用邮箱SMTP SSL推送告警邮件】
    zabbix 布署实践【4 服务器自动探索发现,并且自动关联模版】
    openstack私有云布署实践【19 通过python客户端 创建实例VM指定IP地址】
    openstack私有云布署实践【18 修改实例DHCP服务的DNS IP】
  • 原文地址:https://www.cnblogs.com/mingc/p/6746706.html
Copyright © 2011-2022 走看看