webman/console คำสั่งเสริม

webman/console ขับเคลื่อนโดย symfony/console

การติดตั้ง

composer require webman/console

คำสั่งที่รองรับ

วิธีการใช้งาน
php webman คำสั่ง
ตัวอย่างเช่น php webman version

หมายเหตุ
สำหรับระบบ Linux สามารถใช้คำง่ายๆ เป็น ./webman คำสั่ง

คำสั่งที่รองรับ

version

พิมพ์หมายเลขเวอร์ชันของ webman

route:list

พิมพ์การตั้งค่าเส้นทางปัจจุบัน

make:controller

สร้างไฟล์ควบคุม
ตัวอย่างเช่น php webman make:controller admin จะสร้างไฟล์ app/controller/AdminController.php
ตัวอย่างเช่น php webman make:controller api/user จะสร้างไฟล์ app/api/controller/UserController.php

make:model

สร้างไฟล์โมเดล
ตัวอย่างเช่น php webman make:model admin จะสร้างไฟล์ app/model/Admin.php
ตัวอย่างเช่น php webman make:model api/user จะสร้างไฟล์ app/api/model/User.php

make:middleware

สร้างไฟล์กลาง
ตัวอย่างเช่น php webman make:middleware Auth จะสร้างไฟล์ app/middleware/Auth.php

make:command

สร้างไฟล์คำสั่งที่กำหนดเอง
ตัวอย่างเช่น php webman make:command db:config จะสร้างไฟล์ app\command\DbConfigCommand.php

plugin:create

สร้างปลั๊กอินพื้นฐาน
ตัวอย่างเช่น php webman plugin:create --name=foo/admin จะสร้างไดเรกทอรี config/plugin/foo/admin และ vendor/foo/admin
ดูที่การสร้างปลั๊กอินพื้นฐาน

plugin:export

ส่งออกปลั๊กอินพื้นฐาน
ตัวอย่างเช่น php webman plugin:export --name=foo/admin
ดูที่การสร้างปลั๊กอินพื้นฐาน

plugin:export

ส่งออกปลั๊กอินที่ใช้งาน
ตัวอย่างเช่น php webman plugin:export shop
ดูที่ปลั๊กอินที่ใช้งาน

build:phar

บรรจุโครงการ webman ให้เป็นไฟล์ phar
ดูที่การบรรจุ phar

build:bin

บรรจุโครงการ webman ให้เป็นไฟล์ไบนารีที่สามารถดำเนินการได้โดยตรง
ดูที่การบรรจุ phar

คำสั่งที่กำหนดเอง

ผู้ใช้สามารถกำหนดคำสั่งของตัวเองได้ ตัวอย่างเช่น นี่คือคำสั่งที่พิมพ์การตั้งค่าฐานข้อมูล

  • ดำเนินการ php webman make:command config:mysql
  • เปิดไฟล์ app/command/ConfigMySQLCommand.php และแก้ไขให้เป็นดังนี้
<?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 = 'แสดงการตั้งค่าเซิร์ฟเวอร์ MySQL ปัจจุบัน';

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $output->writeln('ข้อมูลการตั้งค่า 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;
    }
}

การทดสอบ

รันในบรรทัดคำสั่ง php webman config:mysql

ผลลัพธ์จะคล้ายต่อไปนี้:

+-------+---------+--------+-----------+------+----------+----------+----------+-------------+---------+-----------------+--------+--------+--------+--------+---------+
| 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      |        |        |         |
+-------+---------+--------+-----------+------+----------+----------+----------+-------------+---------+-----------------+--------+--------+--------+--------+---------+

ข้อมูลเพิ่มเติม

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