webman/console कमांड लाइन प्लगइन

webman/console आधारित है symfony/console

स्थापना

composer require webman/console

समर्थित कमांड

उपयोग विधि
php webman कमांड
उदाहरण php webman version

स्पष्टता
लिनक्स सिस्टम में इसे सरलता से ./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

एक 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