Getting started

Build a tree from known paths, then print its hierarchy.

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

$tree = TreeBuilder::fromPaths([
    'project/src/Controller/HomeController.php',
    'project/src/Entity/User.php',
    'project/tests/HomeControllerTest.php',
], 'project');

echo (new TreePrinter())->print($tree);

The printer returns:

├── src
│   ├── Controller
│   │   └── HomeController.php
│   └── Entity
│       └── User.php
└── tests
    └── HomeControllerTest.php

The root is a Tree; every other entry is a TreeNode. Nodes expose their full path, basename name, directory flag, children keyed by name, and optional metadata.

Continue with Building for other sources or Printing for filters and metadata.