CodeIgniter自定义控制器my_controller使用分析
本文介绍了供你参考你的自定义控制器my_controller.share CodeIgniter使用,如下:所有的CodeIgniter控制器必须继承ci_controller类,但ci_controller类在系统目录和不易修改。方便一些公共的处理,我们通常在创建my_controller核心继承ci_controller,让项目中的所有控制器继承my_controller。
那么,什么是my_controller通常做什么
所有的控制器继承my_controller。my_controller经常将一些公共的帮助功能,公共类库,实现了一些常用的方法。
常用的方法是什么公共道路
如果这些方法是公开的,那么通过查看这些方法将实现一个问题,它是否可以通过浏览器访问!这不应该让用户访问方法让用户访问它。
注:公共的方法是用ci_controller将无法访问,和框架限制的方法ci_controller访问通过浏览器。
随着项目的进展,会有越来越多的公共方法my_controller.if这是此时增加了后台管理功能,所有控制器仍然继承my_controller,和许多的方法可能不适用。如果一些背景中所需的公共方法也写在这里,会有是混乱。
如何用模块区分不同的控制器
有两种方法来处理它。第一个是区分不同的公共控制器文件。控制器决定哪个公共控制器继承。这样,它可以由对象的属性来维护,不同的模块赋予属性不同的对象:
< PHP
如果(!定义('basepath '))
出口(不直接访问允许脚本);
类my_controller延伸ci_controller
{
公共功能__construct(合型= null)
{
家长::__construct();
开关($ type){
case'api:
美元->荷载->图书馆('api_helper,null,'helper);
打破;
case'admin:
美元->荷载->图书馆('admin_helper,null,'helper);
打破;
违约:
美元->荷载->图书馆('app_helper,null,'helper);
打破
}
}
}
文件结束my_controller.php / * * /
位置: /应用/核心/ my_controller.php / * * /
控制器调用my_controller构造函数和发送的值类型。它加载不同的类库根据不同类型的值,然后定义了一个统一的类别名,便于处理。具体的库可以处理模块或负载的公共资源的常用方法,相当于模块的一个普通班,当然,处理的方法也可以直接控制通过目录名称中的路由或控制器的名称等。
这避免了加载不同的文件,并调用方法只有通过美元->帮助对象。仔细看,可以发现不同模块的公开课都放在图书馆,可用于get_intance或图书馆得到控制器对象。然而,我们每次使用它们时,都需要获取实例,这是比较麻烦的,如果它是一个模型,它不是一种好的感觉,一些常见的方法与业务逻辑有关,把它放在库中感觉不好。
业务逻辑似乎不是实现控制器的私有方法的好地方。模型
首先,总结以上的处理方法:
1。可以按需加载不同模块,实现自定义通用方法。每个模块不相互影响,如果模块之间的常用方法更多,也可以继承一个公共类。
2。常用的方法放在库中,调用CI实例并不方便。
3、如果你不喜欢的方式调用美元-> herlper,可以使控制器继承不同的控制器。这是真的。您可能只需要手动导入文件。
更多的读者感兴趣的CodeIgniter相关内容可以看看网站:的CodeIgniter入门教程和CI(CI)框架。
希望本文有助于基于CodeIgniter框架PHP程序设计人。