Я загружаю последнюю версию Усов (2.7) с Композитором,
"require": {
"mustache/mustache" : "2.7.*",
// etc...
}
но когда я пытаюсь:
use Mustache\Mustache_Autoloader;
abstract class BaseController {
public function __construct() {
Mustache_Autoloader::register();
/...
}
/...
}
error.log сказал:
PHP Fatal error: Class 'Mustache\\Mustache_Autoloader' not found in
Хотя у Mustache_Autoloader нет пространств имен.
Композитор имеет: composer/autoload_namespaces.php
:
return array(
'Mustache' => array($vendorDir . '/mustache/mustache/src'),
//etc
);
И в моем основном файле я не забываю включить require 'vendor/autoload.php';
Но я не знаю, что случилось. Любая идея? Благодарю.
РЕШЕНИЕ:
Только мне нужно добавить «\» в начале слова. лайк new \Mustache_Engine()
,
Теперь это работает. Спасибо за вашу помощь 🙂
Во-первых, почему вы хотите использовать Mustache\Mustache_Autoloader
?
композитор должен позаботиться об автозагрузке.
Дальше я вижу в https://github.com/bobthecow/mustache.php/blob/master/src/Mustache/Autoloader.php
что у этого класса нет пространства имен.
Therefor use Mustache\Mustache_Autoloader;
выходит из строя.
Если вы хотите использовать автозагрузчик, вам лучше использовать:
require '/path/to/mustache/src/Mustache/Autoloader.php';
,
Mustache_Autoloader::register();
Других решений пока нет …