Kohana framework-cascade file system.如何将文件夹添加到此级联链



ussualy KO3 的工作原理:1.从"系统"获取文件2.用每个使用的"模块"替换一些3. 最后 - 替换为"应用程序"

我必须做什么才能在这些链中添加另一个文件夹文件夹?如何扩展此级联?例如,我想像下面这样加载类:

  1. "/系统/"
  2. "/模块/"
  3. "/之前插件/"
  4. "/插件/"
  5. "/申请前/"
  6. "/应用程序/"

我希望"插件"具有与"模块"相同的功能我可以通过以下方式将每个插件初始化为模块:

    Kohana::plugins(array(
         'plugin_1'       => PLUGPATH.'plugin_1',       // Plugin 1
         'plugin_2'       => PLUGPATH.'plugin_2',       // Plugin 2
         // and so on
        ));

我必须做什么才能再创建一个看起来像应用程序文件夹,该文件夹将在应用程序启动之前自动加载?("/before-application/" 和 "/before-plugins/")

我知道必须放入应用程序/类/Kohana/Core.php从SYSPATH复制并做点什么。但是什么?请帮帮我!

你居然弄错了。 Kohana::auto_load()Kohana::find_file('classes', $file)用于您的课程。这里适用的部分是

foreach (Kohana::$_paths as $dir)
{
    if (is_file($dir.$path))
    {
        // A path has been found
        $found = $dir.$path;
        // Stop searching
        break;
    }
}

既然Kohana::$_paths

array(11) (
    0 => string(32) "/var/www/guides/3.3/application/"
    1 => string(33) "/var/www/guides/3.3/modules/.../"
    9 => string(38) "/var/www/guides/3.3/modules/.../"
    10 => string(27) "/var/www/guides/3.3/system/"
)

将首先搜索应用程序。如果在那里找不到任何东西,那么 Kohana 将在模块中查找。并且仅当尚未找到现有类时,才会查看系统目录。

现在,通过编辑Kohana::$_paths您可以轻松控制Kohana用于自动加载的顺序。

最新更新