(!) Примеры и описание для более новой версии фреймворка HLEB2 могут отличаться от приведенных в тексте.
Если вы выбрали для создания сайта данный PHP-фреймворк, то не буду описывать его преимущества, скорее всего этот выбор произошел из-за выигрышной скорости работы и низкого порога вхождения. Местами, особенно роутинг и названия папок, фреймворк похож на Laravel, и это не случайно. Однако, "под капотом" работает совершенно другой код, не имеющий ничего лишнего и максимально оптимизированный. Поэтому, если увидев намек на сходство с Laravel, в ваши расчеты вошло, что сайт будет работать чрезвычайно медленно, спешу вас разубедить, здесь упор делается как раз на скорость.
Если вы сомневаетесь, посмотрите на сайт phphleb.ru , это инструкция по фреймворку (сделана на нём же) и мне иногда даже самому бывает не по себе, насколько быстро переключаются страницы инструкции, ведь современные сайты не отличаются быстротой загрузки. Такое ощущение, что им (разработчикам этих ресурсов) невдомёк, что у многих пользователей скорость интернета не такая, как у них в офисе. Но речь не об этом, второй пример, этот блог, он также основан на микрофреймворке HLEB и, несмотря на множество настроек и вариаций, ведь это сервис-конструктор, а не изготовленный под один эскиз сайт, несмотря на все это скорость его работы остается высокой.
Планирование
Необходимо сначала создать план работ. Возможно, что вы уже задумали, как сайт будет выглядеть и оставалось только подыскать фреймворк, тем не менее предварительное планирование создает основу по-умолчанию, которая в дальнейшем может измениться (если вас часто посещают творческие идеи). Поэтому здесь и далее опишу, как создавать бекенд проекта, а потом скромно постою в сторонке, предоставив действовать вам.
Рабочее название проекта будет "Лайкер", так как в нём будет реализован подсчет лайков пользователей, версия 1.0
Итак, для простого сайта нам обязательно нужно настроить:
- Роутинг (Маршрутизация) - это способы сопоставления частей URL c назначенными действиями. Например, если вы запросите ocrmnolblog.ru/@fomiash маршрутизатор определит, что это запрос пользователя и отправит в нужный Контроллер, где уже будет выясняться, какой именно пользователь (это мой аккаунт). Пусть вас не смущает символ @ в запросе, это правило применимо ко всем URL сайта, например /blog/php-framework-hleb будет указывать на список блогов и потом на конкретный.
Нужно создать как минимум один контроллер:
- Контроллеры - это специальные классы, которые из запроса пользователя вычленяют нужную информацию и запускают далее соответствующие действия в проекте. Например, если параметр не удовлетворяет условиям, контроллер прервёт запрос и выведет ошибку. Иногда Контроллер просто выполняет определенное в нём действие, достаточно закрепить контроллер за определённым URL.
Отправить ответ пользователю:
- Генерация ответа (HTML-страницы, XML-данные, JSON-ответы и тд и тп) - после того, как Контроллер соберет нужные данные, возможно даже послав запросы в базу данных, он отправит их в заготовленный макет, собрав ответ на запрос пользователя.
Как видно, описанные части отвечают модели MVC (Модель, Представление, Контроллер), где Модель - это запрос в БД или иной способ получения информации по запросу, Представление - шаблон ответа и Контроллер достаточно уже был описан.
Для того, чтобы задействовать все эти определения, нужно (подразумевается, что база данных и PHP>=7.1 уже вопросы решённые, а также установлен Composer):
- Установить фреймворк и настроить веб-сервер чтобы запустить на нём проект.
- Создать маршрутизацию с четырьмя страницами - Home page (Главная страница), Contacts (Контакты), User (Страница пользователя) и Privacy Policy (Политика конфиденциальности). Представим, что это лендинг или ваше портфолио-резюме, где основная информация на главной странице или самый абсурдный вариант - приложение для подсчета лайков пользователей. Так что, на всякий случай для пользователей добавим учет лайков, возможно в дальнейшем вы захотите добавить комментарии самостоятельно.
- Подключить базу данных и настроить соединение.
- Добавить регистрацию пользователей (есть специальная библиотека).
- Создать контроллеры для обработки нужных страниц.
- Оформить Представление для показа страниц.
- Создать консольную команду. Она не так уж и нужна, но опыт создания пригодится.
Установка
В документации фреймворка есть подробный раздел Установка, поэтому не буду повторяться, добавлю только, что для установок на XAMPP или OpenServer нужно обратится к документации этих программ. По последнему есть инструкция в этом блоге. Если у вас какой-то особенный квест по установке, обратитесь в поддержку фреймворка в Telegram, если кто-то сталкивался с подобной ситуацией, может помочь. На данном этапе действия мало отличаются от какого-либо типа фреймворка, по крайней мере может быть похоже на установку того же Laravel (очень много информации об этом).