Модули - это законченные программные блоки, состоящие из моделей, представлений, контроллеров и других вспомогательных компонентов. При установке модулей в приложение, конечный пользователь получает доступ к их контроллерам. По этой причине модули часто рассматриваются как миниатюрные приложения. В отличие от приложений, модули нельзя развертывать отдельно. Модули должны находиться внутри приложений.
Например, модуль комментариев. Своя конфигурация, форма, модель, контроллер, вид, js скрипты.
Виджеты представляют собой многоразовые строительные блоки, используемые в представлениях для создания сложных и настраиваемых элементов пользовательского интерфейса в рамках объектно-ориентированного подхода. Например, виджет выбора даты (date picker) позволяет генерировать интерактивный интерфейс для выбора дат, предоставляя пользователям приложения удобный способ для ввода данных такого типа. Все, что нужно для подключения виджета - это добавить следующий код в представление:
Например, в виджет можно вынести login форму, календарь, форму подачи комментария, чтобы не копировать код в кучу представлений. В представлении подключаете виждет одной строкой, если нужно будет внести изменения в код, то потребуется изменить код виджета, но не надо будет лазить по всем файлам, чтобы это сделать.