Laravel Octaneでアプリケーションのパフォーマンスを向上させる
Laravel Octane ご存知の通り、従来のLaravelアプリケーションでは、PHPは1回のリクエストを1回ずつ処理することしかできませんが、Laravel Octaneを使用すると、複数のリクエストを同時に処理できるようになり、ウェブサイトの速度が向上します。 1. Laravel Octaneとは? Laravel Octaneは、Laravelアプリケーションのパフォーマンスを向上させるために作成されたオープンソースのパッケージです。最初にアプリケーションを1回だけ起動し、それをメモリ(RAM)に保持し、その後のリクエストは、アプリケーションを最初から再起動するのではなく、メモリ内で保存された状態を再利用して処理されます。 Laravelのリクエストライフサイクル Laravel Octaneのリクエストライフサイクル Laravel Octaneのもう一つの特徴は、複数のワーカーを同時に使用してリクエストを処理できることです。これにより、以前のようにリクエストを1回ずつ処理するのではなく、複数のリクエストを同時に処理できるようになります。 Laravel Octaneのリクエスト処理の概要 Octaneは、FrankenPHP、Swoole、RoadRunnerという3つのPHPの非同期処理ツールを基盤として開発されています。この記事では、Swooleに焦点を当てます。 PHP Swooleは、Erlang、Node.js、Nettyの原則を基にPHP向けに設計されています。しかし、SwooleはLinuxカーネル上でのみ動作するため、現在はLinux、OS X、Cygwin、またはWSLでのみ使用できます。 2. PHP SwooleとPHP-FPMの違い 以下は、PHP SwooleとPHP-FPMの違いを比較した表です。 PHP Swoole PHP-FPM TCP、UDP、HTTP、HTTP2、Unixソケットのサポート あり なし。追加のライブラリが必要 非同期I/Oの使用 あり なし 各CPUに対してワーカープロセスの分割 – 同時処理のサポート あり なし PHPファイルをメモリに読み込む あり なし WebSocketサーバーやTCP/UDPサーバーのための長期接続サポート あり なし 3. Laravel OctaneとPHP-FPMの速度比較 Laravel Octaneの実力を証明するため、簡単なデモを行い、PHP OctaneとPHP-FPMの結果を比較してみましょう。 次のベンチマークテストを仮想マシン(VMware)で行いました: テストベンチの統計情報: CPU: 2コア(11th..
もっと見る- 948 ビュー
- 0 コメント
Laravel LTS 5.5の新機能
Laravelのコミュニティは、新しいバージョンLaravel 5.5のリリースを待ち望んでいます。これは、Laravel 5.1が初めてのLTSバージョンとしてリリースされ、7月にサポートが終了するためです。 LTSは「Long Term Support」の略で、長期サポートを意味します。LTSバージョンは、バグ修正の更新に2年間、セキュリティ更新に3年間のサポートを提供します。LTSバージョンのサポート期間中は、Laravelのチームが継続的に更新を行い、サポートが終了した後には、次のバージョンにアップグレードする必要があります。 現在のLTSバージョン: Laravel LTS 5.1 https://laravel.com/docs/5.1 PHP > 5.6 最新のLTSバージョン: Laravel LTS 5.5 https://laravel.com/docs/5.5 PHP > 7.0 5.5での変更点: Headless Chromeテスト: Laravel Dusk 2.0.0に対応。 EloquentのBelongsToManyがパラメータの順序を変更し、ピボットテーブルが使用される。 Eloquentの$dispatchesEvents属性。 Eloquentの$pivotParent属性。 ソフトデリート時でも、モデルの$exists属性はtrueのまま。 withCount(‘foo as bar_count’)関数が追加され、フィールド名にエイリアスをサポート。 例外の内容がJSON形式で整形されて表示される。 Requestの便利関数の動作が変更され、has()やonly()が返す結果が変わり、intersect()関数が削除。 request($key)関数は、’foo.bar’のようなネストされたキーを受け付けなくなり、代わりにrequest()->input($key)を使用する。 ビューへの変数渡しにおいて、動的なビュー名が使えるようになり、view($viewName)->withMyVariable($value)の形式で渡された変数は$myVariableとして使用される。 バリデータの関数がすべてpublicに変更され、protectedではなくなった。 routesディレクトリが追加され、アプリケーションのルート定義は、以前のapp/Http/routes.phpではなく、この新しいディレクトリに配置される。 5.5の新しいコア機能: Middlewareグループ、異なる目的のために分けて使用する。 Responsableインターフェース -> コントローラーでオブジェクトをレスポンスとしてフォーマットする。 Ruleオブジェクト -> バリデーションルールをより柔軟にクラスで作成できるようになる。 Pivotモデルのフィールドをキャスティングできるようになる。 Bladeのif式にカスタムディレクティブを追加し、コードを簡潔に書けるようになる。 Collection上でdump()やdd()を使えるようになり、アプリケーションの中断なく操作ができる。 パッケージインストール時に、ProviderとFacadeが自動でインジェクトされる。..
もっと見る- 57 ビュー
- 0 コメント