国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Laravel5.5 綜合使用

banana_pi / 2716人閱讀

摘要:使用開發(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è)常用命令

php artisan ide-helper:generate - 為 Facades 生成注釋

php artisan ide-helper:models - 為數(shù)據(jù)模型生成注釋

php artisan ide-helper:meta - 生成 PhpStorm Meta file

二、Monolog日志包

日志的重要程度不言而喻, 不管是在開發(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-subscriptions
1.添加系統(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>&1

2.項(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

相關(guān)文章

  • 基于Laravel5.5的模塊化開發(fā)

    摘要:安裝后是單模塊應(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ā)。 下載...

    wenhai.he 評(píng)論0 收藏0
  • Laravel5-Markdown-Editor 在線編輯器

    摘要:是基于封裝的在線編輯器,支持項(xiàng)目。已集成本地七牛云阿里云文件存儲(chǔ)。更新記錄完成在線編輯器主程序,且集成本地七牛阿里云存儲(chǔ)。 Laravel5-Markdown-Editor Laravel5-Markdown-Editor 是基于 editor.md 封裝的 Markdown 在線編輯器,支持 Laravel5 項(xiàng)目。已集成本地、七牛云、阿里云文件存儲(chǔ)。 更新記錄 2017-11-09...

    MoAir 評(píng)論0 收藏0
  • windows下laravel5.5手寫教程1(適合初學(xué)者)

    摘要:打開瀏覽器輸入,如無意外,將出現(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)境...

    GeekGhc 評(píng)論0 收藏0
  • laravel5.5 + react完成簡(jiǎn)單的CRUD

    摘要:完成簡(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)用程序...

    2501207950 評(píng)論0 收藏0
  • docker搭建Laravel5.5環(huán)境

    摘要:安裝方法安裝克隆地址切換到構(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...

    winterdawn 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<