Файловая cтруктура модуля

В целом удобнее, когда файловая структура модуля совпадает со стандартной структурой приложения Laravel, примерно так:


├ config
├ routes
├ database
│ └ migrations
├ resources
│ └ views
├ src
│ ├ Console
│ ├ Http
│ │ ├ Controller
│ │ └ Requests
│ ├ Jobs
│ ├ Models
│ └ etc …
├ storage
└ tests

Одно отличие от структуры папок в Laravel – вместо app принято использовать папку src. Структура папок не является догмой и при желании ее можно упрощать под себя. Например, вынести views на уровень выше, чтобы не создавать излишней вложенности.

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


mklink /j путь-до-приложения\vendor\maxvdovin\mxj-blog\public путь-до-приложения\public\mxj-blog

В этом случае публичные файлы модуля будут доступны по пути example.com/mxj-blog. Второй способ публикации файлов и папок описан в статье о конфигурации модуля.

18.07.2021