Printing trees

TreePrinter::print() returns box-drawing output for a TreeNode. The root name is omitted, leaving only its descendants.

<?php
use Alto\Tree\Printer\TreePrinter;

$output = (new TreePrinter())->print($tree, [
    'show_hidden' => false,
    'pattern' => '*.php',
    'max_depth' => 3,
    'sort_by' => 'name',
    'sort_order' => 'asc',
]);

Available filters are show_hidden, files_only, dirs_only, pattern, and max_depth. Sort by name, size, date, or type, in asc or desc order.

Metadata output is meaningful when the tree was built from the filesystem with with_metadata enabled:

<?php
$output = (new TreePrinter())->print($tree, [
    'show_size' => true,
    'show_date' => true,
    'show_permissions' => true,
]);

Set colors to true to color directory names blue for terminal output.

PrinterOptions::fromArray() converts the option array into an immutable object. The public printer accepts the array directly.