成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Laravel5.5 綜合使用

banana_pi / 2762人閱讀

摘要:使用開發(fā)一個自動交割的項目,把使用到的開源擴展包及特性整理起來,以供后續(xù)使用。一安裝提示工具是一個極其好用的代碼提示及補全工具,可以給編寫代碼帶來極大的便利。更多關于的任務調度,請看考該文的任務調度計劃任務功能

使用 Laravel5.5 開發(fā)一個自動交割的項目,把使用到的開源擴展包及特性整理起來,以供后續(xù)使用。
一、安裝IDE提示工具

Laravel IDE Helper 是一個極其好用的代碼提示及補全工具,可以給編寫代碼帶來極大的便利。

1、安裝
# 如果只想在開發(fā)環(huán)境安裝請加上 --dev
composer require barryvdh/laravel-ide-helper

安裝 doctrine/dbal 「請裝上它,在為模型注釋字段的時候必須用到它」

# 如果只想在開發(fā)環(huán)境安裝請加上 --dev
composer require "doctrine/dbal: ~2.3"

詳細安裝方法,請參考這篇博文: Laravel 超好用代碼提示工具 Laravel IDE Helper

三個常用命令

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

php artisan ide-helper:models - 為數據模型生成注釋

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

二、Monolog日志包

日志的重要程度不言而喻, 不管是在開發(fā)過程中, 還是部署到生產環(huán)境后, 都是經常使用的.
隨著 psr-3 的出現, 終于統(tǒng)一了 php 中日志的風格.但是, 好用的記錄日志系統(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 是一個十分強大的php的模擬HTTP client的第三方庫,可以通過composer安裝

Goutte 是一個用來解析HTML文檔的第三方庫,可以通過composer安裝

安裝
composer require fabpot/goutte
composer require guzzlehttp/guzzle
創(chuàng)建命令
php artisan make:command Spider
命令參數
// concurrency為并發(fā)數 keyWords為查詢關鍵詞
protected $signature = "command:spider {concurrency} {keyWords*}"; 
實戰(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("請求結束!");
    }

    // 運行命令:php artisan test:spider-request
}
> php artisan test:spider-request

四、定時任務

CRON是一個守護進程,它駐留在你的linux服務器中,大部分時間都沒有喚醒,但是每一分鐘它都會睜開雙眼,看看是否運行任何給定的任務,你使用crontab文件與該守護進程通信,在大多數常見的設置文件可以位于/etc/crontab,crontab文件可能看起來像這樣:

0 0 1 * * /home/full-backup
0 0 * * * /home/partial-backup
30 5 10 * * /home/check-subscriptions
1.添加系統(tǒng)定時任務

在laravel中添加定時任務很簡單,首先在系統(tǒng)crontab 添加一個artisan的定時任務,每分鐘執(zhí)行一次。

> crontab -e

// /home/vagrant/Code/digcoin/ laravel項目在服務器的地址
 * * * * * php /home/vagrant/Code/digcoin/artisan schedule:run >> /dev/null 2>&1

2.項目中添加定時命令

AppConsoleKernel 類的 schedule 方法中定義預定的命令:

 protected function schedule(Schedule $schedule)
    {
        // $schedule->command("inspire")
        //          ->hourly();

        // php artisan test:spider-request, 每十分鐘調用一次
        $schedule->command("test:spider-request")
            ->everyFifteenMinutes()->withoutOverlapping();
    }

添加好了之后,我們可以直接使用這個命令測試定時任務是否可以執(zhí)行:

> php /home/vagrant/Code/digcoin/artisan test:spider-request

OK,只需要簡單的兩步便可實現laravel的定時任務添加。

更多關于Laravel的任務調度,請看考該文:Laravel 的任務調度(計劃任務)功能 Task Scheduling

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.hztianpu.com/yun/29199.html

相關文章

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

    摘要:安裝后是單模塊應用,但通常情況下,我們的項目往往會有很多模塊,如果按單模塊去做,文件目錄會異常龐大,不利于維護,耦合性太大。那么下面就詳細說一下利用最新如何進行分模塊開發(fā)。 laravel 安裝后是單模塊應用,但通常情況下,我們的項目往往會有很多模塊,如果按單模塊去做,文件目錄會異常龐大,不利于維護,耦合性太大。那么下面就詳細說一下利用最新laravel5.5如何進行分模塊開發(fā)。 下載...

    wenhai.he 評論0 收藏0
  • Laravel5-Markdown-Editor 在線編輯器

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

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

    摘要:打開瀏覽器輸入,如無意外,將出現如下圖,表示框架安裝成功。四系統(tǒng)內部后臺管理系統(tǒng)這個是框架自帶的后臺登錄管理系統(tǒng),只需要簡單的命令即可運行。出現上圖即為,創(chuàng)建模型成功。 在PHP個各種web開發(fā)框架中,laravel算是一款簡潔、優(yōu)雅的開發(fā)框架,本人也剛剛接觸到laravel,通過學習大神們的一些文章,下面是我的一些心得體會,希望可以給初學者一些幫助,大家一起進步。言歸正傳: 本人環(huán)境...

    GeekGhc 評論0 收藏0
  • laravel5.5 + react完成簡單的CRUD

    摘要:完成簡單的在這篇文章中,我想和大家分享如何在框架中使用來創(chuàng)建應用程序。在這個例子中,您可以學習如何為應用程序構建設置,我還使用請求,獲取請求,放入請求和刪除請求來插入更新刪除應用程序。 laravel5.5 + react完成簡單的CRUD 在這篇文章中,我想和大家分享如何在PHP Laravel框架中使用js來創(chuàng)建crud(Create Read Update Delete)應用程序...

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

    摘要:安裝方法安裝克隆地址切換到構建容器進入安裝查看容器容器配置本地主機文件服務訪問出現歡迎頁則表示環(huán)境建立成功系統(tǒng)環(huán)境及版本核心版過程記錄如果網絡不好可能會出現下面問題 安裝方法 step1: 安裝docker、docker-compose 克隆地址: https://github.com/helloMJW/d... 切換TAG到laravel5.5: git checkout lara...

    winterdawn 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<