cloud-castle/archive — 22 формата архивов на чистом PHP: ZIP, 7z, TAR, ISO, RAR потоково и безопасно
Обзор Composer-пакета cloud-castle/archive для PHP 8.1–8.5: 22 формата архивов в одном пакете на чистом PHP. Архивы читаются и пишутся потоково, генераторами: память порядка размера чанка, а не размера архива — 50-гигабайтный образ обрабатывается на том же лимите, что и файл на мегабайт. Без обязательных расширений PHP и без внешних утилит; защиты от zip-slip и архивных бомб включены по умолчанию. В видео: • установка и проверка возможностей окружения (canRead / canWrite); • быстрый старт: построитель, читатель, сводка и откат незавершённой записи; • форматы: ZIP (Zip64, ZipCrypto, WinZip AES), TAR (ustar/PAX/GNU) с gz, bz2, xz, zst, lz4, br, 7z (LZMA, LZMA2, BCJ, Delta, солид-блоки, AES-256), ISO 9660 с Joliet и Rock Ridge, DEB, AR, CPIO, CAB, PHAR, RAR; • потоковая архитектура и чтение многогигабайтных записей кусками; • отдача архива прямо в HTTP-поток без временного файла; • сборка архива из базы данных генератором; • конвертация формат → формат без распаковки на диск; • правка готового архива: удалить, переименовать, заменить, дописать — с атомарной подменой; • фильтры записей и отслеживание прогресса; • выборочная распаковка и инвентаризация чужого архива; • шифрование: WinZip AES с проверкой HMAC, 7z с зашифрованным заголовком; • безопасность: zip-slip, архивные бомбы, политики символических ссылок, запуск утилит без шелла, PHAR без unserialize; • приём архива от пользователя: формат по сигнатуре, песочница, строгие лимиты; • консольная утилита vendor/bin/archive; • архитектура и обещание SemVer для публичного API; • производительность и память — честные замеры против 5 аналогов; • качество кода: PHPStan max, Psalm 1, покрытие 100 %, Infection MSI 100 %; • сравнение с wapmorgan/unified-archive, nelexa/zip, splitbrain/php-archive, maennchen/zipstream-php, pear/archive_tar; • честные минусы и рекомендации по применению. Пакет: https://packagist.org/packages/cloud-castle/archive Исходники: https://gitverse.ru/cloud-castle/archive Документация: https://cloud-castle.gitverse.site/archive/ Команда установки: composer require cloud-castle/archive Таймкоды: 00:00 Введение 01:02 Зачем ещё одна библиотека 01:57 Установка 02:54 Быстрый старт 03:45 Поддерживаемые форматы 04:48 Потоковость как основа 05:39 Отдача архива в HTTP-поток 06:35 Архив из базы данных 07:26 Конвертация формат → формат 08:19 Правка готового архива 09:15 Фильтры и прогресс 10:10 Выборочная распаковка и инвентаризация 11:03 Шифрование 11:56 Безопасность по умолчанию 12:56 Приём архива от пользователя 13:47 Консольная утилита 14:38 Архитектура 15:40 Производительность 16:45 Память и утечки 17:52 Качество кода и сравнение 18:54 Итоги
Название:
cloud-castle/archive — 22 формата архивов на чистом PHP: ZIP, 7z, TAR, ISO, RAR потоково и безопасно
Категория:
Технологии и интернет