El complemento de la línea de comandos webman/console

webman/console se basa en symfony/console

El complemento requiere webman>=1.2.2 webman-framework>=1.2.1

Instalación

composer require webman/console

Comandos admitidos

Uso
php webman comando o php webman comando.
Por ejemplo, php webman version o php webman version

Comandos admitidos

version

Imprime el número de versión de webman

route:list

Imprime la configuración de ruta actual

make:controller

Crea un archivo de controlador
Por ejemplo, php webman make:controller admin creará un app/controller/AdminController.php
Por ejemplo, php webman make:controller api/user creará un app/api/controller/UserController.php

make:model

Crea un archivo de modelo
Por ejemplo, php webman make:model admin creará un app/model/Admin.php
Por ejemplo, php webman make:model api/user creará un app/api/model/User.php

make:middleware

Crea un archivo de middleware
Por ejemplo, php webman make:middleware Auth creará un app/middleware/Auth.php

make:command

Crea un archivo de comando personalizado
Por ejemplo, php webman make:command db:config creará un app\command\DbConfigCommand.php

plugin:create

Crea un complemento básico
Por ejemplo, php webman plugin:create --name=foo/admin creará dos directorios config/plugin/foo/admin y vendor/foo/admin
Ver Crear complemento básico

plugin:export

Exporta un complemento básico
Por ejemplo, php webman plugin:export --name=foo/admin
Ver Crear complemento básico

plugin:export

Exporta un complemento de la aplicación
Por ejemplo, php webman plugin:export shop
Ver Complemento de la aplicación

phar:pack

Empaqueta el proyecto webman en un archivo phar
Ver Empaquetar phar

Esta característica requiere webman>=1.2.4 webman-framework>=1.2.4 webman\console>=1.0.5

Comandos personalizados

Los usuarios pueden definir sus propios comandos, por ejemplo, el siguiente comando imprime la configuración de la base de datos

  • Ejecute php webman make:command config:mysql
  • Abra app/command/ConfigMySQLCommand.php y modifíquelo de la siguiente manera
<?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 = 'Mostrar la configuración actual del servidor MySQL';

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $output->writeln('La información de configuración de MySQL es la siguiente:');
        $config = config('database');
        $headers = ['nombre', 'predeterminado', 'controlador', 'host', 'puerto', 'base de datos', 'nombre de usuario', 'contraseña', 'socket UNIX', 'juego de caracteres', 'collation', 'prefijo', 'estricto', 'motor', 'esquema', 'sslmode'];
        $rows = [];
        foreach ($config['connections'] as $name => $db_config) {
            $row = [];
            foreach ($headers as $key) {
                switch ($key) {
                    case 'nombre':
                        $row[] = $name;
                        break;
                    case 'predeterminado':
                        $row[] = $config['default'] == $name ? 'verdadero' : '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;
    }
}

Pruebas

Ejecute php webman config:mysql en la línea de comandos

El resultado se verá similar a lo siguiente:

+--------+-----------+---------+-----------+------+----------+------------+-----------+-------------+----------+-----------------+---------+---------+--------+---------+---------+
| nombre | predeterminado | controlador | host      | puerto | base de datos | nombre de usuario | contraseña | socket UNIX | juego de caracteres | collation | prefijo | estricto | motor | esquema | sslmode |
+--------+-----------+---------+-----------+------+----------+------------+-----------+-------------+----------+-----------------+---------+---------+--------+---------+---------+
| mysql  | verdadero | mysql   | 127.0.0.1 | 3306 | mysql    | root       | ******    |             | utf8     | utf8_unicode_ci   |         | 1       |        |         |         |
+--------+-----------+---------+-----------+------+----------+------------+-----------+-------------+----------+-----------------+---------+---------+--------+---------+---------+

Para más información

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