simplette / console
Simple bridge for Nette Framework and Symfony Console.
Requires
- php: >=5.6
- nette/bootstrap: ~2.4
- nette/di: ~2.4
- symfony/console: ~2.8|~3.0
This package is auto-updated.
Last update: 2021-04-09 22:51:34 UTC
README
Symfony Console is probably the most common console component for PHP language. Thank to this library, you can simply use it in Nette Framework with composer command.
This library was inspired by Symfony Console implementation by Kbyby and Joseki.
Requirements
This library requires PHP 5.6 or higher. Simplette Console library is designed for Nette Framework version 2.4 and higher.
Installation
The best way to install this library is using Composer:
$ composer require simplette/console
Documentation
Firstly, register extension Simplette\Console\DI\ConsoleExtension
. For more information
about configuration see the class definition. This library is meant to be simply as possible.
However, some features would be added in the future, so stay tuned.
extension: console: Simplette\Console\DI\ConsoleExtension
This console implementation support also debugMode
and correct setting of it. For this
support, you have to call Simplette\Console\DI\BootstrapHelper::setupMode
in your
app/bootstrap.php
.
Callable is used for the web environment setting. In the console commands, the mode is
set by checking of the --debug
parameter. For compatibility, there is defined more
parameters that can turn on debug mode.
<?php use Simplette\Console\DI\BootstrapHelper; require __DIR__ . '/../vendor/autoload.php'; $configurator = new Nette\Configurator; BootstrapHelper::setupMode($configurator, function () use ($configurator) { // $configurator->setDebugMode('23.75.345.200'); // enable for your remote IP }); $configurator->enableTracy(__DIR__ . '/../log');
Do not forget to call $configurator->enableTracy()
after setupMode
. This will resolve
all your problems with logging.
Console commands can be defined as is described in documentation. Every command has
to be registered in your di services and identified by tag console.command
.
services: - class: App\Commands\TestCommand tags: [console.command]
Name of the tag can be configured in extension. And you can even define your own console application:
console: application: App\Console\MyAwesomeConsoleApplication tag: mycommand
Best Practices
Command definition in services can be really annoying. You can simplify this step using Nette Decorator, for more information read this awesome article. For simplifying commands definition use this:
decorator: Symfony\Component\Console\Command\Command: tags: [console.command] inject: yes services: - App\Commands\MyCommand
Simplette Console has also implemented bin
command for composer
. So for run your
console command, you can simply type:
$ composer exec console mycommad
Contributing
This is an open source, community-driven project. If you would like to contribute, please follow the code format as used in current sources and submit a pull request.
Advanced documentation will be added in the future. But if you look on my source codes, you will understand what you can do with this small (but powerful) library.
See also other libraries and some older work if you are looking for inspiration.