Download the PHP package survos/tui-extras-bundle without Composer
On this page you can find all versions of the php package survos/tui-extras-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package tui-extras-bundle
survos/tui-extras-bundle
Extra TUI widgets and data-source abstractions for symfony/tui — the terminal UI component shipping in Symfony 8.1.
Status: 0.1 — beta. Tracks
symfony/tui ^8.1which is itself experimental. Widgets are usable and the file browser works end-to-end. APIs may shift before 1.0.
What's in the box
Widgets
| Widget | What it does |
|---|---|
DataTableWidget |
Paged, searchable, sortable data table. Live search, FTS5-aware. |
TreeWidget |
Collapsible tree — ▼/► branches, ── leaves. Keyboard navigate. |
DetailPanelWidget |
Read-only text/code pane with title and separator. |
All bundled browsers opt into mouse reporting. The scroll wheel moves through
the focused TreeWidget or DataTableWidget; keyboard navigation remains
available. Mouse mode is disabled in a finally block when the TUI exits so
normal terminal scrollback and text selection are restored.
Applications can enable the same behavior for custom widgets by implementing
MouseAwareInterface and running the TUI through MouseInput:
Data sources (TuiTableSourceInterface)
| Source | Backed by |
|---|---|
ArrayTableSource |
Plain PHP array, in-memory filter/sort |
SqliteTableSource |
PDO + SQLite with optional FTS5 full-text search |
FileSource |
Symfony Finder — respects .gitignore by default |
Syntax highlighting (SyntaxHighlighter)
- Uses
bat/batcatif installed (200+ languages, themes) - PHP fallback via
token_get_all()— zero extra deps - JSON fallback via stdlib pretty-print + hand-rolled tokenizer
- Markdown via
MarkdownWidget(league/commonmark + tempest/highlight)
Requirements
- PHP 8.1+
symfony/tui ^8.1(currently8.1.x-dev)league/commonmark ^2.0(for Markdown rendering)tempest/highlight ^2.0(for code blocks within Markdown)
Installation
Register in your config/bundles.php (or let Flex do it):
HTTP-less apps (
AbstractKernel+KernelTrait+ConsoleBundle, noFrameworkBundle): the bundle works without an HTTP kernel. See thedemo/directory for a minimal setup.
The file browser
The fastest way to see the bundle in action:
Keybindings:
| Key | Action |
|---|---|
↑ / ↓ / j / k |
Navigate |
→ |
Expand directory |
← |
Collapse (or jump to parent) |
Enter / Space |
Toggle directory / preview file |
q / ctrl+c |
Quit |
Preview updates instantly as you navigate — no Enter required for files. PHP and JSON files are syntax-highlighted. Markdown files render with full formatting.
FTS5 full-text search demo
Type / then str_ to filter to all string functions instantly. Uses an in-memory
SQLite database with an FTS5 virtual table — the same pattern FolioRowTableSource
uses in survos/folio-bundle.
Building a split-pane browser
Building a DataTable with SQLite FTS5
TuiTableSourceInterface
Implement this to make any data source browsable:
Built-in implementations: ArrayTableSource, SqliteTableSource, FileSource.
Adapters in other bundles: FolioRowTableSource (survos/folio-bundle), JsonlTableSource (survos/jsonl-bundle, planned).
Roadmap
- [ ]
browse:commands—vendor/bin/browsecommand browser (tree of namespaces + full--helpin detail pane) - [ ]
FolioRowTableSource— FTS5-backed browser for survos/folio-bundle - [ ]
MeilisearchTableSource+browse:meili— live Meilisearch browser - [ ] Generic SQLite schema browser (squall-style: table tree + row DataTable)
- [ ] PHAR packaging via humbug/box (
vendor/bin/browse)
License
MIT
All versions of tui-extras-bundle with dependencies
league/commonmark Version ^2.0
survos/kit-bundle Version ^2.8
symfony/finder Version ^8.1
symfony/tui Version ^8.1
tempest/highlight Version ^2.0
symfony/console Version ^8.1