覆盖get_config(Codeigniter)

时间:2015-02-16 04:18:04

标签: php codeigniter codeigniter-2 codeigniter-url codeigniter-routing

我将我的Codeigniter从2.2.1升级到3.0.0。很多事情都被特别改变了。

CI 2.2.1和之前在system / core / Common.php中有如下函数:214行左右。

   function &get_config($replace = array())
     {
        static $_config;

        if (isset($_config))
    {
        return $_config[0];
    }

这是扩展system / core / Input.php

的功能

应用/核心/ MY_Input.php

    Class MY_Input extends CI_Input
    {

     function _clean_input_keys($str, $fatal = true)
     {

    $config = &get_config('config');

    if ( ! preg_match("/^[".$config['permitted_uri_chars']."]+$/i", 
       rawurlencode($str)))
    {
        exit('Disallowed Key Characters.');
    }

    // Clean UTF-8 if supported
    if (UTF8_ENABLED === TRUE)
    {
        $str = $this->uni->clean_string($str);
    }


    return $str;
    }

    }

直到这里一切正常。升级到CI#system / core / Common.php后,将功能更改为:238行左右

    function &get_config(Array $replace = array())
      {
      static $config;

      if (empty($config))
      {

我如何在MY_Input.php中匹配此函数的参数

  $config = &get_config('config');

2 个答案:

答案 0 :(得分:1)

v3代码中$ replace之前的'Array'一词强制执行参数的类型,这就是你得到错误的原因。

'config'不是该参数的有效值。删除它,你应该很高兴去。

    $config = &get_config('config');

   $config = &get_config('');

答案 1 :(得分:0)

试试这个

$config=array('db'=>'some value','someother'=>'value');
 $config = &get_config($config);  **//  LINE 6**