如何在yaf中使用redis cli 命令行行即cli模式

本文转自:/chunguang/p/5660074.html
Artisan是Laravel自带的命令行接口名称,它提供了很多有用的命令想要查看所有可用的Artisan命令,可使用list命令查看:
php&artisan&list
每个命令都可以用help指令显示命令描述及命令参数和选项。想要查看帮助界面,只需要在命令前加上help就可以了,例如:
php&artisan&help&migrate
除了Artisan提供的命令之外,还可以构建自己的命令。可以将自定义命令存放在app/Console/Commands目录;当然,也可以自己选择存放位置,只要改命令可以基于composer.json被自动加载。
要创建一个新命令,可以使用Artisan命令make:console,比如我要创一个发送邮件的artisan命令,可以这样:
php&artisan&make:console&SendEmails
上述命令将会生成一个类app/Console/Commands/SendEmails.php,当创建命令时,--command选项可用于分配终端命令名(在终端调用命令时用):
php&artisan&make:console&SendEmails&--command=emails:send
命令生成以后,需要填写该类的signature和description属性,这两个属性在调用list显示命令的时候会被用到。handle方法在命令执行时被调用,可以将所有命令逻辑都放在这个方法里面,我们可以在命令控制器的构造函数中注入任何依赖.这个SendEmails.php里面内容参考如下:
&?php&namespace&App\Console\C
use&Illuminate\Console\C
class&SendEmails&extends&Command&{
&&&&protected&$name&=&'emails:send';
&&&&protected&$description&=&'这是发邮件的命令.';
&&&&public&function&__construct()
&&&&&&&&parent::__construct();
&&&&public&function&handle()
$name是这个命令的名称,即artisan调用时的命令,如本例命令设为了emails:send,那么实际调用时要这么用:
php&artisan&emails:send
执行上面这条命令就是执行handle()方法,当然,这里还漏了一个非常重要的关键步骤,那就是需要把命令注入到app/Console/Kernel.php文件中,否则这个命令artisan是找不到的,示例如下:
&?php&namespace&App\C
use&Illuminate\Console\Scheduling\S
use&Illuminate\Foundation\Console\Kernel&as&ConsoleK
class&Kernel&extends&ConsoleKernel&{
&&&&protected&$commands&=&[
&&&&&&&&'App\Console\Commands\Inspire',
&&&&&&&&'App\Console\Commands\SendEmails',
&&&&protected&function&schedule(Schedule&$schedule)
&&&&&&&&$schedule-&command('inspire')
&&&&&&&&&&&&&&&&&-&hourly();
关键就是在$commands里面把要用到的SendEmails类放进去,好了,这样就可以通过artisan命令来执行脚本了.
由于artisan命令需要在Laravel的目录里面才能执行,所以实际要用crontab调用artisan命令时需要注意Crontab的shell代码要这样写,切记非常重要,否则是执行了不会运行实际处理逻辑的.
30&1&*&*&*&&&&php&/www/projects/laravelapp/artisan&emails:send
上面/www/projects/laravelapp/是项目的路径
定时任务:
Laravel有内置命令调度器,可以方便的实现Cron.
任务调度定义在app/Console/Kernel.php文件的schedule方法中,该方法已经包含了一个示例.Laravel里有两种方法执行Cron,第一种方法是让Cron每分钟调用Laravel命令调度,然后让Laravel来根据具体的命令来实现;需要在crontab里面加入如下内容:
*&*&*&*&*&php&/path/to/artisan&schedule:run&1&&&/dev/null&2&&1
然后在上面的Kernel.php的schedule中添加任务
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2437次
排名:千里之外
原创:32篇
转载:13篇
(4)(6)(4)(4)(10)(2)(6)(3)(5)(1)(1)PHP中CLI命令行模式接受参数的方法-Php函数-Php教程-壹聚教程网PHP中CLI命令行模式接受参数的方法
PHP CLI模式开发不需要任何一种Web服务器(包括Apache或MS IIS等),这样,CLI可以运行在各种场合,下面我就来简单的介绍一下php cli命令的用法。
PHP CLI(命令行模式下)接受参数有多种方法:
(1)使用$argv接受参数
//变量仅在 register_argc_argv 打开时可用。
print_r($argc); //CLI下获取参数的数目,最小值为1
print_r($argv); //CLI下传递给脚本的参数数组,第一个参数总是当前脚本的文件名,因此 $argv[0] 就是脚本文件名。
PHP CLI下接受参数的几种方法(2)使用getopt()函数获取参数
//获取 -a -b -c参数
$args = getopt('a:b:c:');
print_r($args);
执行结果:
使用getopt获取cli参数
上一页: &&&&&下一页:相关内容利用Apache的CLI来处置命令行 - Apache当前位置:& &&&利用Apache的CLI来处置命令行利用Apache的CLI来处置命令行&&网友分享于:&&浏览:5次利用Apache的CLI来处理命令行
CLI是Jakarta Commons中的一个子类。如果你仅仅只有一到两个参数需要处理,那么使用它有点多余,但是,如果你需要从命令行中捕获大多数应用程序的设置参数,那么使用CLI是恰到好处的。在使用CLI之前需要创建一个Options对象,该对象相当于一个容器,另外还有Option对象,每个Option对象相对于命令行中的一个参数。
Options opts = new Options();通过利用这个Options,你可以使用addOption()方法定义你的应用程序可接受的命令行参数,每次都为一个option调用一次这个方法,看下面例示:
opts.addOption("h", false, "Print help for this application");
opts.addOption("u", true, "The username to use");
opts.addOption("dsn", true, "The data source to use");当然你也可以单独创建Option对线,然后使用addOption()方法添加进去。如下:Option op = new Option("h", false, "Print help for this application");一旦你定义了类的参数,创建一个CommandLineParser,并分析已传送到主方法中的组。
BasicParser parser = new BasicParser();
CommandLine cl = parser.parse(opts, args);等到所有的参数都被解析以后,你可以开始检查返回的命令行,这些命令行中,提供用户的参数和值已被语法分析程序详细检查过了。
if (cl.hasOption('h')) {
HelpFormatter hf = new HelpFormatter();
hf.printHelp("OptionsTip", opts);
System.out.println(cl.getOptionValue("u"));
System.out.println(cl.getOptionValue("dsn"));
}就象你看到的那样,你可以使用HelpRormatter类为你的程序自动地产生使用信息。下面看一下全部的代码:
import mons.cli.BasicPimport mandLimport mons.cli.HelpFimport mons.cli.Oimport mons.cli.ParseE
public class OptionsTip {
public static void main(String[] args) {
Options opts = new Options();
opts.addOption("h", false, "Print help for this application");
opts.addOption("u", true, "The username to use");
opts.addOption("dsn", true, "The data source to use");
BasicParser parser = new BasicParser();
CommandLine cl = parser.parse(opts, args);
if (cl.hasOption('h')) {
HelpFormatter hf = new HelpFormatter();
hf.printHelp("OptionsTip", opts);
System.out.println(cl.getOptionValue("u"));
System.out.println(cl.getOptionValue("dsn"));
} catch (ParseException pe) {
pe.printStackTrace();
}注:使用此程序时候别忘了把commons-cli-1.0.jar加入到你的classpath中运行结果:
E:\javaworkspace\collection\src&java mon.OptionsTip -husage: OptionsTip -dsn
The data source to use -h
Print help for this application -u
The username to use
E:\javaworkspace\collection\src&java mon.OptionsTip -u eric -dsn founderericfounder
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有}

我要回帖

更多关于 yaf cli模式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信