SLOT-H: Хелперы (Curl, Date, File, Geo, Person)
В системе хелперы представляют собой набор утилит для выполнения типовых операций. Они не содержат бизнес-логики и не зависят от модулей, но активно используются ими для решения вспомогательных задач.
Curl
Хелпер Curl предоставляет обёртку над cURL для выполнения HTTP-запросов. Поддерживает методы GET, POST, PUT, DELETE.
Пример использования:
php
$curl = new \Application\Helpers\Curl();
$result = $curl->setUrl('https://api.example.com/users')
->setData(['id' => 123])
->setHeader(['Authorization: Bearer token'])
->get();
Хелпер автоматически обрабатывает ответ, декодирует JSON и возвращает массив. В случае ошибки возвращает массив с ключом curl_error.
Date
Хелпер Date предоставляет методы для работы с датами и временем. Поддерживает локализацию на разных языках.
Основные методы:
- Date::dbDate() - форматирование даты для базы данных (Y-m-d)
- Date::dbDateTime() - форматирование даты и времени для базы данных (Y-m-d H:i:s)
- Date::getHumanDate() - форматирование даты для отображения пользователю
- Date::getTextDate() - текстовое представление даты
- Date::getStrToTime() - преобразование строки в timestamp
Date::weekDays() - список дней недели на текущем языке
Date::monthTitleReal() - список месяцев на текущем языке
Хелпер учитывает язык пользователя и возвращает локализованные названия дней и месяцев.
File
Хелпер File предоставляет методы для работы с файлами. Включает:
Определение MIME-типов для различных категорий (изображения, документы, аудио, видео)
Форматирование размера файла в человеко-читаемый вид
Работу с чанковой загрузкой файлов
Получение информации о логах системы
Генерацию классов из структуры данных
Основные методы:
File::getAllowedImageTypes() - список разрешённых MIME-типов для изображений
File::getHumanSize() - преобразование байтов в читаемый формат
File::getLogs() - получение списка логов с размерами
File::upload() - обработка чанковой загрузки
Geo
Хелпер Geo предоставляет методы для работы с географическими данными. В демо-версии реализованы базовые функции для работы с городами и регионами.
Основные методы:
Geo::getTown() - получение информации о городе
Geo::getState() - получение информации о регионе
Geo::getCountries() - получение списка стран
В полной версии хелпер расширен для работы с гео-базами, содержащими миллионы записей.
Person
Хелпер Person предоставляет методы для работы с пользователями и их сессиями.
Основные методы:
Person::quit() - завершение сессии пользователя
Person::setAuth() - установка аутентификации
Person::getRoles() - получение иерархии ролей
Person::clonePerson() - клонирование пользователя между проектами
Этот хелпер используется для управления пользовательскими сессиями и аутентификацией.
Общие принципы
Все хелперы являются статическими классами и не требуют инстанцирования. Они вызываются напрямую через пространство имён.
Хелперы не зависят от модулей и могут использоваться в любом месте системы. Они не хранят состояние и не влияют на глобальные данные.
Новые хелперы могут быть добавлены в папку Application/Helpers и будут доступны для использования во всей системе.
Что дальше?
- ➡️ Раздел 30. Демо-версия vs Полная версия
- ➡️ Раздел 31. FAQ
- ➡️ Раздел 32. Вклад в проект