Le plugin de ligne de commande webman/console

webman/console est basé sur symfony/console

Le plugin nécessite webman>=1.2.2 et webman-framework>=1.2.1

Installation

composer require webman/console

Commandes Supportées

Utilisation
php webman commande ou php webman commande
Par exemple php webman version ou php webman version

Commandes Supportées

version

Affiche le numéro de version de webman

route:list

Affiche la configuration actuelle des routes

make:controller

Crée un fichier de contrôleur
Par exemple, php webman make:controller admin créera un fichier app/controller/AdminController.php
Par exemple, php webman make:controller api/user créera un fichier app/api/controller/UserController.php

make:model

Crée un fichier de modèle
Par exemple, php webman make:model admin créera un fichier app/model/Admin.php
Par exemple, php webman make:model api/user créera un fichier app/api/model/User.php

make:middleware

Crée un fichier middleware
Par exemple, php webman make:middleware Auth créera un fichier app/middleware/Auth.php

make:command

Crée un fichier de commande personnalisée
Par exemple, php webman make:command db:config créera un fichier app\command\DbConfigCommand.php

plugin:create

Crée un plugin de base
Par exemple, php webman plugin:create --name=foo/admin créera deux répertoires, config/plugin/foo/admin et vendor/foo/admin
Voir Créer un plugin de base

plugin:export

Exporte un plugin de base
Par exemple, php webman plugin:export --name=foo/admin
Voir Créer un plugin de base

plugin:export

Exporte un plugin d'application
Par exemple, php webman plugin:export shop
Voir Plugin d'application

phar:pack

Packager le projet webman en fichier phar
Voir Emballage phar

Cette fonctionnalité nécessite webman>=1.2.4, webman-framework>=1.2.4 et webman/console>=1.0.5

Commandes personnalisées

Les utilisateurs peuvent définir leurs propres commandes, par exemple le suivant est une commande pour afficher la configuration de la base de données.

  • Exécuter php webman make:command config:mysql
  • Ouvrir app/command/ConfigMySQLCommand.php et le modifier comme suit
<?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 = 'Affiche la configuration actuelle du serveur MySQL';

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $output->writeln('Informations de configuration de MySQL :');
        $config = config('database');
        $headers = ['name', 'default', 'driver', 'host', 'port', 'database', 'username', 'password', 'unix_socket', 'charset', 'collation', 'prefix', 'strict', 'engine', 'schema', 'sslmode'];
        $rows = [];
        foreach ($config['connections'] as $name => $db_config) {
            $row = [];
            foreach ($headers as $key) {
                switch ($key) {
                    case 'name':
                        $row[] = $name;
                        break;
                    case 'default':
                        $row[] = $config['default'] == $name ? 'true' : 'false';
                        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

Exécutez php webman config:mysql en ligne de commande

Le résultat sera similaire à :

+-------+---------+--------+-----------+------+----------+----------+----------+-------------+---------+-----------------+--------+--------+--------+--------+---------+
| name  | default | driver | host      | port | database | username | password | unix_socket | charset | collation       | prefix | strict | engine | schema | sslmode |
+-------+---------+--------+-----------+------+----------+----------+----------+-------------+---------+-----------------+--------+--------+--------+--------+---------+
| mysql | true    | mysql  | 127.0.0.1 | 3306 | mysql    | root     | ******   |             | utf8    | utf8_unicode_ci |        | 1      |        |        |         |
+-------+---------+--------+-----------+------+----------+----------+----------+-------------+---------+-----------------+--------+--------+--------+--------+---------+

Pour plus d'informations

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