Могу ли я использовать zend translate, date и cache в качестве отдельного класса в моем проекте? - PullRequest
2 голосов
/ 01 октября 2010

Я собираюсь использовать Zend Framework, но просто какой-то инструмент Zend, такой как translate, date и cache. Могу ли я использовать его как отдельный класс? У моего проекта есть своя структура, и я не хочу использовать весь Zend fw. Если да, какие файлы я должен включить в свой проект? Есть ли документы для использования каждого инструмента Zend fw в качестве отдельного?

Ответы [ 2 ]

8 голосов
/ 01 октября 2010

И помните, чтобы использовать различные компоненты Zend Framework в другом проекте, вам просто нужно иметь библиотеку Zend где-то на вашем include_path.Копирование всего этого может показаться излишним, если использовать один компонент, но это только дисковое пространство.Наличие этих файлов не влияет на производительность, если они не вызваны.И таким образом, вам не нужно разбирать зависимости, такие как Zend_Exception и его различные подклассы, специфичные для компонентов.

Так, например, если у вас есть папка myapp/lib для хранения ваших внешних библиотек, вы просто убедитесь, что ваш путь включения содержит эту папку lib и скопируйте в нее папку Zend как myapp/lib/Zend.

Затем, чтобы использовать такой компонент, как Zend_Translate, все, что вам нужно сделатьэто что-то вроде следующего:

require_once 'Zend/Translate.php';
$options = array(
    // your options here
);
$translate = new Zend_Translate($options);

Имея какой-то механизм автозагрузки, вы можете избежать даже вызова require_once.Настроить автозагрузку так же просто, как добавить следующее в какой-нибудь общий файл / файл начальной загрузки:

require_once 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();

Затем любые классы, которые следуют соглашению PEAR 1-class-1-file может быть загружен без явного добавления каких-либо операторов require / include.

Если дисковое пространство действительно является проблемой и вам действительно не нужна вся библиотека Zend, тогда вы можете исследовать пакетизатор, например, Упаковщик Яни Хартикайнен .

2 голосов
/ 01 октября 2010

В качестве ответа я могу сказать, конечно, Да.

например, если вы хотите использовать Zend_Translate, скопируйте Translate.php и папку Translate в каталог вашей библиотеки.

несколько раз внутри класса использовались другие классы. ты тоже должен их скопировать. я нахожу их, читая поднятые ошибки. ;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...