Расположение папок микрофреймворка
HLEB может напомнить структуру фреймворка
Laravel. При развёртывании проекта необходимо учитывать, что все доступные пользователю по прямой ссылке файлы
расположены в папке
'public'. Остальное - файлы разработки и недоступные по прямой ссылке файлы из папки
'storage/public', в которой предполагается хранить загруженные пользователями файлы,
находятся вне этой директории.
app/
Предполагается, что в этой папке будет расположена функциональность проекта. Например, можно добавить к уже существующим папку
Logic, c классами, отвечающими за логику проекта.
Также здесь расположены дефолтные файлы, которые являются пустыми шаблонами, из них удобно создавать новые классы соответствующей категории.
Папка
Commands предназначена для хранения стандартизированных классов
команд, образцом такого стандарта является файл
DefaultTask.php, а в
RotateLogsTask.php реализован простой и работоспособный способ ротации логов.
Папка
Controllers содержит файлы
контроллеров, изначально в ней находится файл
DefaultController.php, представляющий из себя пустой шаблон контроллера.
Папки
Middleware/After и
Middleware/Before также содержат пустые шаблоны этих классов-посредников,
DefaultMiddlewareAfter.php и
DefaultMiddlewareBefore.php соответственно.
Папка
Models предназначена для содержания классов
Моделей, файл
DefaultModel.php также является шаблоном.
В папке
Optional содержится три служебных файла, наличие их обязательно:
404.php - обязательный файл, устанавливает страницу ошибки 404, отображается, если не найдено совпадений в маршрутизаторе.
aliases.php - файл с необходимыми сопоставлениями названий классов.
MainConnector.php - содержит массив с сопоставлением имён и расположения классов проекта. Заполняется разработчиком сайта по мере создания новых классов. Если пространство имён и путь для класса от корня проекта
совпадают ( например: app/Optional/MainConnector.php соответствует App\Optional\MainConnector ) - фреймворк способен автоматически определить класс, но, для улучшения скорости работы приложения, рекомендуется добавлять соответствия для новых классов.
shell.php - файл с глобальными функциями проекта, добавляемыми разработчиком. Может присутствовать в проекте для обратной совместимости, в последних версиях не используется..
database/
Здесь содержатся файлы подключения к базе данных. Подробнее в разделе «
Базы данных».
public/
В файл
index.php должны быть направлены все входящие адреса
URL, кроме вызовов файлов, которые располагаются в следующих публичных папках:
Папка
css предназначена для содержания файлов
CSS-стилей сайта.
Папка
js для публичных файлов
JavaScript.
В
images хранятся публичные изображения, используемые на сайте по прямой ссылке.
Папка
svg для публичных векторных изображений сайта.
favicon.ico - шаблон иконки сайта.
robots.txt - шаблон файла, предназначенного для передачи информации поисковым системам. Важно! Изначально он содержит рекомендации о запрете индексации, чтобы проект на предварительной стадии не был случайно проиндексирован.
requirements.php - если фреймворк установлен без помощи
composer, этот файл будет нужен для проверки требований фреймворка к окружению, иначе он будет удалён установщиком.
.htaccess - содержит необходимые инструкции для веб-сервера Apache.
resources/
Эта директория предназначена для хранения файлов-исходников для последующей компиляции, шаблонов писем, возможно, файлов для js-фреймворка и
Sass. По умолчанию в директории только одна папка для
файлов составления страниц сайта.
Папка
views/ содержит единственный файл-шаблон
default.php, содержащий html-код приветственной страницы фреймворка.
routes/
Директория, предназначенная только для файлов маршрутизатора. К основному и обязательному файлу
main.php могут подключаться другие файлы, продолжающие карту маршрутизации.
storage/
В этой папке находятся логи проекта, кэшируемые данные и папка
public для предполагаемого хранения пользовательских файлов.
vendor/
Предназначена для расположения библиотек проекта, а также содержит ядро фреймворка
HLEB в папке
phphleb/framework.
/
В корневой директории несколько файлов:
composer.json - содержит необходимые настройки для менеджера зависимостей Composer.
console - это PHP-файл без указанного расширения, служит для запуска консольных команд из директории проекта, например:
"php console -h".
.gitignore - файл, запрещающий передавать перечисленные в нём ресурсы через контроль версий. Важно не допускать копирования конфигурационных файлов с проектом.
default.start.hleb.php - шаблон настроек фреймворка.
start.hleb.php - скопированный из
default.start.hleb.php конфигурационный файл с настройками (в отличие от дефолтного, включён в
.gitignore).