В чем разница между компонентом, расширением и модулем в Yii

Я новичок в Yii framework и только что наткнулся модуль, расширение & компонент внутри защищенной папки.

может ли кто-нибудь, пожалуйста, дифференцировать все это теоретически, а также практически.

2 ответов


компоненты - это классы, которые могут помочь вам написать бизнес-логику на основе ваших моделей. Предположим, что все файлы модели используют одну и ту же логику, так что логика может быть записана внутри компонента вместо записи для каждого контроллера.

расширения похожи на библиотеки, которые в основном не зависят от ваших моделей и, следовательно, могут быть повторно использованы в любом месте в текущих или более поздних проектах. Например, написание любого письма расширение.

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

Я надеюсь, что это поможет вам.


добавить мои 2 цента...

компонент

ваш собственный файл класса, с которым вы хотите что-то сделать, только для этого сайта. Примеры-класс сжатия zip в приложении загрузчика, пользовательское шифрование algo для некоторого приложения безопасности

расширение

файл внешнего класса или группа файлов, которые могут быть повторно использованы, часто предоставляемые третьими лицами. Примерами являются библиотека facebook connect, которую вы или кто-то другой построили, api библиотека от ebay.com чтобы получить список, библиотека RSS reader для чтения из google и т. д.

модуль

мини-сайт на основе yii, который служит подмножеством вашего сайта, также может быть повторно использован в других приложениях или является независимым от сборки, чтобы сделать yii еще более модульным. Примеры: модуль форума, независимый от сайта, но использующий только информацию о пользователе, модуль аутентификации пользователя, который содержит интеграцию с несколькими сайтами, такими как openid, facebook и в Google