当前位置: 首页 > news >正文

与别人相比自己网站建设优势苏州知名网站建设

与别人相比自己网站建设优势,苏州知名网站建设,163企业邮箱官网,健康网站建设与管理CodeIgniter HMVC扩展说明 原文地址#xff1a;Modular Extensions - HMVC 模块扩展——HMVC 模块扩展让CodeIgniter框架模块化。模块是一组独立的组件#xff08;通常有模型、控制器和视图#xff09;#xff0c;它们被分类在应用模块的子文件夹中#xff0c;并且能够直接… CodeIgniter HMVC扩展说明 原文地址Modular Extensions - HMVC 模块扩展——HMVC 模块扩展让CodeIgniter框架模块化。模块是一组独立的组件通常有模型、控制器和视图它们被分类在应用模块的子文件夹中并且能够直接拖到其他的CodeIgniter应用中。 HMVC的意思是分层模型视图控制器。 模块控制器能够作为普通的控制器或者HMVC控制器使用它们也能够被当做小部件帮助你开发一部分视图。 模块扩展安装 安装纯净的CI框架设置$config[base_url]变量访问URL /index.php/welcome看到欢迎界面将模块扩展的third_party文件拖入application/third_party目录将模块扩展的core文件放入application/core目录,MY_Controller.php文件可以不放进去除非你想自己写一个你自己的控制器继承访问URL /index.php/welcome看到欢迎界面创造模块目录结构application/modules/welcome/controllers将控制器文件application/controllers/welcome.php移动至application/modules/welcome/controllers/welcome.php访问URL /index.php/welcome看到欢迎界面创建目录application/modules/welcome/views11. 将视图文件application/views/welcome_message.php移动至application/modules/welcome/views/welcome_message.php12. 访问URL /index.php/welcome看到欢迎界面 你现在应该拥有了一个正在运行的模块扩展了。 译者注 为了便于大家理解HMVC我这里展示使用HMVC前和使用HMVC后的目录结构 使用HMVC前 使用HMVC后 安装提示 第1~3步告诉你如何安装一个标准的CI框架如果你已经安装了跳至步骤4第4~5步告诉你普通的CI框架在安装了MX之后仍然正常运行它不应该打断正常的CI框架安装第6~8步说明MX和CI控制器一起正常工作控制器被移入welcome模块视图文件仍在CI的application/views目录MX能够在好几个地方发现模块资源包括应用目录第9~11步说明MX和在welcome模块中的控制器以及视图一起工作在application/controllers以及application/views目录中此时应该没有文件了。FAQ Q: 什么是模块我为什么要使用他们 A: 参见维基百科 http://en.wikipedia.org/wiki/Module)http://en.wikipedia.org/wiki/Modular_programming)http://blog.fedecarg.com/2008/06/28/a-modular-approach-to-web-development)Q: 什么是模块化HMVC为什么我应该使用它 A: 模块化 HMVC Multiple MVC triads 当你需要载入视图和视图中的数据的时候这将是非常有用的。考虑添加一个购物车到一个页面中这个购物车需要它自己的控制器这个控制器要调用一个模型来获取购物车数据。然后控制器需要将数据载入到视图中。因此和在主控制器处理这个页面和购物车不同购物车MVC能够直接在页面中加载。这个主控制器不需要知道购物车MVC并且和购物车MVC是完全隔离的。 在CI框架中我们不能够在一次请求中调用多个控制器。因此为了实现HMVC我们不得不模拟控制器的行为。这用类库可以做到或者使用这个“模块扩展HMVC”。 使用一个类库和一个“模块扩展HMVC”类不同之处在于 不需要在HMVC中获取和使用CI实例HMVC类存储在modules目录中而不是类库目录中Q: 模块扩展HMVC和模块分离是一样的么 A: 是也可以说不是。和模块分离类似模块扩展使得模块变得“可便携的”。例如如果你有一个漂亮的自包含MVC文件集你能够将你的MVC文件加入到另一个项目中仅仅通过复制一个目录就行了。所有文件都在同一个地方而不是散布在model、view 和controller文件夹。 模块化HMVC意味着模块化MVC triads。 模块分离和模块扩展让相关的控制器、模型、类库、视图等等文件能够被打包在模块子目录中并且能够像一个小型应用那样使用。但是模块扩展更进一步它允许这些模块互相通信。你能够不用通过与http交互得到控制器的输出内容。 特点 所有的控制器都包含一个$autoload类变量这个类变量拥有一个运行时优先载入的条目item数组。这个功能能够和 module/config/autoload.php一起使用然而使用$autoload变量仅仅在对应的控制器中起作用。 ?php class Xyz extends MX_Controller {$autoload array(helper array(url, form),libraries array(email),); } Modules::$locations可以在application/config.php文件中设置例如 ?php $config[modules_locations] array(APPPATH.modules/ ../modules/, ); Modules::run()输出将会被缓存因此从任何从控制器返回或者输出的数据将会被捕获并且返回到调用者。特别的$this-load-view()能够在一个普通的控制器中按照你所想的那样使用而不用返回任何值。 控制器能够作为别的控制器的类变量载入使用语句$this-load-module(module/controller);或者在控制器的名称和模块的名称一致的时候使用$this-load-module(module); 任何加载的模块都可以当做一个类库使用例如$this-controller-method()但是加载的模块拥有自己独立与调用它的类的模块和类库。 所有模块控制器都能够通过URL module/controller/method或者模块名和控制器名称一致的时候使用module/method访问到。如果你添加了_remap()方法到你的控制器中你能够阻止不需要的访问然后重定向或者发送一个错误这些随你。 注意 要使用HMVC功能例如Modules::run()控制器必须继承MX_Controller类。 仅仅使用分开的模块而不是HMVC功能控制器可以继承CodeIgniter类。 你必须在控制器中使用PHP5样式的构造函数例如 ?php class Xyz extends MX_Controller {function __construct(){parent::__construct();} } 构造函数并不是必须的除非你想在控制器创建的时候载入或者处理什么东西。 所有的MY_extension类库应该包含需要他们同等的MX类库文件并且继承它们同等的MX_class。 每一个模块可以包含一个config/routes.php文件在文件中定义该模块的路由和默认控制器 ?php $route[module_name] controller_name; 控制器可以从application/controllers子目录中载入。 控制器也可以从module/controllers子目录中载入。 资源能够能够跨控制器载入例如 $this-load-model(module/model); Modules::run()被设计成返回部分视图并且它将会从控制器返回缓存输出一个视图。使用modules::run语法是一个URI类型的片段字符串和无限的变量。 ?php /** module and controller names are different, you must include the method name also, including index **/ modules::run(module/controller/method, $params, $...);/** module and controller names are the same but the method is not index **/ modules::run(module/method, $params, $...);/** module and controller names are the same and the method is index **/ modules::run(module, $params, $...);/** Parameters are optional, You may pass any number of parameters. **/ 在控制器里边调用一个模块控制器你可以使用$this-load-module()或者Modules::load()PHP5的方法链也可以用在任何被MX加载的对象中例如 $this-load-library(‘validation’)-run()。 载入模块的语言文件推荐使用载入方法该方法将会传递一个激活的模块名称到一个语言实例例如$this-load-language(language_file); PHP5的spl_autoload特性允许你自由地扩展你的控制器、模块和来自application/core或者application/libraries基本类的的类库不需要考虑显式包含他们。 类库加载器也被更新从而适应一些CI的特性例如类库别名能够和模块别名一样的方式接受并且从模块配置目录中载入配置文件作为类库的参数例如form_validation.php这项特性也被加了进来。 $config $this-load-config(‘config_file’)返回已加载的数组到变量中。 模块和类库也能够从他们各自的应用目录的子目录中加载。 在用MX使用表单验证时你将需要继承CI_Form_validation类如下所示 ?php /** application/libraries/MY_Form_validation **/ class MY_Form_validation extends CI_Form_validation {public $CI; } 在将目前的控制器作为$CI变量赋值给表单验证类库之前。这将让你的回调函数正常工作。 ?php class Xyz extends MX_Controller {function __construct(){parent::__construct();$this-load-library(form_validation);$this-form_validation-CI $this;} } 部分视图 使用模块作为视图的一部分在一个视图中使用是很容易的 ?php echo Modules::run(module/controller/method, $param, $...); ?
http://www.zqtcl.cn/news/962146/

相关文章:

  • 家居行业网站开发百度竞价推广账户
  • 粉色大气妇科医院网站源码百度网址大全网址
  • wordpress 留言墙插件优化网站搭建
  • 优秀设计师网站芯片设计公司
  • 铜陵网站建设公司wordpress密码访问插件
  • 一个公司做2个产品网站怎么做的wordpress网站怎么百度的到
  • 邓州做网站做网站seo怎么赚钱
  • 微信小程序开发步骤图长沙百度seo
  • 网站代做仿百度图片网页设计
  • 广州建设局网站首页网络营销专业的就业方向
  • wordpress单页seo关键词优化培训
  • 网站301多久短信营销平台
  • 江苏省现代化实训基地建设网站网站备案加速
  • 中国的网站域名云服务器发布网站
  • 免费seo网站自动推广软件做的好微信商城网站
  • 杭州网站建设方案优化腾讯网络游戏大全列表
  • 泰安网站建设收费标准直播视频app
  • 网站路径问题优秀的网站有哪些
  • 建设网站使用的工具大连免费网站制作
  • 专业的网站优化扬州市城乡建设网站
  • 射阳做网站的公司在哪品牌建设是指
  • 沈阳做网站好的网站分析论文
  • 做熟食的网站美食网站网站开发后端书籍
  • 做模板下载网站挣钱吗网站建设专业导航网站
  • 网站目录结构html静态网站作品
  • 南通建设局网站分类门户网站系统
  • 合肥网站建设企业秒玩小游戏入口
  • 个人做网站开发个人网站备案取名
  • 替代wordpress 搜索seo优化排名易下拉程序
  • asp.net 网站 方案小程序开发是前端还是后端