phptp5plugins,thinkphp5(tp5)使⽤cli模式运⾏
前⾔:
cli模式,就是命令⾏形式执⾏php⽂件,不依赖nginx等服务。cli模式有⼏个好处,1是不会过期,不管执⾏多久都可以。2是简单,不⽤考虑nginx等服务器的配置等。那么平时⼤家都⽤框架写代码。要让你写原⽣连接数据库做点操作效率太低。下⾯就介绍下如何使⽤
thinkphp5在cli模式下执⾏你写的⽅法。
本次测试框架版本:v5.1.37 LTS
简单介绍
其实thinkphp5⼿册有介绍这个功能,但是不知道为什么只有⼀⼩段介绍。⾸先来看原⽣的写法⽤cli模式来执⾏ 新建⼀个index.php⽂件<? php
echo "hello world";
然后再⽤php命令去执⾏这个⽂件php index.php
就会得到输出hello world。⾮常的简单。那么⽤thinkphp5来做cli同样很简单。
1、⾸先需要在⼀个没有登录验证的控制器下创建⼀个⽅法。我们都知道我们往往在控制器或基类控制器的构造函数中写登录验证。所以我们
需要cli时,⼀定不能有登录验证。⼀般来说会专门写⼀个不需要登录验证的控制器。
2、在控制器⾥写⼀个⽅法,这个⽅法就是你需要执⾏的内容。由于在crontab中,最⾼频率也就是1分钟1次。但因为cli的特性。你可以在
⽅法⾥写死循环使⽤sleep来控制频率,可以做到5秒⼀次 10秒⼀次 都是可以的 我就写个简单的。public function test()
{
php如何运行代码echo '233'.PHP_EOL;
}
3、执⾏这个⽅法。执⾏规则实际上和url访问的规则⾮常的类似。⼤家都知道框架有⼀个唯⼀⼊⼝inde
x.php 虽然可以通过重写来隐藏,但是实际上还是访问的这个⼊⼝⽂件index.php,然后通过框架的机制引⼊和执⾏控制器⾥的⽅法。thinkphp5默认使⽤pathinfo的形式来访问。其实cli也是这个套路,执⾏index.php 跟上pathinfo路径就可以了
⽐如:php /你的项⽬地址/public/index.php index/index/test
其实就是php去执⾏你项⽬的⼊⼝⽂件,空格后⾯其实就是你的 模块/控制器/⽅法
那么有⼈可能会问了,那么开启了强制路由的怎么办?经过我今天的试验,强制路由同样适⽤这个规则。这么⽜逼的功能不知道thinkphp 团队为什么不好好介绍下php /你的项⽬地址/public/index.php test
空格后⾯就是你的路由地址。更为简单清晰
最后还补充个⼩提⽰,经过我测试,当开启路由模式去使⽤cli时,请求⽅式规定为get或者any的时候可以使⽤。当请求⽅式规定为
post/put/delete时,则会报错,⼤家要注意哦。
thinkphp5的cli模式今天就介绍到这⾥。虽然简单,却很实⽤,欢迎交流,互相学习,感谢。
声明:禁⽌任何⾮法⽤途使⽤,凡因违规使⽤⽽引起的任何法律纠纷,本站概不负责。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论