В Zend Framework, в чем разница между модулем и пакетом - PullRequest
0 голосов
/ 25 февраля 2010

Я разрабатываю веб-приложения с Zend Framework.

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

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

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

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

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

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

Полагаю, это открытый вопрос об API, библиотеках и архитектуре приложений.

Ответы [ 3 ]

3 голосов
/ 25 февраля 2010

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

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

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

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

См.

1 голос
/ 25 февраля 2010
Пакеты

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

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

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

0 голосов
/ 25 февраля 2010

Просто на мой взгляд:
Модули похожи на smarty (библиотека с целевым шаблоном шаблонов).
Пакеты представляют собой 2 или более модулей, которые работают друг с другом, чтобы предложить более полное решение.
Опять моя простая точка зрения.

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