CI框架整合widget(页面格局)的方法


Posted in PHP onMay 17, 2016

本文实例讲述了CI框架整合widget(页面格局)的方法。分享给大家供大家参考,具体如下:

在WEB开发过程中,我们免不了要输出视图文件,而通常视图文件又一般都少不了头部、左侧栏以及底部这些公共元素。

如何让整个项目开发在涉及视图套用时引入敏捷的思维,提高效率呢?就不得不提一下widget。承然你也大可以使用HMVC模型。

这里仅介绍下widget如何结合入CI框架中:

1、在类文件MY_Controller.php中添加调用方法:

/*
* 如果$name存在则调用widget类及widget方法
*@param string $name
*/
protected function widget ($name = '')
{
    if (isset($name) && $name != '')
    {
      require_once BASE_WIDGET.$name.'.php';
    }
}

2、定义widget类文件:

<?php
/*------------
widget.php 组件包含自己的控制器,视图,模型(可以共用普通model)
*用来实现各页面都有的公共部分
@author crystal 20120106
--------------*/
class Widget extends MY_Controller
{
  private function __construct()
  {
    parent::MY_Controller();
  }
  /*** 获取当前类名*/
  private static function _getClass()
  {
    return __CLASS__;
  }
  public static function left()
  {
    $class = self::_getClass();
    $data['userinfo'] = MY_Controller::_getUserCookieInfo();
    $this->load->view('com/left.php',$data);
  }
}
?>

3、在视图文件中调用(在相应的控制器中应该先调用父类控制中的widget方法):

<!--left sider -->
<div>
<?php Widget::left();?>
</div>
...
<!--/left sider -->

希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。

PHP 相关文章推荐
简单介绍下 PHP5 中引入的 MYSQLI的用途
Mar 19 PHP
php中apc缓存使用示例
Dec 25 PHP
smarty模板中拼接字符串的方法
Feb 14 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
Jun 19 PHP
本地计算机无法启动Apache故障处理
Aug 08 PHP
纯PHP代码实现支付宝批量付款
Dec 24 PHP
PHP 读取大文件并显示的简单实例(推荐)
Aug 12 PHP
PHP对象克隆clone用法示例
Sep 28 PHP
详解PHP用substr函数截取字符串中的某部分
Dec 03 PHP
Yii全局函数用法示例
Jan 22 PHP
轻松实现php文件上传功能
Feb 17 PHP
PHP 文件写入和读取操作实例详解【必看篇】
Nov 04 PHP
深入剖析浏览器退出之后php还会继续执行么
May 17 #PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
May 17 #PHP
CI框架集成Smarty的方法分析
May 17 #PHP
CI框架中数据库操作函数$this-&gt;db-&gt;where()相关用法总结
May 17 #PHP
CI框架中redis缓存相关操作文件示例代码
May 17 #PHP
Yii2如何批量添加数据
May 17 #PHP
PHP并发多进程处理利器Gearman使用介绍
May 16 #PHP
You might like
php下的权限算法的实现
2007/04/28 PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
php的4种常见运行方式
2015/03/20 PHP
thinkphp3.x中cookie方法的用法分析
2016/05/19 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
2019/10/10 PHP
TextArea 控件的最大长度问题(js json)
2009/12/16 Javascript
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
2011/03/17 Javascript
javaScript面向对象继承方法经典实现
2013/08/20 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
2015/08/06 Javascript
jQuery实现带有洗牌效果的动画分页实例
2015/08/31 Javascript
实现高性能JavaScript之执行与加载
2016/01/30 Javascript
zTree插件下拉树使用入门教程
2016/04/11 Javascript
AngularJS在IE8的不支持的解决方法
2016/05/13 Javascript
vue实现ajax滚动下拉加载,同时具有loading效果(推荐)
2017/01/11 Javascript
纯js仿淘宝京东商品放大镜功能
2017/03/02 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
Babel 入门教程学习笔记
2018/06/13 Javascript
js实现简单选项卡功能
2020/03/23 Javascript
JS闭包经典实例详解
2018/12/20 Javascript
详解Vue中组件的缓存
2019/04/20 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
[00:11]战神迅矛
2019/03/06 DOTA
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
使用Django连接Mysql数据库步骤
2019/01/15 Python
Python中numpy模块常见用法demo实例小结
2019/03/16 Python
Python 实现数据结构-堆栈和队列的操作方法
2019/07/17 Python
Python控制台实现交互式环境执行
2020/06/09 Python
别名指示符是什么
2012/10/08 面试题
新三好学生主要事迹
2014/01/23 职场文书
互联网创业计划书的书写步骤
2014/01/28 职场文书
毕业生求职信范文
2014/06/29 职场文书
2015年班级元旦晚会活动总结
2014/11/28 职场文书
先进工作者事迹材料
2014/12/23 职场文书
MySQL分库分表与分区的入门指南
2021/04/22 MySQL
Python包管理工具pip的15 个使用小技巧
2021/05/17 Python