近代的なプログラミング--Swoole上でLaravelフレームワークの応用を開発する


Laravel
Laravelは非常に近代的なPHPフレームワークであり、composerの構築方式に基づいて、その多くの核心依存は完全にLaravel自身が維持しているのではなく、symfony/http-、eloquent/などの成熟したLibraryに依存し、これによって近代的なフレームワークの集衆が一身(巨人の肩に立つ)より優れている特徴を実現している.
LaravelFly
前の理解を経て、私たちはすでにSwooleがPHPにもたらした比類のない優位性を知っているが、Swooleのいくつかの限界のため、私たちはそれを成熟したPHPフレームワークに直接使用することができず、一部の改造を行ってSwoole上で運行する必要がある.LaravelFlyはまさにこのようなツールです(or,you can call it something else,anyway).
では、操作を始めましょう.
まず新しい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プロジェクトにアクセスすることができます.
しかし、私たちはまだ下に行かなければなりません.
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拡張で実行されています.ほとんどバグはありませんが、テストの結果、debugbarにはいくつかの問題があります.debugbarデバッグプロセスの記録のクエリー履歴は、リクエストが完了した後に空になることはありません.次のリクエストに継承されます.これは、Swooleがリクエストが完了するたびに作成されたリソースを回収することはありません.我々はconfig/laravelflyでphpは、単一のリクエストが完了する後に回収する必要があるインスタンスを宣言すればよい.