Mustache_Autoloader отсутствует с Composer

Я загружаю последнюю версию Усов (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(),

Теперь это работает. Спасибо за вашу помощь 🙂

0

Решение

Во-первых, почему вы хотите использовать 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();
,

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]