如何实现 laravel 的artisan

互联网 20-10-22
下面由Laravel教程栏目给大家介绍实现 laravel 的artisan 的方法,希望对需要的朋友有所帮助!

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

新建目录

-artisan

--bin

--src

进入artisan composer init

composer require symfony/console

#!/usr/bin/env php <?php  use Symfony\Component\Console\Application; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface;  require_once __DIR__.'/../vendor/autoload.php';  $app = new Application('artisan','1.1.1');  $app->register('artisan')->setCode(function(InputInterface $input, OutputInterface $output){     $output->writeln('artisan start'); });  $app->run();  exit();  以上是简单的实现
#!/usr/bin/env php <?php  use Symfony\Component\Console\Application; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Input\InputArgument;  require_once __DIR__ . '/../vendor/autoload.php';  $app = new Application('artisan', '1.1.1');  $app->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 <?php  use Symfony\Component\Console\Application; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputOption;  require_once __DIR__ . '/../vendor/autoload.php';  $app = new Application('artisan', '1.1.1');  $app->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("<info>hello {$name}</info>"); $output->writeln("<error>hello {$name}</error>"); $output->writeln("<comment>hello {$name}</comment>"); $output->writeln("hello {$name}");  可以给它们加上颜色

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

bin/artisan.php

ArtisanCommand.php

#!/usr/bin/env php <?php  use Symfony\Component\Console\Application; use Artisan\ArtisanCommand; require_once __DIR__ . '/../vendor/autoload.php';  $app = new Application('artisan', '1.1.1');  $app->add(new ArtisanCommand());  $app->run();  exit();   ArtisanCommand.php
<?php namespace Artisan;  use Symfony\Component\Console\Application; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Command\Command;  class ArtisanCommand extends Command{     public function configure()     {         $this->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("<info>hello {$name}</info>");         $output->writeln("<error>hello {$name}</error>");         $output->writeln("<comment>hello {$name}</comment>");         $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"         }     } }  至此大功告成,还有其他功能可以去看Symfony文档

以上就是如何实现 laravel 的artisan的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: laravel
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:分享laravel-echo-server广播服务搭建

相关资讯