(!) Примеры и описание для более новой версии фреймворка HLEB2 могут отличаться от приведенных в тексте.
Последней в этом цикле статей по созданию демонстрационного сайта на PHP фреймворке HLEB, будет тема о создании собственной консольной команды, о которой упоминалось в самом начале, в части 1
Создание консольной команды
Автоматизация повторяющихся действий (в том числе создание собственных консольных команд) значительно улучшает жизнь разработчика.
Для начала просмотрим системные команды фреймворка (выполняется из корневой директории проекта).
$ php console --help
В текущей версии фреймворка их список таков:
--version or -v (версия фреймворка)
--clear-cache or -cc (очистка кэша шаблонов и маршрутов)
--forced-cc (принудительная очистка кэша)
--clear-routes-cache or -routes-cc (очистка кэша маршрутов)
--info or -i (displays the values of the main settings) (вывод настроек)
--help or -h (отображение стандартных консольных команд)
--routes or -r (список маршрутов)
--list or -l (вывод списка пользовательских команд)
--list <command> [--help] (информация о команде)
--logs or -lg (отображение последних ошибок в логах)
--find-route <url> [method] [domain] (поиск маршрута по url)
--new-task (создание новой команды)
--new-task example-task "Short description" (шаблон создания новой команды)
Теперь другой командой посмотрим пользовательские, добавленные в папку /app/Commands
$ php console --list
Она выведет в терминал:
TASK COMMAND DESCRIPTION
Hlogin\CreateLoginTableTask hlogin/create-login-table-task Create tables for login
RotateLogsTask rotate-logs-task Delete old logs
Здесь находится как команда для ротации логов, так и команда на создание администратора, прежде добавленная при установке библиотеки регистрации HLOGIN.
Теперь добавим собственную консольную команду. Она будет выполнять одно действие - обнулять все лайки пользователей и начинать рейтинг с начала.
<?php
/* Файл /app/Commands/DeleteAllLikesTask.php */
namespace App\Commands;
use App\Models\LikeModel;
class DeleteAllLikesTask extends \Hleb\Scheme\App\Commands\MainTask
{
/** php console delete-all-likes-task **/
const DESCRIPTION = "Clearing the table with likes";
/** Обнуляет все лайки, очищая таблицу с ними */
protected function execute() {
LikeModel::deleteAll();
echo "Likes table has been cleared!";
echo PHP_EOL . __CLASS__ . " done." . PHP_EOL;
}
}
Теперь снова посмотрим список пользовательских команд:
$ php console --list
TASK COMMAND DESCRIPTION
DeleteAllLikesTask delete-all-likes-task Clearing the table with likes
Hlogin\CreateLoginTableTask hlogin/create-login-table-task Create tables for login
RotateLogsTask rotate-logs-task Delete old logs
В перечне новая команда delete-all-likes-task (составлена из названия класса). Если её выполнить, то данные в таблице 'likes' будут очищены.
$ php console delete-all-likes-task
Поздравляю, собственная консольная команда добавлена!
Дополнительные сведения о консольных командах фреймворка можно найти здесь.
На этом закончен список примеров и рекомендаций "Создание сайта с помощью фреймворка HLEB", если у вас появились вопросы, пишите в комментарии к соответствующей теме или в группу техподдержки в Telegram @phphleb



