Zend\Text\Tableは、配列からテーブルタグが作れる…わけではなくテキストでテーブルを作ります。
MySQLのコマンドライン出力みたいなやつです。
出力は以下のようになります。
出力はHTMLタグのない純粋なテキストのため、基本的にコンソールやテキスト出力用です。
また、残念ながら幅の自動調整機能がないため、わざわざTable::setColumnWidthsで設定しなければならず面倒です。
あと配列をそのまま突っ込む機能もないようです。
デコレータとして最初からAscii以外にBlankとUnicodeが用意されており、Blankを指定すると罫線のない出力が得られます。
Unicodeはよくわかりませんでした。
しかし一番欲しい人が多いであろうZend\Text\Table\Decorator\Htmlは何故か存在しませんでした。
また、何気に右端左端の'|'と中間の'|'を区別していないという暴挙のため、ちょっと凝ったデコレータを自作しようとしても作成は不可能です。
なんというファッキンな仕様。
微妙に、というか色々と使い辛いZend\Text\Tableでした。
MySQLのコマンドライン出力みたいなやつです。
<?php require_once('path/to/channel/vendor/autoload.php'); use Zend\Text\Table\Column; // テーブル $table = new Zend\Text\Table\Table(); // 設定 // 描画タイプ $table->setDecorator('ascii'); // カラムの横幅は指定必須 $table->setColumnWidths(array(4, 6, 8, 10, 10)); // 行をセット for($i=0; $i<5; $i++){ // 行 $row = new Zend\Text\Table\Row(); // カラムをセット for($j=0; $j<4; $j++){ // カラム $column = new Zend\Text\Table\Column(); // 値 $column->setContent('i:' . $i . ' j:' . $j); // colspan $column->setColSpan(1); // align $column->setAlign(Zend\Text\Table\Column::ALIGN_LEFT); // 行に追加 $row->appendColumn($column); } // カラムを直接行に追加 $row->createColumn('text', array('align'=>Column::ALIGN_CENTER)); // テーブルに追加 $table->appendRow($row); } // 表示 print($table->render());
出力は以下のようになります。
+----+------+--------+----------+----------+ |i:0 |i:0 |i:0 j:2 |i:0 j:3 | text | |j:0 |j:1 | | | | +----+------+--------+----------+----------+ |i:1 |i:1 |i:1 j:2 |i:1 j:3 | text | |j:0 |j:1 | | | | +----+------+--------+----------+----------+ |i:2 |i:2 |i:2 j:2 |i:2 j:3 | text | |j:0 |j:1 | | | | +----+------+--------+----------+----------+ |i:3 |i:3 |i:3 j:2 |i:3 j:3 | text | |j:0 |j:1 | | | | +----+------+--------+----------+----------+ |i:4 |i:4 |i:4 j:2 |i:4 j:3 | text | |j:0 |j:1 | | | | +----+------+--------+----------+----------+
出力はHTMLタグのない純粋なテキストのため、基本的にコンソールやテキスト出力用です。
また、残念ながら幅の自動調整機能がないため、わざわざTable::setColumnWidthsで設定しなければならず面倒です。
あと配列をそのまま突っ込む機能もないようです。
デコレータとして最初からAscii以外にBlankとUnicodeが用意されており、Blankを指定すると罫線のない出力が得られます。
Unicodeはよくわかりませんでした。
しかし一番欲しい人が多いであろうZend\Text\Table\Decorator\Htmlは何故か存在しませんでした。
また、何気に右端左端の'|'と中間の'|'を区別していないという暴挙のため、ちょっと凝ったデコレータを自作しようとしても作成は不可能です。
なんというファッキンな仕様。
微妙に、というか色々と使い辛いZend\Text\Tableでした。
PR