Comments 6
Отличная статья! PhpFluentConsole действительно закрывает важную нишу в PHP-разработке. Вот мои мысли по вашей библиотеке:
Библиотека предлагает элегантное решение для главной боли разработчиков - работы с командной строкой, особенно под Windows. Fluent-интерфейс создаёт потрясающе читаемый код, а поддержка кодировок (CP866, CP1251) - это именно то, что постоянно не хватает при работе с кириллицей. Особенно впечатлила обработка вывода через getMatches() с regex - такой подход действительно экономит часы рутинной работы.
Расширяемость через наследование (как в примере с customRunner) - правильный архитектурный ход. Это превращает библиотеку в платформу для создания специализированных инструментов вроде упомянутого CryptoProBuilder.
Для дальнейшего развития стоит рассмотреть:
Более гибкую обработку динамических методов без жесткого white-list'а
Добавление работы со стандартным потоком ошибок (STDERR)
Поддержку пайпов между командами и таймаутов выполнения
Создание врапперов для популярных утилит (OpenSSL, Git, Docker) как отдельный пакет
Главное преимущество - продуманная работа с Windows-кодировками. Это та фича, из-за которой стоит попробовать библиотеку прямо сейчас. Жду с нетерпением продолжения про CryptoProBuilder - такой подход действительно может изменить экосистему инструментов для работы с ЭЦП в PHP.
Спасибо за идеи! В этом действительно есть смысл. Это первая версия библиотеки, я изначально набросал её как решение для кроссплатформенной работы с КриптоПро через консоль, без необходимости встраивать SDK, но с возможностью удобно собирать команды через fluent-интерфейс. Улучшения, о которых вы пишете, точно сделают её более гибкой и полезной. Обязательно учту в будущих версиях.
Для docker было бы неплохо полноценную обертку сделать или для работы с системными командами.
Для git или docker не планируете библиотеку делать? Это помогло бы упростить CI/CD.
Fluent CLI в PHP: Создаём консольные команды с __call и никаких танцев с бубном