使用Laravel5.5开发一个自动交付项目,将用到的开源扩展包和功能整理整理,以供后续使用。1、安装IDE提示工具LaravelIDEHelper是一款非常好用的代码提示补全工具,可以为编写代码带来极大的便利。1.安装#如果只想在开发环境安装,请加上--devcomposerrequirebarryvdh/laravel-ide-helpertoinstalldoctrine/dbal"请安装,模型注释字段时必须使用"#如果只是想在开发环境安装的话,请加上--devcomposerrequire"doctrine/dbal:~2.3"详细安装方法请参考这篇博文:Laravel超好用的代码提示工具LaravelIDEHelper三个常用命令phpartisanide-helper:generate-为Facades生成注释phpartisanide-helper:models-为数据模型生成注释phpartisanide-helper:meta-生成PhpStormMeta文件2.Monolog日志包日志的重要性不言而喻,无论是在开发过程中,还是在部署到生产环境之后,都经常用到。随着psr-3的出现,php中的日志风格终于统一了。但是,易于使用的日志记录系统也非常重要。Monolog是我遇到的最好的日志系统。此外,在laravel中也使用了monolog。安装composerrequiremonolog/monologusageGithub地址:monolog/monologpushHandler(newStreamHandler('path/to/your.log',Logger::WARNING));//$logger->pushHandler(newStreamHandler(storage_path().'/logs/spider.log'));//添加记录到日志$log->warning('Foo');$log->error('Bar');3、抓包工具Guzzle是一个非常强大的模拟HTTP客户端的php第三方库,可以通过composer安装Goutte是一个解析HTML文档的第三方库。你可以通过作曲家安装它。composerrequirefabpot/gouttecomposerrequireguzzlehttp/guzzlecreatecommandphpartisanmake:commandSpider命令参数//concurrency为并发数keyWords为查询关键字protected$signature='command:spider{concurrency}{keyWords*}';实际pushHandler(新的StreamHandler(存储路径()。'/logs/spider.log'));$this->totalPageCount=count($this->urls);$guzzleClent=newGuzzleClient();$client=newGoutteClient();$client->setClient($guzzleClent);$request=function($total)use($client){foreach($this->urlsas$url){yieldfunction()use($client,$url){return$client->request('GET',$网址);};}};//@DOChttp://docs.guzzlephp.org/en/stable/quickstart.html?highlight=pool///Users/kaiyiwang/Code/digcoin/vendor/symfony/dom-crawler/Crawler.php$pool=新池($guzzleClent,$request($this->totalPageCount),['concurrency'=>$this->concurrency,'fulfilled'=>function($response,$index)使用($logger){$res=$response->html();//print_r($res);$logger->info($res);$this->info("请求$index请求,连接".$this->urls[$index]);$this->countedAndCheckEnded();},'rejected'=>function($reason,$index){$this->error("rejected");$this->error("拒绝原因:".$reason);$this->countedAndCheckEnded();},]);//开始发送请求$promise=$pool->promise();$承诺->等待();}publicfunctioncountedAndCheckEnded(){if($this->counter<$this->totalPageCount){$this->counter++;返回;}$this->info("请求结束!");}//运行命令:phpartisantest:spider-request}>phpartisantest:spider-request4.定时任务CRON是一个驻留在你的linux服务器上的守护进程,它大部分时间不会被唤醒,但是每分钟它都会睁开眼睛查看是否有任何给定任务正在运行,您可以使用crontab文件与此守护程序通信,在大多数常见设置文件中可以位于/etc/crontab中,crontab文件可能如下所示:001**/home/full-backup00***/home/partial-backup30510**/home/check-订阅1。添加系统定时任务在laravel中添加定时任务非常简单。首先在系统crontab中添加一个artisan定时任务,每分钟执行一次>crontab-e///home/vagrant/Code/digcoin/laravel项目在服务器的地址*****php/home/vagrant/Code/digcoin/artisanschedule:run>>/dev/null2>&12.在项目中添加定时命令,在App\Console\Kernel类的schedule方法中定义schedule命令:protectedfunctionschedule(Schedule$schedule){//$schedule->command('inspire')//->每小时();//phpartisantest:spider-request,每十分钟调用$schedule->command('test:spider-request')->everyFifteenMinutes()->withoutOverlapping();添加后,我们可以直接使用这条命令来测试定时任务是否可以执行:>php/home/vagrant/Code/digcoin/artisantest:spider-requestOK,只需要简单两步就可以添加laravel的定时任务。更多Laravel的任务调度请看这篇文章:Laravel的任务调度(scheduledtask)函数TaskScheduling
