README.md

Пакет универсальных компонентов для веб-разработки на 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.

Описание
Пакет универсальных компонентов для веб-разработки на PHP
Релизы
последний
Конвейеры
0 успешных
0 с ошибкой
Разработчики