batyo/php-cli-display-library

PHP CLI表示ライブラリ(ANSIカラー、フォント、文字幅対応)

Maintainers

Package info

github.com/batyo/php-cli-display-library

pkg:composer/batyo/php-cli-display-library

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.1 2026-03-23 05:03 UTC

This package is auto-updated.

Last update: 2026-04-23 05:27:00 UTC


README

マルチバイト文字に対応したPHP用CLI表示ライブラリです。
ANSIカラー、文字装飾、フォント切り替え、エンコード自動判別とUTF-8統一対応を備えています。

特徴

  • 日本語対応mb_strwidthによる全角・半角文字幅計算
  • エンコード自動判別&UTF-8統一EncodingHelperで自動変換
  • ANSIカラー・装飾:前景色・背景色・太字・下線に対応
  • フォント切り替えFontDriverInterfaceで拡張可能(FIGlet等)
  • シンプルな単一ファイル構成:Composerオートロードもサポート

使い方

基本例

use CLI\Display\AnsiRenderer;
use CLI\Display\Style;

$renderer = new AnsiRenderer();
$style = new Style('bright_green', null, true);
echo $renderer->render('こんにちは、世界!', $style) . "\n";

Displayクラスによる高機能表示

use CLI\Display\Display;
use CLI\Display\AnsiRenderer;
use CLI\Display\ExternalFigletFontDriver;
use CLI\Display\Style;

$d = new Display(new AnsiRenderer(), new ExternalFigletFontDriver());
$d->header('サンプル', 'standard', new Style('cyan', null, true));
$d->box("日本語のボックス表示をテストします。全角幅にも対応しています。", 40, new Style('green'));
$d->text($d->colorText('赤文字の例', 'red'));

エンコード自動判別・文字幅取得

use CLI\Display\EncodingHelper;

$text = "テスト"; // Shift_JISでもOK
$utf8 = EncodingHelper::normalizeEncoding($text);
$width = EncodingHelper::getDisplayWidth($utf8);

利用できる色名

  • black, red, green, yellow, blue, magenta, cyan, white
  • bright_black, bright_red, bright_green, bright_yellow, bright_blue, bright_magenta, bright_cyan, bright_white

フォント拡張

FontDriverInterfaceを実装することで独自フォント描画機能を追加できます。

class MyFontDriver implements CLI\Display\FontDriverInterface {

## インストール

Composer での簡単なインストール例:

```bash
composer require batyo/php-cli-display-library

注意事項

  • ExternalFigletFontDriver を利用してヘッダを FIGlet フォントで表示するには、システムに figlet コマンドがインストールされている必要があります。利用できない場合は自動でフォールバック表示になります。
  • Windows の一部の端末では ANSI エスケープシーケンスが有効になっていないため色や装飾が表示されないことがあります。Windows Terminal や最新の PowerShell を使用するか、端末で ANSI を有効化してください。

ライセンス

MIT License