Plugin console của webman

Plugin console của webman được xây dựng trên nền symfony/console

plugin yêu cầu webman>=1.2.2 webman-framework>=1.2.1

Cài đặt

composer require webman/console

Các lệnh hỗ trợ

Cách sử dụng
php webman tên_lệnh hoặc php webman tên_lệnh.
Ví dụ php webman version hoặc php webman version

Các lệnh hỗ trợ

version

Hiển thị số phiên bản của webman

route:list

Hiển thị cấu hình định tuyến hiện tại

make:controller

Tạo một tập tin điều khiển
Ví dụ: php webman make:controller admin sẽ tạo một app/controller/AdminController.php
Ví dụ: php webman make:controller api/user sẽ tạo một app/api/controller/UserController.php

make:model

Tạo tập tin model
Ví dụ: php webman make:model admin sẽ tạo một app/model/Admin.php
Ví dụ: php webman make:model api/user sẽ tạo một app/api/model/User.php

make:middleware

Tạo tập tin middleware
Ví dụ: php webman make:middleware Auth sẽ tạo một app/middleware/Auth.php

make:command

Tạo tập tin lệnh tùy chỉnh
Ví dụ: php webman make:command db:config sẽ tạo một app\command\DbConfigCommand.php

plugin:create

Tạo một plugin cơ bản
Ví dụ: php webman plugin:create --name=foo/admin sẽ tạo hai thư mục là config/plugin/foo/adminvendor/foo/admin
Xem chi tiết tại Tạo plugin cơ bản

plugin:export

Xuất plugin cơ bản
Ví dụ: php webman plugin:export --name=foo/admin
Xem chi tiết tại Tạo plugin cơ bản

plugin:export

Xuất plugin ứng dụng
Ví dụ: php webman plugin:export shop
Xem chi tiết tại Plugin ứng dụng

phar:pack

Đóng gói dự án webman thành tập tin phar
Xem chi tiết tại Đóng gói phar

Tính năng này yêu cầu webman>=1.2.4 webman-framework>=1.2.4 webman\console>=1.0.5

Lệnh tùy chỉnh

Người dùng có thể định nghĩa các lệnh tùy chỉnh của riêng mình, ví dụ dưới đây là một lệnh để hiển thị cấu hình cơ sở dữ liệu

  • Chạy php webman make:command config:mysql
  • Mở app/command/ConfigMySQLCommand.php và sửa nội dung như sau
<?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 = 'Hiển thị cấu hình máy chủ MySQL hiện tại';

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $output->writeln('Thông tin cấu hình MySQL như sau:');
        $config = config('database');
        $headers = ['tên', 'mặc định', 'driver', 'máy chủ', 'port', 'cơ sở dữ liệu', 'tên người dùng', 'mật khẩu', 'unix_socket', 'bảng mã', 'đối chiếu', 'tiền tố', 'nghiêm ngặt', '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 ? 'đúng' : 'sai';
                        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;
    }
}

Kiểm tra

Chạy lệnh dòng lệnh php webman config:mysql

Kết quả sẽ tương tự như sau:

+-------+---------+--------+-----------+------+----------+----------+----------+-------------+---------+-----------------+--------+--------+--------+--------+---------+
| tên   | mặc định | driver | máy chủ    | cổng | cơ sở dữ liệu | tên người dùng | mật khẩu | unix_socket | bảng mã | đối chiếu       | tiền tố | nghiêm ngặt | engine | schema | sslmode |
+-------+---------+--------+-----------+------+----------+----------+----------+-------------+---------+-----------------+--------+--------+--------+--------+---------+
| mysql | true    | mysql  | 127.0.0.1 | 3306 | mysql    | root     | ******   |             | utf8    | utf8_unicode_ci |        | 1      |        |        |         |
+-------+---------+--------+-----------+------+----------+----------+----------+-------------+---------+-----------------+--------+--------+--------+--------+---------+

Tham khảo thêm

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