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 相关文章推荐
不用数据库的多用户文件自由上传投票系统(2)
Oct 09 PHP
php代码运行时间查看类代码分享
Aug 06 PHP
PHP数据库调用类调用实例(详细注释)
Jul 12 PHP
PHP中函数rand和mt_rand的区别比较
Dec 26 PHP
深入PHP curl参数的详解
Jun 17 PHP
PHP中数组定义的几种方法
Sep 01 PHP
php获取当前时间的毫秒数的方法
Jan 26 PHP
php制作中间带自己定义图片二维码的方法
Jan 27 PHP
thinkPHP中分页用法实例分析
Dec 26 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
php判断电子邮件是否正确方法
Dec 04 PHP
PHP中多字节字符串操作实例详解
Aug 23 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
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
有关javascript的性能优化 (repaint和reflow)
2013/04/12 Javascript
js+CSS实现模拟华丽的select控件下拉菜单效果
2015/09/01 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
详解jQuery中的isPlainObject()使用方法
2018/02/27 jQuery
vue.js前后端数据交互之提交数据操作详解
2018/04/24 Javascript
详解Angular6 热加载配置方案
2018/08/18 Javascript
实例讲解JavaScript截取字符串
2018/11/30 Javascript
探索JavaScript中私有成员的相关知识
2019/06/13 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
[03:54]DOTA2英雄梦之声_第06期_昆卡
2014/06/23 DOTA
解决python3捕获cx_oracle抛出的异常错误问题
2018/10/18 Python
django+mysql的使用示例
2018/11/23 Python
python pands实现execl转csv 并修改csv指定列的方法
2018/12/12 Python
浅谈python3发送post请求参数为空的情况
2018/12/28 Python
如何利用Anaconda配置简单的Python环境
2019/06/24 Python
python3实现猜数字游戏
2020/12/07 Python
详解python中的time和datetime的常用方法
2019/07/08 Python
python hashlib加密实现代码
2019/10/17 Python
Python倒排索引之查找包含某主题或单词的文件
2019/11/13 Python
python 函数中的参数类型
2020/02/11 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
2020/04/07 Python
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
美国独家设计师眼镜在线光学商店:Glasses Gallery
2017/12/28 全球购物
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
ORACLE十问
2015/04/20 面试题
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
小班秋游活动方案
2014/02/22 职场文书
2014年教师党员公开承诺书
2014/05/28 职场文书
文明城市创建标语
2014/06/16 职场文书
刑事辩护授权委托书格式
2014/10/13 职场文书
2014年质量工作总结
2014/11/22 职场文书
2015年工程部工作总结
2015/04/30 职场文书
Spring Cloud OAuth2实现自定义token返回格式
2022/06/25 Java/Android