Приведенный ниже код — это я пытаюсь загрузить Mustache в библиотеку Composer (имеется в виду, что сама библиотека также загружается композитором при полном проекте), которую я делаю для проекта.
<?php
namespace TradeDefender\SiteEngine;
require '../../vendor/autoload.php';
class MessageEngine{
function test(){
$m = new Mustache_Engine;
return "hello";
}
}
?>
Структура каталогов для самой библиотеки выглядит следующим образом:
.
├── lib
│ └── TradeDefender
│ ├── Api
│ ├── Conn
│ └── SiteEngine
└── vendor
├── composer
└── mustache
Я подозреваю, что это из-за того, что я установил пространство имен в классе, но я не уверен, как это исправить. Сама ошибка в том, что он не может найти Class Mustache_Engine в папке SiteEngine. Сам автозагрузчик загружается просто отлично.
Есть идеи? Благодарю.
Проблема заключалась в том, что я загружал Mustache_Engine из локально определенного пространства имен, а не из глобального пространства имен. Для загрузки из глобального пространства имен мне пришлось поместить \ infront из Mustache_Engine, например так:
$m = new \Mustache_Engine;
Других решений пока нет …