Skip to content

nixphp/cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

NixPHP CLI Plugin

← Back to NixPHP


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.

About

NixPHP CLI Plugin for console aimed applications

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages