Компонент Symfony Console предоставляет стиль по умолчанию для вывода вашей команды, но вы также можете применять собственные стили и цвета. Однако вы могли использовать только восемь основных цветов ANSI для цвета текста и фона.
В Symfony 5.2 улучшаем эту функцию для поддержки 24-битных цветов, также известных как «истинные цвета». В общей сложности более 16 миллионов различных цветов, чтобы ваши консольные команды выглядели великолепно.
Вместо поддержки всех различных способов определения цветов (RGB, HSV, HSL, именованные цвета и т. д.) выбрали прагматическое решение, основанное на шестнадцатеричных цветах, которые хорошо известны разработчикам/дизайнерам и которые легко получить из любое дизайнерское приложение.
Самый простой способ использовать эти новые шестнадцатеричные цвета — использовать ярлыки fg и bg в выходном содержимом:
// using a predefined style
$output->writeln('... contents ...>');
// custom style using basic colors
$output->writeln('... contents ...>');
// custom style using true colors
$output->writeln('... contents ...>');
Шестнадцатеричные цвета должны включать префикс #, и они могут состоять только из 3 или 6 символов (8-значные значения, включающие альфа-канал, не поддерживаются). Вы также можете использовать эти цвета вне компонента консоли с помощью нового класса Color
:
use Symfony\Component\Console\Color;
$color = new Color('#00ff00', '#00f');
echo $color->apply('... contents ...');
// you can mix basic and true colors
$color = new Color('red', '#00f');
// the third optional argument defines the styles
$color = new Color('#000', '#fff', ['underscore', 'reverse']);
Если истинные цвета не поддерживаются консолью/терминалом, они возвращаются к наиболее похожему цвету по умолчанию.