我正在尝试使用 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 呢?