Структура приложения Imhotep предоставляет отличную основу как для крупных, так и для небольших проектов. Однако вы можете адаптировать её под свои потребности.
Imhotep не ограничивает расположение классов, при условии, что Composer может автоматически их загружать.
Каталог /app служит хранилищем основного кода вашего приложения. В ближайшее время мы подробно рассмотрим его структуру, но уже сейчас можно сказать, что почти все классы вашего приложения будут находиться именно здесь.
В каталоге /bootstrap располагается файл app.php, который отвечает за загрузку фреймворка. Здесь же находится каталог cache, где хранятся файлы, сгенерированные фреймворком для оптимизации производительности, такие как файлы кеша конфигурации, маршрутов и других служб.
Как следует из названия, каталог /config содержит все файлы конфигурации вашего приложения. Рекомендуем внимательно изучить все эти файлы, чтобы ознакомиться со всеми доступными параметрами.
Каталог /database служит хранилищем для миграций ваших баз данных. При желании вы также можете использовать этот каталог для хранения SQLite БД.
Каталог /public включает файл index.php, который служит точкой входа для всех запросов, поступающих в ваше приложение, а также настраивает автозагрузку. В этом каталоге также располагаются ваши ресурсы, такие как изображения, JavaScript и CSS.
Каталог /resources служит хранилищем ваших шаблонов и необработанных, нескомпилированных ресурсов, включая JavaScript и CSS.
В каталоге /routes находятся все маршруты вашего приложения. По умолчания в Imhotep включены два файла маршрутов: web.php и console.php.
В файле web.php перечислены маршруты, для обработки которых Imhotep применяет группу middleware web, настраиваемую в файле /app/Http/Kernel.php. Благодаря этому обеспечивается состояние сессии, защита от атак CSRF и шифрование файлов cookie.
В файле console.php вы можете определить все свои анонимные консольные команды. Каждое замыкание будет связано с соответствующим экземпляром команды, что позволяет легко взаимодействовать с методами ввода и вывода каждой команды. Хотя этот файл не отвечает за обработку HTTP-запросов, он устанавливает точки входа (маршруты) в ваше консольное приложение.
Каталог /storage служит хранилищем для различных файлов, включая логи, скомпилированные шаблоны, файлы сессий, кеш и другие данные. Этот каталог подразделяется на три подкатегории: app, framework, и logs.
В каталоге /storage/app хранятся файлы, созданные вашим приложением.
Каталог /storage/framework содержит файлы, сгенерированные фреймворком.
Каталог /storage/logs служит для хранения логов вашего приложения.
Каталог /vendor содержит ваши Composer-зависимости.