【问题标题】:How does codeigniter threats libraries loaded more than once?codeigniter 威胁库如何多次加载?
【发布时间】:2014-01-07 20:41:07
【问题描述】:

有人能解释一下 Codeigniters 如何处理以前加载的库的负载吗?

  1. 库是否再次加载?
  2. 它只是跳转到下一个函数调用吗?

这可能是偶然发生的。最近,在做一个项目时,我为 post_controller_constructor 创建了一个钩子,并在其中开始加载一个类以增强我网站的功能。

挂上钩子后,我忘了从我的控制器中删除旧的加载库调用。

奇怪的是,没有发生任何错误。 我期待一个异常告诉我库已经加载或类似的东西。

【问题讨论】:

  • CI 会跟踪已加载和未加载的内容,因此不会加载两次相同的资源(库、模型、助手,所有这些都以相同的方式工作)

标签: php codeigniter codeigniter-2


【解决方案1】:

CI 检查是否未设置库。

正如你在这段代码中看到的:

public function library($library = '', $params = NULL, $object_name = NULL)
{
    if (is_array($library))
    {
        foreach ($library as $class)
        {
            $this->library($class, $params);
        }

        return;
    }

    if ($library == '' OR isset($this->_base_classes[$library]))
    {
        return FALSE;
    }

    if ( ! is_null($params) && ! is_array($params))
    {
        $params = NULL;
    }

    $this->_ci_load_class($library, $params, $object_name);
}

system\code\Loader.php

【讨论】:

    猜你喜欢
    • 2011-08-28
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    相关资源
    最近更新 更多