nixphp / cli
NixPHP CLI Plugin for console applications.
Installs: 8
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:nixphp-plugin
Requires
- php: >=8.3
- ext-readline: *
- nixphp/framework: dev-main
Requires (Dev)
- phpunit/php-code-coverage: ^12.1
- phpunit/phpunit: ^12.1
This package is auto-updated.
Last update: 2025-05-31 14:30:00 UTC
README
nixphp/cli
A minimal, developer-friendly command-line interface for your NixPHP application.
This plugin gives you a clean CLI system with colored output, argument parsing, and auto-discovered commands. All without external dependencies.
๐งฉ Part of the official NixPHP plugin collection. Install it if you want powerful CLI tools for development, deployment, and automation.
๐ฆ Features
โ
Adds vendor/bin/nix
as your appโs command-line entry point
โ
Auto-discovers commands in app/Commands/
โ
Supports arguments, options, and interactive input
โ
Prints colored output for better UX
โ
Fully extensible โ build your own tools and workflows
๐ฅ Installation
composer require nixphp/cli
This will create vendor/bin/nix
, your CLI gateway.
๐ Usage
๐ Run a command
vendor/bin/nix your:command
Commands are discovered automatically if placed in your appโs app/Commands/
directory.
vendor/bin/nix
If you call the helper without arguments, it prints all available CLI commands.
๐ ๏ธ Create a custom command
To create your own CLI command, add a class in the app/Commands/
folder:
namespace App\Commands; use NixPHP\Cli\Core\AbstractCommand; use NixPHP\Cli\Core\Input; use NixPHP\Cli\Core\Output; class HelloCommand extends AbstractCommand { public const NAME = 'hello:say'; protected function configure(): void { $this->setTitle('Say Hello'); $this->addArgument('name'); } public function run(Input $input, Output $output): int { $name = $input->getArgument('name'); $output->writeLine("Hello, {$name}!", 'ok'); return static::SUCCESS; } }
No registration needed โ as long as the class resides in app/Commands/
, it will be picked up automatically.
Then run:
vendor/bin/nix hello:say John
๐จ Colored output
Use $output->writeLine()
to print messages with color support:
Type | Appearance |
---|---|
'ok' |
โ Green |
'error' |
โ Red |
'warning' |
โ ๏ธ Yellow |
'title' |
๐ก Light green on black |
'headline' |
๐ข Light blue on black |
You can also draw horizontal lines:
$output->drawStroke(30);
๐งช Interactive input
You can prompt the user:
$name = $input->ask('What is your name?');
๐ File structure
A typical CLI setup might look like this:
app/
โโโ Commands/
โโโ HelloCommand.php
vendor/
โโโ bin/
โโโ nix
bootstrap.php
โ Requirements
nixphp/framework
>= 1.0- PHP >= 8.1
๐ License
MIT License.