Платформа зенда с Kohana PHP 3

Я поместил папку библиотеки Zend в папку классов моего приложения и переименовал все файлы и папки к нижнему регистру (использование Муравья Renamer).

Когда я называю Zend_Feed, вместо того, чтобы загрузить/classes/zend/feed.php, kohana загружает Пехлеви из моих серверов share\ZendFramework\library\Zend\ (Сервер зенда), таким образом, я получаю a Cannot redeclare class Zend_Uri_Http ошибка.

Версия ZF; 1.10 Версия Kohana: новые файлы, доступные через GitHub

Править: https://github.com/kolanos/kohana-zend

5
задан Kemo 18 April 2011 в 19:34
поделиться

3 ответа

Автозагрузчик Kohana ожидает низкопробные имена файлов. Вы можете зарегистрировать как Zend, так и Kohana автозагрузчики, и это должно работать нормально.

В бутстрапе у вас есть:

/**
 * Enable the Kohana auto-loader.
 *
 * @see  http://docs.kohanaphp.com/features/autoloading
 * @see  http://php.net/spl_autoload_register
 */
spl_autoload_register(array('Kohana', 'auto_load'));

Zend автозагрузчик должен идти до или после этого (не знаю, имеет ли это значение). Нашёл сообщение, как это сделать: http://www.beyondcoding.com/2009/10/29/using-zend-framework-1-8-with-kohana/

5
ответ дан 14 December 2019 в 19:13
поделиться

Это очень важно, чтобы имя вашего класса соответствует путь к файлу в KO3. например Ваш класс Feed находится внутри /Classes/zend/feed.php Так что он должен быть назван Class Zend_Feed { Если вам это не нравится, вы можете создать этот файл / классы /feed.php И сделайте это Классический корм расширяет Zend_Feed {}

0
ответ дан 14 December 2019 в 19:13
поделиться

Как Pomyk говорит, попробуйте использовать оба автопогрузчиков: http://www.php.net/manual/en/function.spl-autoload-register.php

Reneming классов является плохой практикой, потому что это Очень сложно обновить и поддержку затрагивания

0
ответ дан 14 December 2019 в 19:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: