CodeIgniter - 多个控制器中可用的功能
Posted
技术标签:
【中文标题】CodeIgniter - 多个控制器中可用的功能【英文标题】:CodeIgniter - functions available in multiple controllers 【发布时间】:2011-07-27 08:43:48 【问题描述】:我对 CodeIgniter 比较陌生,到目前为止,我的项目完全是使用控制器和视图创建的。然而,随着它变得越来越复杂,我发现我已经将某些功能复制粘贴到多个控制器中——这并不理想,因为编辑一个需要记住编辑所有其他的。
有很多我一无所知的 CI 功能 - 模型、助手、扩展“控制器”等等。我应该在哪里寻找以完成上述任务?我想我也可以直接import()
一段代码,虽然我觉得这不是“CodeIgniter 方式”。
【问题讨论】:
【参考方案1】:将所有“实用程序”功能放入“帮助管理器”并访问它。
http://codeigniter.com/user_guide/general/helpers.html
【讨论】:
感谢您的链接。这篇文章没有说明如何创建我自己的助手。是否像在 不 以“MY_”开头的 helpers 文件夹中创建文件一样简单? 如果加载两个具有相同函数名的助手会发生什么?调用时会执行哪个函数? 您应该扩展具有相同函数名称的“Helper”(即 MY_array_helper.php)。如果你不这样做,我不确定,但很可能它会调用 PHP 中最后定义的方法。【参考方案2】:或者创建一个基本控制器,并从中扩展其他控制器。
我确信 Phil Sturgeon 对此有指导:http://philsturgeon.co.uk/blog/2010/02/CodeIgniter-Base-Classes-Keeping-it-DRY
【讨论】:
菲尔对一切都有指导【参考方案3】:base_controller.php
<?php
class Base_Controller extends CI_Controller
function __construct()
parent::__construct();
function base_function()
?>
other_controller.php
<?php
require_once('base_controller.php');
class Other_Controller extends Base_Controller
function __construct()
parent::__construct();
function index()
$this->base_function();
?>
【讨论】:
以上是关于CodeIgniter - 多个控制器中可用的功能的主要内容,如果未能解决你的问题,请参考以下文章