Plugin della riga di comando webman/console

webman/console si basa su symfony/console

Il plug-in richiede webman>=1.2.2 webman-framework>=1.2.1

Installazione

compositore richiede webman/console

Comandi supportati

Uso
php webman comando o php webman comando.
Ad esempio php webman versione o php webman versione

Comandi supportati

versione

Stampa il numero di versione di webman

route:list

Stampa la configurazione del percorso corrente

make:controller

Crea un file controller
Ad esempio php webman make:controller admin creerà un app/controller/AdminController.php
Ad esempio php webman make:controller api/user creerà un app/api/controller/UserController.php

make:model

Crea un file model
Ad esempio php webman make:model admin creerà un app/model/Admin.php
Ad esempio php webman make:model api/user creerà un app/api/model/User.php

make:middleware

Crea un file middleware
Ad esempio php webman make:middleware Auth creerà un app/middleware/Auth.php

make:command

Crea un file di comando personalizzato
Ad esempio php webman make:command db:config creerà un app\command\DbConfigCommand.php

plugin:create

Crea un plugin di base
Ad esempio php webman plugin:create --name=foo/admin creerà due directory config/plugin/foo/admin e vendor/foo/admin
Vedere Creazione di un plugin di base

plugin:export

Esporta un plugin di base
Ad esempio php webman plugin:export --name=foo/admin
Vedere Creazione di un plugin di base

plugin:export

Esporta un plugin dell'applicazione
Ad esempio php webman plugin:export shop
Vedere Plugin dell'applicazione

phar:pack

Imballa il progetto webman in un file phar
Vedere Imballaggio phar

Questa funzionalità richiede webman>=1.2.4 webman-framework>=1.2.4 webman\console>=1.0.5

Comandi personalizzati

Gli utenti possono definire i propri comandi, ad esempio il seguente comando stampa la configurazione del database

  • Eseguire php webman make:command config:mysql
  • Aprire app/command/ConfigMySQLCommand.php e modificarlo come segue
<?php

namespace app\command;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Helper\Table;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

class ConfigMySQLCommand extends Command
{
    protected static $defaultName = 'config:mysql';
    protected static $defaultDescription = 'Mostra la configurazione corrente del server MySQL';

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $output->writeln('Ecco le informazioni di configurazione di MySQL:');
        $config = config('database');
        $headers = ['nome', 'predefinito', 'driver', 'host', 'porta', 'database', 'nome utente', 'password', 'unix_socket', 'charset', 'collation', 'prefisso', 'rigoroso', 'motore', 'schema', 'modo ssl'];
        $rows = [];
        foreach ($config['connections'] as $name => $db_config) {
            $row = [];
            foreach ($headers as $key) {
                switch ($key) {
                    case 'nome':
                        $row[] = $name;
                        break;
                    case 'predefinito':
                        $row[] = $config['default'] == $name ? 'vero' : 'falso';
                        break;
                    default:
                        $row[] = $db_config[$key] ?? '';
                }
            }
            if ($config['default'] == $name) {
                array_unshift($rows, $row);
            } else {
                $rows[] = $row;
            }
        }
        $table = new Table($output);
        $table->setHeaders($headers);
        $table->setRows($rows);
        $table->render();
        return self::SUCCESS;
    }
}

Test

Esegui il comando da riga di comando php webman config:mysql

Il risultato sarà simile a quanto segue:

+-------+---------+--------+-----------+------+----------+----------+----------+-------------+---------+-----------------+--------+--------+--------+--------+---------+
| nome  | predefinito | driver | host      | porta | database | nome utente | password | unix_socket | charset | collation       | prefisso | rigoroso | motore | schema | modo ssl |
+-------+---------+--------+-----------+------+----------+----------+----------+-------------+---------+-----------------+--------+--------+--------+--------+---------+
| mysql | vero    | mysql  | 127.0.0.1 | 3306 | mysql    | root     | ******   |             | utf8    | utf8_unicode_ci |        | 1      |        |        |         |
+-------+---------+--------+-----------+------+----------+----------+----------+-------------+---------+-----------------+--------+--------+--------+--------+---------+

Ulteriori informazioni

http://www.symfonychina.com/doc/current/components/console.html