Get support for yiisoft/yii-console
If you're new to LTH, please see our FAQ for more information on what it is we do.
Support Options
Unfortunately, there are currently no active helpers for this repository on the platform. Until they become available, we reccomend the following actions:
View Open IssuesTake a look to see if anyone else has experienced the same issue as you and if they managed to solve it.
Open an IssueMake sure to read any relevant guidelines for opening issues on this repo before posting a new issue.
Sponsor directlyCheck out the page and see if there are any options to sponsor this project or it's developers directly.
yiisoft/yii-console
Yii Console package provides a console that could be added to an application. This console is based on Symfony Console. The following extra features are added:
- lazy command loader;
-
SymfonyEventDispatcher
class that allows to use any PSR-14 compatible event dispatcher with Symfony console; -
ErrorListener
for logging console errors to any PSR-3 compatible logger; - console command
serve
that runs PHP built-in web server; - raises events
ApplicationStartup
andApplicationShutdown
in console application; - class
ExitCode
that contains constants for defining console command exit codes; -
ConsoleBufferedOutput
that wrapsConsoleOutput
and buffers console output.
Requirements
- PHP 8.0 or higher.
Installation
The package could be installed with Composer:
composer require yiisoft/yii-console
General usage
In case you use one of Yii 3 standard application templates, console could be accessed as ./yii <command>
.
If not, then in the simplest use case in your console entry script do the following:
#!/usr/bin/env php
<?php
declare(strict_types=1);
use Yiisoft\Di\Container;
use Yiisoft\Di\ContainerConfig;
use Yiisoft\Yii\Console\Application;
use Yiisoft\Yii\Console\CommandLoader;
require_once __DIR__ . '/vendor/autoload.php';
$app = new Application();
$app->setCommandLoader(new CommandLoader(
// Any container implementing `Psr\Container\ContainerInterface` for example:
new Container(ContainerConfig::create()),
// An array with command names as keys and service IDs as values:
['my/custom' => MyCustomCommand::class],
));
$app->run();
Since \Yiisoft\Yii\Console\CommandLoader
uses lazy loading of commands, it's necessary
to specify the name and description in static properties when creating a command:
use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Command\Command;
use Yiisoft\Yii\Console\ExitCode;
#[AsCommand(
name: 'my:custom',
description: 'Description of my custom command.'
)]
final class MyCustomCommand extends Command
{
protected function configure(): void
{
// ...
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
// ...
return ExitCode::OK;
}
}
Run the console entry script with your command:
your-console-entry-script my/custom
When naming commands use
:
as a separator. For example:user:create
,user:delete
, etc.
Since the package is based on Symfony Console component, refer to its documentation for details on how to use the binary and create your own commands.
Aliases and hidden commands
To configure commands, set the names and aliases in \Yiisoft\Yii\Console\CommandLoader
configuration.
Names and aliases from the command class itself are always ignored.
The command can be marked as hidden by prefixing its name with |
.
'yiisoft/yii-console' => [
'commands' => [
'hello' => Hello::class, // name: 'hello', aliases: [], hidden: false
'start|run|s|r' => Run::class, // name: 'start', aliases: ['run', 's', 'r'], hidden: false
'|hack|h' => Hack::class, // name: 'hack', aliases: ['h'], hidden: true
],
],
Runs PHP built-in web server
You can start local built-in web development server using the command:
./yii serve
Your application will be accessible in your web browser at http://localhost:8080 by default.
To configure default settings, set the options in \Yiisoft\Yii\Console\CommandLoader
configuration.
'yiisoft/yii-console' => [
'serve' => [
'appRootPath' => null,
'options' => [
'address' => '127.0.0.1',
'port' => '8080',
'docroot' => 'public',
'router' => 'public/index.php',
],
],
],
Alternatively, you can pass the settings through the console options.
Tip: To run a web server with XDebug enabled, pass
--xdebug 1
to the command.
To see the available options, run ./yii serve --help
.
Documentation
If you need help or have a question, the Yii Forum is a good place for that. You may also check out other Yii Community Resources.
License
The Yii Console is free software. It is released under the terms of the BSD License.
Please see LICENSE
for more information.
Maintained by Yii Software.
Support the project
Follow updates
Our Mission
We want to make open source more sustainable. The entire platform was born from this and everything we do is in aid of this.
From the Blog
Interesting Articles
-
Generating income from open source
Jun 23 • 8 min read
-
2023 State of OSS
Apr 23 • 45 min read ★
-
A funding experiment...
Aug 19 • 10 min read
-
But You Said I could
Aug 19 • 2 min read
Thank you for checking out LiveTechHelper |
2025 © lth-dev incorporated
p-e622a1a2