在mthaml上运行load_class

时间:2013-04-05 12:17:39

标签: php codeigniter haml mthaml

我正在尝试使用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', '');

但是这给了我致命错误:未找到“自动加载器”类

然后,如果我尝试

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->视图时运行所以我理解需要load_class来优化性能,因为在一个控制器中我可以调用$ this-&gt ; load->多次查看。

如何使用load_class?

1 个答案:

答案 0 :(得分:1)

  

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

据我所知,mt-haml根本就没有必要。 load_class来自codeigniter,而只是安装mt-haml包并包含它的自动加载器,你应该没问题。