摘要:使用開發(fā)一個自動交割的項(xiàng)目,把使用到的開源擴(kuò)展包及特性整理起來,以供后續(xù)使用。一安裝提示工具是一個極其好用的代碼提示及補(bǔ)全工具,可以給編寫代碼帶來極大的便利。更多關(guān)于的任務(wù)調(diào)度,請看考該文的任務(wù)調(diào)度計(jì)劃任務(wù)功能
使用 Laravel5.5 開發(fā)一個自動交割的項(xiàng)目,把使用到的開源擴(kuò)展包及特性整理起來,以供后續(xù)使用。一、安裝IDE提示工具
Laravel IDE Helper 是一個極其好用的代碼提示及補(bǔ)全工具,可以給編寫代碼帶來極大的便利。
1、安裝# 如果只想在開發(fā)環(huán)境安裝請加上 --dev composer require barryvdh/laravel-ide-helper
安裝 doctrine/dbal 「請裝上它,在為模型注釋字段的時(shí)候必須用到它」
# 如果只想在開發(fā)環(huán)境安裝請加上 --dev composer require "doctrine/dbal: ~2.3"
詳細(xì)安裝方法,請參考這篇博文: Laravel 超好用代碼提示工具 Laravel IDE Helper
三個常用命令
二、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 是一個十分強(qiáng)大的php的模擬HTTP client的第三方庫,可以通過composer安裝
Goutte 是一個用來解析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("請求第 $index 個請求,連接 " . $this->urls[$index]); $this->countedAndCheckEnded(); }, "rejected" => function ($reason, $index){ $this->error("rejected" ); $this->error("rejected reason: " . $reason ); $this->countedAndCheckEnded(); }, ]); // 開始發(fā)送請求 $promise = $pool->promise(); $promise->wait(); } public function countedAndCheckEnded() { if ($this->counter < $this->totalPageCount){ $this->counter++; return; } $this->info("請求結(jié)束!"); } // 運(yùn)行命令:php artisan test:spider-request }
> php artisan test:spider-request四、定時(shí)任務(wù)
CRON是一個守護(hù)進(jìn)程,它駐留在你的linux服務(wù)器中,大部分時(shí)間都沒有喚醒,但是每一分鐘它都會睜開雙眼,看看是否運(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ù)很簡單,首先在系統(tǒng)crontab 添加一個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(); }
添加好了之后,我們可以直接使用這個命令測試定時(shí)任務(wù)是否可以執(zhí)行:
> php /home/vagrant/Code/digcoin/artisan test:spider-request
OK,只需要簡單的兩步便可實(shí)現(xiàn)laravel的定時(shí)任務(wù)添加。
更多關(guān)于Laravel的任務(wù)調(diào)度,請看考該文:Laravel 的任務(wù)調(diào)度(計(jì)劃任務(wù))功能 Task Scheduling
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/29199.html
摘要:安裝后是單模塊應(yīng)用,但通常情況下,我們的項(xiàng)目往往會有很多模塊,如果按單模塊去做,文件目錄會異常龐大,不利于維護(hù),耦合性太大。那么下面就詳細(xì)說一下利用最新如何進(jìn)行分模塊開發(fā)。 laravel 安裝后是單模塊應(yīng)用,但通常情況下,我們的項(xiàng)目往往會有很多模塊,如果按單模塊去做,文件目錄會異常龐大,不利于維護(hù),耦合性太大。那么下面就詳細(xì)說一下利用最新laravel5.5如何進(jìn)行分模塊開發(fā)。 下載...
摘要:是基于封裝的在線編輯器,支持項(xiàng)目。已集成本地七牛云阿里云文件存儲。更新記錄完成在線編輯器主程序,且集成本地七牛阿里云存儲。 Laravel5-Markdown-Editor Laravel5-Markdown-Editor 是基于 editor.md 封裝的 Markdown 在線編輯器,支持 Laravel5 項(xiàng)目。已集成本地、七牛云、阿里云文件存儲。 更新記錄 2017-11-09...
摘要:打開瀏覽器輸入,如無意外,將出現(xiàn)如下圖,表示框架安裝成功。四系統(tǒng)內(nèi)部后臺管理系統(tǒng)這個是框架自帶的后臺登錄管理系統(tǒng),只需要簡單的命令即可運(yùn)行。出現(xiàn)上圖即為,創(chuàng)建模型成功。 在PHP個各種web開發(fā)框架中,laravel算是一款簡潔、優(yōu)雅的開發(fā)框架,本人也剛剛接觸到laravel,通過學(xué)習(xí)大神們的一些文章,下面是我的一些心得體會,希望可以給初學(xué)者一些幫助,大家一起進(jìn)步。言歸正傳: 本人環(huán)境...
摘要:完成簡單的在這篇文章中,我想和大家分享如何在框架中使用來創(chuàng)建應(yīng)用程序。在這個例子中,您可以學(xué)習(xí)如何為應(yīng)用程序構(gòu)建設(shè)置,我還使用請求,獲取請求,放入請求和刪除請求來插入更新刪除應(yīng)用程序。 laravel5.5 + react完成簡單的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ò)不好可能會出現(xiàn)下面問題 安裝方法 step1: 安裝docker、docker-compose 克隆地址: https://github.com/helloMJW/d... 切換TAG到laravel5.5: git checkout lara...
閱讀 3591·2021-11-24 10:19
閱讀 3730·2021-09-30 09:47
閱讀 1293·2019-08-30 15:56
閱讀 790·2019-08-29 15:11
閱讀 905·2019-08-29 13:43
閱讀 3570·2019-08-28 18:25
閱讀 2160·2019-08-26 13:27
閱讀 1439·2019-08-26 11:44