1

我正在尝试使用 load_class 来加载 mthaml,因为我知道出于性能原因这是必要的。

这是 MtHaml 库。 https://github.com/arnaud-lb/MtHaml

它在任何地方都有命名空间,所以让它与 load_class 一起工作就遇到了第一个障碍。然后它通过 Autoloader.php 实例化

namespace MtHaml;

class Autoloader
{
    static public function register()
    {
        spl_autoload_register(array(new self, 'autoload'));
    }

    static public function autoload($class)
    {
        if (strncmp($class, 'MtHaml', 6) !== 0) {
            return;
        }

        if (file_exists($file = __DIR__ . '/../' . strtr($class, '\\', '/').'.php')) {
            require $file;
        }
    }

我正在努力

load_class('Autoloader', 'libraries/MtHaml', '');

但这给了我致命错误:找不到类'Autoloader'

那么如果我尝试

load_class('MtHaml\Autoloader', 'libraries/MtHaml', '');

无法找到指定的类:MtHaml\Autoloader.php

现在我得到这个工作的唯一方法就是这样称呼它

    require_once __DIR__ . '/../libraries/MtHaml/Autoloader.php';
    MtHaml\Autoloader::register();
    $haml = new MtHaml\Environment('php');
    $rendered = $haml->compileFile($haml_file, $haml_cache_path);

问题是这段代码在我在代码点火器中调用我的 $this->load->view 时运行,所以我知道 load_class 是需要优化性能的,因为在一个控制器中我可以调用 $this->load->view 几个次。

我该如何使用 load_class 呢?

4

1 回答 1

1

我正在尝试使用 load_class 来加载 mthaml,因为我知道出于性能原因这是必要的。

据我了解 mt-haml 这根本没有必要。load_class来自codeigniter,而不是只需安装mt-haml包并包含它的自动加载器,你应该已经很好了。

于 2013-04-05T12:26:51.043 回答