現代化編程 -- 在 Swoole 上開發 Laravel 框架的應用

Laravel

Laravel 是很是現代化的一套 PHP 框架, 基於 composer 的構建方式, 其不少核心依賴並不是徹底 Laravel 本身所維護, 而依賴於 symfony/http-, eloquent/ 等較成熟的 Library, 以此實現現代化框架的集衆優於一身(站在巨人肩上)的特色.php

LaravelFly

通過前面的瞭解, 咱們已經知道 Swoole 給 PHP 帶來的無可比擬的優點, 但由於 Swoole 一些侷限, 咱們沒法將其直接用於成熟的 PHP 框架, 而須要進行部分改造方可在 Swoole 上運行. 而 LaravelFly 正是這樣一款工具(or, you can call it something else, anyway).laravel

好了, 下面咱們開始操做吧.shell

先來新建一個全新的 Laravel數據庫

# Composer 下載 Laravel 安裝包:
composer global require "laravel/installer"

# 新建項目
laravel new test
cd test/
composer update

cp .env.example .env
vim .env # 修改數據庫配置
php artisan key:generate
php artisan serve

這時咱們經過 http://localhost:8000 就能夠訪問這份新的 laravel 項目了vim

但咱們還得繼續往下app

composer require "scil/laravel-fly":"dev-master"

vendor/bin/publish-laravelfly-config-files

vim app/Http/Kernel.php

#########################################
# class Kernel extends HttpKernel
#  -->
#
#
# if (defined('LARAVELFLY_GREEDY')) {
#     if (LARAVELFLY_GREEDY) {
#         class WhichKernel extends \LaravelFly\Greedy\Kernel { }
#     } else {
#         class WhichKernel extends \LaravelFly\Kernel { }
#     }
# } else {
#     class WhichKernel extends HttpKernel { }
# }
#
# class Kernel extends WhichKernel
#

vendor/bin/start-laravelfly-server

好了, 咱們的 laravel 項目如今是在 Swoole 擴展上運行了, 幾乎沒有什麼 bug, 不過, 通過測試發現 debugbar 有些許問題, debugbar 調試過程記錄的查詢歷史不會在請求完成後清空, 而會繼承到下一次請求, 這實際上是 Swoole 並不會在每次請求完成後回收建立的資源, 而咱們只須要在 config/laravelfly.php 聲明須要在單次請求完成後回收的實例便可.composer

相關文章
相關標籤/搜索