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. Вклад в проект