goodboyalex / php_components_pack
[RU] Набор компонентов для сайта на PHP / [EN] A set of components for PHP website
Package info
gitflic.ru/project/babaev-an/php_components_pack.git
pkg:composer/goodboyalex/php_components_pack
Requires
- php: >=8.4
- ext-mbstring: *
- ext-openssl: *
Requires (Dev)
- phpstan/phpstan: >=2.2.6
- phpunit/phpunit: >=13.2.6
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-main
- v1.7.1
- v1.7
- v1.6
- v1.5.11
- v1.5.10
- v1.5.9
- v1.5.8
- v1.5.7
- v1.5.6
- v1.5.5
- v1.5.4
- v1.5.3
- v1.5.2
- v1.5.1
- v1.5
- v1.4.4
- v1.4.3
- v1.4.2
- v1.4.1
- v1.4
- v1.3.1
- v1.3.0
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.28
- v1.0.27
- v1.0.26
- v1.0.25
- v1.0.24
- v1.0.23
- v1.0.22
- v1.0.21
- v1.0.20
- v1.0.19
- v1.0.18
- v1.0.17
- v1.0.16
- v1.0.15
- v1.0.14
- v1.0.13
- v1.0.12
- v1.0.11
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
This package is auto-updated.
Last update: 2026-11-01 14:24:14 UTC
README
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.