https://github.com/ghostwriter/cli
[WIP]Provides a micro-framework for building CLI tools in PHP.
https://github.com/ghostwriter/cli
cli cli-wrapper ghostwriter
Last synced: 2 months ago
JSON representation
[WIP]Provides a micro-framework for building CLI tools in PHP.
- Host: GitHub
- URL: https://github.com/ghostwriter/cli
- Owner: ghostwriter
- License: bsd-3-clause
- Created: 2024-09-11T18:26:04.000Z (8 months ago)
- Default Branch: 0.1.x
- Last Pushed: 2025-03-15T18:25:57.000Z (2 months ago)
- Last Synced: 2025-03-15T19:28:04.085Z (2 months ago)
- Topics: cli, cli-wrapper, ghostwriter
- Language: PHP
- Homepage: https://github.com/ghostwriter/cli
- Size: 296 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# Cli
[](https://github.com/sponsors/ghostwriter)
[](https://github.com/ghostwriter/cli/actions/workflows/automation.yml)
[](https://www.php.net/supported-versions)
[](https://packagist.org/packages/ghostwriter/cli)Provides a micro-framework for building CLI tools in PHP.
> [!WARNING]
>
> This project is not finished yet, work in progress.## Installation
You can install the package via composer:
``` bash
composer require ghostwriter/cli
```### Star ⭐️ this repo if you find it useful
You can also star (🌟) this repo to find it easier later.
## Usage
```php
env['GITHUB'] = $this->token;return $handler->handle($command);
}
}#[Application(
package: 'ghostwriter/architect',
commands: [NewCommand::class, HelpCommand::class, ListCommand::class],
middlewares: [GitHubAuthMiddleware::class]
)]
final class Architect
{
// Default options available in all subcommands (help, version)
#[Option(short: 'h', long: 'help', help: 'Show help')]
public bool $help = false;#[Option(short: 'v', long: 'version', help: 'Show version')]
public bool $version = false;
// Custom optional options (with default values)
#[Option(short: 'b', long: 'bool', help: 'Set the boolean flag')]
public bool $bool = false;
#[Option(short: 'f', long: 'float', help: 'Set the float to ')]
public float $float = 0.0;
#[Option(short: 'i', long: 'int', help: 'Set the integer to ')]
public int $int = 0;
#[Option(short: 's', long: 'string', help: 'Set the string to ')]
public string $string = '#BlackLivesMatter';
#[Option(short: 'l', long: 'list', help: 'Set the list to ')]
public array $list = [];
#[Option(short: 'n', long: 'null', help: 'Set the null to ')]
public ?string $null = null;
// Custom required options
#[Option(short: 'r', long: 'required', help: 'Set the required to ', required: true)]
public string $required;
// Required arguments
#[Argument(help: 'Project name')]
public string $project;
// Optional arguments (with default values)
#[Argument(help: 'Project directory')]
public string $directory = '.';
}$exitCode = \GhostWriter\Cli\Application::new(Architect::class)->run($_SERVER['argv']);
exit($exitCode);
```### Credits
- [Nathanael Esayeas](https://github.com/ghostwriter)
- [All Contributors](https://github.com/ghostwriter/cli/contributors)### Changelog
Please see [CHANGELOG.md](./CHANGELOG.md) for more information on what has changed recently.
### License
Please see [LICENSE](./LICENSE) for more information on the license that applies to this project.
### Security
Please see [SECURITY.md](./SECURITY.md) for more information on security disclosure process.