摘要:使用開發(fā)一個(gè)自動(dòng)交割的項(xiàng)目,把使用到的開源擴(kuò)展包及特性整理起來,以供后續(xù)使用。一安裝提示工具是一個(gè)極其好用的代碼提示及補(bǔ)全工具,可以給編寫代碼帶來極大的便利。更多關(guān)于的任務(wù)調(diào)度,請(qǐng)看考該文的任務(wù)調(diào)度計(jì)劃任務(wù)功能
使用 Laravel5.5 開發(fā)一個(gè)自動(dòng)交割的項(xiàng)目,把使用到的開源擴(kuò)展包及特性整理起來,以供后續(xù)使用。一、安裝IDE提示工具
Laravel IDE Helper 是一個(gè)極其好用的代碼提示及補(bǔ)全工具,可以給編寫代碼帶來極大的便利。
1、安裝# 如果只想在開發(fā)環(huán)境安裝請(qǐng)加上 --dev composer require barryvdh/laravel-ide-helper
安裝 doctrine/dbal 「請(qǐng)裝上它,在為模型注釋字段的時(shí)候必須用到它」
# 如果只想在開發(fā)環(huán)境安裝請(qǐng)加上 --dev composer require "doctrine/dbal: ~2.3"
詳細(xì)安裝方法,請(qǐng)參考這篇博文: Laravel 超好用代碼提示工具 Laravel IDE Helper
三個(gè)常用命令
二、Monolog日志包php artisan ide-helper:generate - 為 Facades 生成注釋
php artisan ide-helper:models - 為數(shù)據(jù)模型生成注釋
php artisan ide-helper:meta - 生成 PhpStorm Meta file
日志的重要程度不言而喻, 不管是在開發(fā)過程中, 還是部署到生產(chǎn)環(huán)境后, 都是經(jīng)常使用的.
隨著 psr-3 的出現(xiàn), 終于統(tǒng)一了 php 中日志的風(fēng)格.但是, 好用的記錄日志系統(tǒng), 也很重要.
monolog 是我遇到的最好的日志系統(tǒng).而且, laravel 中也是用的 monolog。
composer require monolog/monolog用法
Github地址:monolog/monolog
pushHandler(new StreamHandler("path/to/your.log", Logger::WARNING)); // $logger->pushHandler(new StreamHandler(storage_path() . "/logs/spider.log")); // add records to the log $log->warning("Foo"); $log->error("Bar");三、抓包工具
Guzzle 是一個(gè)十分強(qiáng)大的php的模擬HTTP client的第三方庫,可以通過composer安裝
Goutte 是一個(gè)用來解析HTML文檔的第三方庫,可以通過composer安裝
安裝composer require fabpot/goutte composer require guzzlehttp/guzzle創(chuàng)建命令
php artisan make:command Spider命令參數(shù)
// concurrency為并發(fā)數(shù) keyWords為查詢關(guān)鍵詞 protected $signature = "command:spider {concurrency} {keyWords*}";實(shí)戰(zhàn)
pushHandler(new StreamHandler(storage_path() . "/logs/spider.log")); $this->totalPageCount = count($this->urls); $guzzleClent = new GuzzleClient(); $client = new GoutteClient(); $client->setClient($guzzleClent); $request = function ($total) use ($client){ foreach ($this->urls as $url){ yield function () use($client, $url){ return $client->request("GET",$url); }; } }; // @DOC http://docs.guzzlephp.org/en/stable/quickstart.html?highlight=pool // /Users/kaiyiwang/Code/digcoin/vendor/symfony/dom-crawler/Crawler.php $pool = new Pool($guzzleClent,$request($this->totalPageCount), [ "concurrency" => $this->concurrency, "fulfilled" => function ($response, $index) use ($logger){ $res = $response->html(); // print_r($res); $logger->info($res); $this->info("請(qǐng)求第 $index 個(gè)請(qǐng)求,連接 " . $this->urls[$index]); $this->countedAndCheckEnded(); }, "rejected" => function ($reason, $index){ $this->error("rejected" ); $this->error("rejected reason: " . $reason ); $this->countedAndCheckEnded(); }, ]); // 開始發(fā)送請(qǐng)求 $promise = $pool->promise(); $promise->wait(); } public function countedAndCheckEnded() { if ($this->counter < $this->totalPageCount){ $this->counter++; return; } $this->info("請(qǐng)求結(jié)束!"); } // 運(yùn)行命令:php artisan test:spider-request }
> php artisan test:spider-request四、定時(shí)任務(wù)
CRON是一個(gè)守護(hù)進(jìn)程,它駐留在你的linux服務(wù)器中,大部分時(shí)間都沒有喚醒,但是每一分鐘它都會(huì)睜開雙眼,看看是否運(yùn)行任何給定的任務(wù),你使用crontab文件與該守護(hù)進(jìn)程通信,在大多數(shù)常見的設(shè)置文件可以位于/etc/crontab,crontab文件可能看起來像這樣:
0 0 1 * * /home/full-backup 0 0 * * * /home/partial-backup 30 5 10 * * /home/check-subscriptions1.添加系統(tǒng)定時(shí)任務(wù)
在laravel中添加定時(shí)任務(wù)很簡(jiǎn)單,首先在系統(tǒng)crontab 添加一個(gè)artisan的定時(shí)任務(wù),每分鐘執(zhí)行一次。
> crontab -e // /home/vagrant/Code/digcoin/ laravel項(xiàng)目在服務(wù)器的地址 * * * * * php /home/vagrant/Code/digcoin/artisan schedule:run >> /dev/null 2>&12.項(xiàng)目中添加定時(shí)命令
在 AppConsoleKernel 類的 schedule 方法中定義預(yù)定的命令:
protected function schedule(Schedule $schedule) { // $schedule->command("inspire") // ->hourly(); // php artisan test:spider-request, 每十分鐘調(diào)用一次 $schedule->command("test:spider-request") ->everyFifteenMinutes()->withoutOverlapping(); }
添加好了之后,我們可以直接使用這個(gè)命令測(cè)試定時(shí)任務(wù)是否可以執(zhí)行:
> php /home/vagrant/Code/digcoin/artisan test:spider-request
OK,只需要簡(jiǎn)單的兩步便可實(shí)現(xiàn)laravel的定時(shí)任務(wù)添加。
更多關(guān)于Laravel的任務(wù)調(diào)度,請(qǐng)看考該文:Laravel 的任務(wù)調(diào)度(計(jì)劃任務(wù))功能 Task Scheduling
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/29199.html
摘要:安裝后是單模塊應(yīng)用,但通常情況下,我們的項(xiàng)目往往會(huì)有很多模塊,如果按單模塊去做,文件目錄會(huì)異常龐大,不利于維護(hù),耦合性太大。那么下面就詳細(xì)說一下利用最新如何進(jìn)行分模塊開發(fā)。 laravel 安裝后是單模塊應(yīng)用,但通常情況下,我們的項(xiàng)目往往會(huì)有很多模塊,如果按單模塊去做,文件目錄會(huì)異常龐大,不利于維護(hù),耦合性太大。那么下面就詳細(xì)說一下利用最新laravel5.5如何進(jìn)行分模塊開發(fā)。 下載...
摘要:是基于封裝的在線編輯器,支持項(xiàng)目。已集成本地七牛云阿里云文件存儲(chǔ)。更新記錄完成在線編輯器主程序,且集成本地七牛阿里云存儲(chǔ)。 Laravel5-Markdown-Editor Laravel5-Markdown-Editor 是基于 editor.md 封裝的 Markdown 在線編輯器,支持 Laravel5 項(xiàng)目。已集成本地、七牛云、阿里云文件存儲(chǔ)。 更新記錄 2017-11-09...
摘要:打開瀏覽器輸入,如無意外,將出現(xiàn)如下圖,表示框架安裝成功。四系統(tǒng)內(nèi)部后臺(tái)管理系統(tǒng)這個(gè)是框架自帶的后臺(tái)登錄管理系統(tǒng),只需要簡(jiǎn)單的命令即可運(yùn)行。出現(xiàn)上圖即為,創(chuàng)建模型成功。 在PHP個(gè)各種web開發(fā)框架中,laravel算是一款簡(jiǎn)潔、優(yōu)雅的開發(fā)框架,本人也剛剛接觸到laravel,通過學(xué)習(xí)大神們的一些文章,下面是我的一些心得體會(huì),希望可以給初學(xué)者一些幫助,大家一起進(jìn)步。言歸正傳: 本人環(huán)境...
摘要:完成簡(jiǎn)單的在這篇文章中,我想和大家分享如何在框架中使用來創(chuàng)建應(yīng)用程序。在這個(gè)例子中,您可以學(xué)習(xí)如何為應(yīng)用程序構(gòu)建設(shè)置,我還使用請(qǐng)求,獲取請(qǐng)求,放入請(qǐng)求和刪除請(qǐng)求來插入更新刪除應(yīng)用程序。 laravel5.5 + react完成簡(jiǎn)單的CRUD 在這篇文章中,我想和大家分享如何在PHP Laravel框架中使用js來創(chuàng)建crud(Create Read Update Delete)應(yīng)用程序...
摘要:安裝方法安裝克隆地址切換到構(gòu)建容器進(jìn)入安裝查看容器容器配置本地主機(jī)文件服務(wù)訪問出現(xiàn)歡迎頁則表示環(huán)境建立成功系統(tǒng)環(huán)境及版本核心版過程記錄如果網(wǎng)絡(luò)不好可能會(huì)出現(xiàn)下面問題 安裝方法 step1: 安裝docker、docker-compose 克隆地址: https://github.com/helloMJW/d... 切換TAG到laravel5.5: git checkout lara...
閱讀 3577·2021-11-24 10:19
閱讀 3710·2021-09-30 09:47
閱讀 1282·2019-08-30 15:56
閱讀 780·2019-08-29 15:11
閱讀 893·2019-08-29 13:43
閱讀 3557·2019-08-28 18:25
閱讀 2149·2019-08-26 13:27
閱讀 1427·2019-08-26 11:44