Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

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

Надеюсь, это поможет вам.

Ответ 2

Добавьте сюда 2 цента...

Компонент

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

Extension

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

Модуль

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