2010-02-25 5 views
0

I devlopp веб-приложения с Zend Framework.С Zend Framework, в чем разница между модулем и пакетом

На данный момент у меня есть огромная библиотека, в которой есть каждая вещь, используемая несколькими веб-приложениями. Я думаю о его реорганизации, используя концепцию «Модуль».

Но я не уверен в различии между модулем и пакетом.

Что я понимаю:

  • дополнительный модуль содержит часть веб-приложений (страницы, модели ...)
  • Пакет представляет собой группу из класса в библиотеке

Я вижу это правильно? И как узнать, куда следует идти мои классы (модель модуля или библиотеки)?

Потому что, например, у меня есть несколько классов для перевода. У меня есть «модельные» классы, чтобы представлять язык, текст и его пути ... И у меня есть класс «API», который только что здесь, чтобы перевести строку на язык. Я бы сказал, что мне нужен модуль для классов моделей и веб-интерфейса для редактирования трайдеров, а класс API будет идти в библиотеке? Это правильно ? Разве это не странно иметь 2 типа классов, один для модуля и один для библиотеки.

Я думаю, что это открытый вопрос об API, librairie и архитектуре приложений.

ответ

3

модули, в том смысле, ZF, группа бетона, часто автономные, применение частей:

модули позволяют разработчику группировать набор связанных контроллеров в логически организованной группой. Структура в каталоге модулей будет похожа на структуру в каталоге приложения. [...] Структура каталогов для модулей должна имитировать, что из приложения/каталога в рекомендуемой структуре проекта

пакета с другой стороны, это набор классов в библиотеке с кода что концептуально связаны друг с другом. Например, ActionHelpers и ControllerPlugins концептуально принадлежат к пакету Zend_Controller. Все доступные классы Validator относятся к пакету Zend_Validate.

При использовании PHPDocumentor вы можете аннотировать свой код к пакетам.Если вы посмотрите на API API ZF, вы увидите эту группировку. Попробуйте найти класс Zend_Validate_Alpha.

См

1

пакеты являются областями пространства имен, так что символы с похожими именами не сталкиваются друг с другом. Например, символ & main :: first отличается от символа & Список :: Util :: first. Пакеты являются префиксами имени для систем.

Модуль является файлом кода или деревом байт-кодов. Модуль может быть предварительно скомпилирован (.pmc), не скомпилирован (.pm) на диске; или предварительно загружены в память как единое целое - при отсутствии авторасщепления.

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

+0

Это не то, что * модули * находятся в терминах ZF. – Gordon

+0

yep Gordon, вы правы Я говорю о модулях ZF –

0

Простой, на мой взгляд:
модули как Smarty (библиотека с целевой цели шаблонам) ,
Пакеты - это два или более модуля, которые работают друг с другом, чтобы предложить более полное решение.
Снова моя простая точка зрения.

Смежные вопросы