Zend Framework 2 утверждает, что имеет конструкцию «по использованию», которая позволяет вам легко использовать любой из своих модулей, не переходя в полный стек. Мне нужен хороший уровень доступа к базе данных, а из документов и рекомендаций онлайн мне нравится внешний вид Zend \ Db. Я поместил папку Zend/Db в каталог/lib, но мне не удается заставить PHP распознавать класс Zend \ Db \ Adapter \ Adapter. Я постоянно получаю фатальную ошибку, когда я пытаюсь использовать его:Как загрузить только модуль базы данных Zend Framework 2
Fatal error: Class 'Zend\Db\Adapter\Adapter' not found in /home/username/public_html/test.php on line 6
Я попытался установить ZF2_PATH в моей .htaccess: SetEnv ZF2_PATH /home/username/public_html/lib/Zend
Я попытался установить включаемые путь в моем коде: set_include_path($_SERVER['DOCUMENT_ROOT'] . '/lib' . PATH_SEPARATOR . get_include_path());
Я попытался явно загрузку и инстанцировании Зенд \ Loader:
require_once 'lib/Zend/Loader/StandardAutoloader.php';
$zendLoader = new Zend\Loader\StandardAutoloader();
$zendLoader->register();
Ничто из этого не имело никакого эффекта. Я пробовал явно требовать Zend/Db/Adapter/Adapter.php, и это исправляло ошибку, которую я вижу, но тогда я просто получаю ту же ошибку для одной из своих зависимостей, так что это не практическое решение.
Что я здесь делаю неправильно? Является ли ZF2 просто не предназначенным для такого модульного использования, или я что-то упускаю?
EDIT: Я получил эту работу, написав свою собственную функцию автозагрузки:
function autoloader($class) {
$path = explode('\\', $class);
foreach ($path as $p) {
$cp .= DIRECTORY_SEPARATOR . $p;
}
include __DIR__ . '/lib/' . $cp . '.php';
}
spl_autoload_register(autoloader);
Этот вида имеет смысл - очевидно, если я использую модуль дб без остальной части рамки, я могу Не ожидайте, что фреймворк сделает автозагрузку для меня - кроме того, что я до сих пор не понимаю, почему загрузка вручную Zend \ Loader не решила проблему. Не обрабатывает автозагрузку точки Zend \ Loader? Во всяком случае, на данный момент у меня есть работоспособное решение, но если есть лучшее решение, я бы хотел его услышать.
Спасибо за совет. – cfc