怎么实现laravel的artisan

小编给大家分享一下怎么实现laravel的artisan,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

创新互联公司为企业级客户提高一站式互联网+设计服务,主要包括成都网站设计、做网站、成都app软件开发小程序开发、宣传片制作、LOGO设计等,帮助客户快速提升营销能力和企业形象,创新互联各部门都有经验丰富的经验,可以确保每一个作品的质量和创作周期,同时每年都有很多新员工加入,为我们带来大量新的创意。 

laravel 的 artisan 命令行太好用了,换个框架没有这个功能,于是自己学习实现一些,直接上代码

新建目录

-artisan

--bin

--src

进入artisan composer init

composer require symfony/console

#!/usr/bin/env php
register('artisan')->setCode(function(InputInterface $input, OutputInterface $output){
    $output->writeln('artisan start');
});

$app->run();

exit();

以上是简单的实现
#!/usr/bin/env php
register('artisan')
    ->setDescription('myself artisan description')
    ->setCode(
        function (InputInterface $input, OutputInterface $output) {
            $name = $input->getArgument('name');
            $output->writeln("hello {$name}");
        }
    )->addArgument('name', InputArgument::REQUIRED, 'please input your name');

$app->run();

exit();

这里演示了如何接收参数
#!/usr/bin/env php
register('artisan')
    ->setDescription('myself artisan description')
    ->setCode(
        function (InputInterface $input, OutputInterface $output) {
            $string = $input->getOption('string');
            $name = $input->getArgument('name');
            if($string == 'lower'){
                $name = strtolower($name);
            }
            if($string == 'upper'){
                $name = strtoupper($name);
            }
            $output->writeln("hello {$name}");
        }
    )->addArgument('name', InputArgument::REQUIRED, 'please input your name')
    ->addOption('string',null,InputOption::VALUE_OPTIONAL,'转换字符串大小','lower')
;

$app->run();

exit();

这里演示了如何给命令行添加选项 ./bin/artisan.php artisan ffff --string='upper'   echo  FFFF
$output->writeln("hello {$name}");
$output->writeln("hello {$name}");
$output->writeln("hello {$name}");
$output->writeln("hello {$name}");

可以给它们加上颜色

怎么实现laravel的artisan

接下来将命令行拆分为文件

怎么实现laravel的artisan

bin/artisan.php

ArtisanCommand.php

#!/usr/bin/env php
add(new ArtisanCommand());

$app->run();

exit();


ArtisanCommand.php
setName('artisan');
        $this->setDescription('myself artisan description')
        ->addArgument('name', InputArgument::REQUIRED, 'please input your name')
        ->addOption('string',null,InputOption::VALUE_OPTIONAL,'转换字符串大小','lower');
    }

    public function execute(InputInterface $input, OutputInterface $output)
    {
        $string = $input->getOption('string');
        $name = $input->getArgument('name');
        if($string == 'lower'){
            $name = strtolower($name);
        }
        if($string == 'upper'){
            $name = strtoupper($name);
        }
        $output->writeln("hello {$name}");
        $output->writeln("hello {$name}");
        $output->writeln("hello {$name}");
        $output->writeln("hello {$name}");
    }
}
composer.json
{
    "name": "baidu/artisan",
    "authors": [
        {
            "name": "gaobingbing",
            "email": "v_gaobingbing01@baidu.com"
        }
    ],
    "require": {
        "symfony/console": "^4.3"
    },
    "autoload":  {
        "psr-4": {
            "Artisan\\": "src"
        }
    }
}

看完了这篇文章,相信你对怎么实现laravel的artisan有了一定的了解,想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


网站栏目:怎么实现laravel的artisan
URL地址:http://abwzjs.com/article/jhoihd.html