Домашняя страница
Пакет универсальных компонентов для веб-разработки на PHP
ANB PHP COMPONENTS — это набор мощных инструментов для разработки веб-приложений на языке программирования PHP. Пакет включает разнообразные классы и компоненты, направленные на упрощение процесса создания функциональных и масштабируемых приложений.
Текущая версия: 1.7.1 (01.11.2026) · Лицензия: GPL-3.0-or-later
✅ Основные возможности:
Типы
PyList— массив объектов с проверкой типа элементов, LINQ-выборками (select,contains,any,all), операциями в стилеarray(map,reduce,merge,distinct) иpython(slice,zip,enumerate);Dictionary,Tuple— словарь и кортеж;GUID,FileHash,VersionInfo— генерация идентификаторов, работа с хэшем файлов, представление и сравнение версий;ShortcodeAttributes— атрибуты шорткодов.
Классы
ArraySerializer— сериализация и десериализация массивов объектов (serialize/ JSON с восстановлением классов);ClassMapper— копирование свойств между объектами (в том числе с преобразованием типов);JsonReWriter— чтение и запись JSON-данных с поддержкой вложенных ключей и сохранения в файл;ShortcodeParser— парсер шорткодов вида[name param=value]с валидацией и обработчиками;Encryptor— шифрование и дешифрование строк (OpenSSL);File— работа с файлами и каталогами (поиск, ротация, размер, удаление);Logger— система журналирования с обработчиками (FileHandler,ConsoleHandler,BufferedRotatingFileHandlerи др.) и форматерами сообщений;ActionState— состояние действия с сообщениями об ошибках и предупреждениях.
Также в пакете
- расширения стандартных типов (
TypeExtension,StringExtension,ArrayExtension,BoolExtensions); - перечисления, интерфейсы и модели настроек;
- атрибут
GetOnlyи исключенияJsonException,TypeException.
⚙️ Требования:
- PHP 8.4+;
- расширения
mbstringиopenssl.
🚀 Установка и использование:
Установите пакет через Composer:
composer require goodboyalex/php_components_pack
Далее подключайте нужные классы и начните работу.
Работа со списками (PyList)
use goodboyalex\php_components_pack\types\PyList;
// Список объектов с ограничением по типу
$users = new PyList([new User('Алексей'), new User('Мария')], User::class);
$active = $users->select(fn (User $u): bool => $u->isActive()); // выборка
$names = $users->map(fn (User $u): string => $u->name, 'string');
$first = $users->first();
if ($users->any(fn (User $u): bool => $u->isAdmin()))
echo 'Есть администратор';
Сериализация массивов объектов (ArraySerializer)
use goodboyalex\php_components_pack\classes\ArraySerializer;
use goodboyalex\php_components_pack\types\PyList;
$serialized = ArraySerializer::serialize($users);
// Десериализация заполняет переданный массив
$restored = new PyList();
ArraySerializer::unSerialize($serialized, $restored);
Работа с JSON (JsonReWriter)
use goodboyalex\php_components_pack\classes\JsonReWriter;
use goodboyalex\php_components_pack\exceptions\JsonException;
$json = new JsonReWriter();
try {
$json->write('app/name', 'My Application'); // вложенные ключи через «/»
$json->write('app/version', '1.7');
$json->saveToFile('my.json');
$name = $json->readString('app/name');
}
catch (JsonException $e) {
echo $e->getMessage();
}
Шифрование (Encryptor)
use goodboyalex\php_components_pack\classes\Encryptor;
$encrypted = Encryptor::encrypt('секретные данные', 'мой_ключ');
$decrypted = Encryptor::decrypt($encrypted, 'мой_ключ');
📚 Документация:
Полная документация размещена в wiki проекта:
🛠️ Разработка и тесты:
composer install # установка зависимостей (включая dev)
vendor/bin/phpunit tests # запуск тестов
vendor/bin/phpstan analyse # статический анализ
💬 Обратная связь и поддержка:
Обо всех ошибках и пожеланиях можно сообщать в разделе проблемы.
📄 Лицензия:
Пакет распространяется по лицензии GPL-3.0-or-later.