Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将公共变量添加到所有CI#U控制器';s和任何扩展它们的东西?_Php_Codeigniter - Fatal编程技术网

Php 将公共变量添加到所有CI#U控制器';s和任何扩展它们的东西?

Php 将公共变量添加到所有CI#U控制器';s和任何扩展它们的东西?,php,codeigniter,Php,Codeigniter,嗨,我想在所有CI_控制器实例中添加一个公共变量($this->data[]),这样我就可以存储一些输出页面的基本规则(css/js等),然后让每个控制器附加到这个数组中以添加自己的需求(更多css/js)。我有一个具有自定义视图函数的核心库,这些函数接受这些数组并将它们注入页面模板的head标记中 我想到的选择 编辑CI_控制器并将其添加到那里。。。我猜这不是个好主意 创建一个扩展CI_控制器的shell控制器,将var添加到该控制器中,然后让其他每个控制器扩展shell控制器 还有其他聪明的

嗨,我想在所有CI_控制器实例中添加一个公共变量($this->data[]),这样我就可以存储一些输出页面的基本规则(css/js等),然后让每个控制器附加到这个数组中以添加自己的需求(更多css/js)。我有一个具有自定义视图函数的核心库,这些函数接受这些数组并将它们注入页面模板的head标记中

我想到的选择

  • 编辑CI_控制器并将其添加到那里。。。我猜这不是个好主意

  • 创建一个扩展CI_控制器的shell控制器,将var添加到该控制器中,然后让其他每个控制器扩展shell控制器

  • 还有其他聪明的方法吗

  • 我只使用CI大约一个月,我试着阅读文档,但我找不到任何内置的方法来做类似的事情?以前有人遇到过这种情况吗?如果有,你是如何解决的

    谢谢


    [edit]使用PHP5.3.x[/edit]

    我认为使用traits可以很容易地实现您的目标。请点击此处:

    更具体地说->示例#11定义属性


    唯一的限制是它的PHP5.4+

    我认为使用traits可以很容易地实现您想要的。请点击此处:

    更具体地说->示例#11定义属性

    唯一的限制是它是PHP5.4+

    您可以扩展
    CI\u控制器
    ,以获得所需的功能

    application/core/MY_Controller.php:

    <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    
    class MY_Controller extends CI_Controller {
    
    
        public function __construct()
        {
            parent::__construct();
        }
    
        public function my_function()
        {
            return "Cool return from my_function";
    
        }
    }
    

    您可以扩展
    CI\u控制器
    ,以获得所需的功能

    application/core/MY_Controller.php:

    <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    
    class MY_Controller extends CI_Controller {
    
    
        public function __construct()
        {
            parent::__construct();
        }
    
        public function my_function()
        {
            return "Cool return from my_function";
    
        }
    }
    

    您可以创建自己的基本控制器文件,从in\application\core\MY_controller.php继承基本页面加载方法,如下所示:

    <?php defined('BASEPATH') OR exit('No direct script access allowed');
    
    class MY_Controller extends CI_Controller {
    
        public function __construct()
        {
            parent::__construct();
        }
    
        protected function loadPage($path, $data = array())
        {
            $this->load->view('common/head'); // Assuming you will use a folder for page parts
            $this->load->view($path, $data);
            $this->load->view('common/foot');
        }
    }
    

    您可以创建自己的基本控制器文件,从in\application\core\MY_controller.php继承基本页面加载方法,如下所示:

    <?php defined('BASEPATH') OR exit('No direct script access allowed');
    
    class MY_Controller extends CI_Controller {
    
        public function __construct()
        {
            parent::__construct();
        }
    
        protected function loadPage($path, $data = array())
        {
            $this->load->view('common/head'); // Assuming you will use a folder for page parts
            $this->load->view($path, $data);
            $this->load->view('common/foot');
        }
    }
    

    答案非常简洁,但不幸的是我被锁定在5.3.x。我会更新我的问题。无论如何谢谢你!非常简洁的回答,但不幸的是我被锁定在5.3.x。我会更新我的问题。无论如何谢谢你!好东西!欣赏伟大的东西!感激