Screen — це термінальний рендерер, створений Аароном Френсісом, написаний на чистому PHP. Він функціонує як основа для Solo for Laravel і може використовуватися для створення багатих текстових інтерфейсів у будь-якому PHP-додатку. Зверніть увагу, що це не самостійний термінальний додаток і не слід плутати з GNU Screen, що використовується в Linux.
Що таке термінальний рендерер? Це інструмент, який обробляє текст та ANSI escape-послідовності для створення віртуального відображення термінального виходу. Він інтерпретує escape-послідовності, щоб відстежувати позицію курсора, застосовувати форматування тексту та керувати вмістом екрану.
Screen, відповідно, забезпечує безпечне інтерпретування ANSI операцій в ізольованому середовищі, гарантуючи правильне відображення термінального виходу в визначених областях.
use SoloTerm\Screen\Screen;
// Створити екран з розмірами (стовпці, рядки)
$screen = new Screen(80, 24);
// Провести кордон
$screen->write("┌" . str_repeat("─", 78) . "┐\n");
for ($i = 0; $i < 6; $i++) {
$screen->write("│" . str_repeat(" ", 78) . "│\n");
}
$screen->write("└" . str_repeat("─", 78) . "┘");
// Записати текст та ANSI escape-послідовності
$screen->write("\e[3;25HПривіт, \e[1;31mСпільнота Laravel News!\e[0m");
// Змінити курсор та додати ще тексту
$screen->write("\e[5;30HВи чудові! 🎉");
// Отримати рендерений вміст
echo $screen->output();
Результат виглядатиме наступним чином:
Встановіть цей пакет через Composer:
composer require soloterm/screen
Дізнайтеся більше про цей пакет та перегляньте вихідний код на GitHub.