リフレクションを使い、通常のクラスメソッドからルート、バリデーション、OpenAPIドキュメントを生成するPHP 8以降対応のREST APIフレームワーク。
hhxsv5/laravel-s
LaravelやLumenのアプリをSwoole上で常駐型のPHPサーバーとして動かし、WebSocket、TCP/UDP、非同期タスクに対応するアダプターです。
- スター
- 3,879
- フォーク
- 463
- 未解決の Issue
- 70
- 最終コミット
- 5 日前
これは何?
LaravelSはLaravelやLumenのアプリをSwooleに接続し、リクエストごとに起動し直すのではなく、PHPアプリを常駐サーバープロセスとして実行できるようにします。Composer経由でインストールし、artisanコマンド1つで設定を公開できます。master、manager、worker、taskの各プロセスは、bin/laravelsスクリプトで管理・起動します。
HTTPの処理に加えて、WebSocketイベント用のハンドラーインターフェースを備えた組み込みWebSocketサーバー、カスタムTCP・UDP・HTTPリスナーに対応する複数ポートでの混在プロトコル、非同期イベントとタスクキュー、Linuxのcrontabを置き換えられるミリ秒単位のcronジョブを提供します。また、カスタムプロセスやSwooleTableによる共有メモリにも対応し、graceful reloadや、inotify、fswatch、inotifywaitを使ったコード変更時の自動リロードが可能な設定も用意されています。
このプロジェクトの要件はPHP 8.2以降、Swoole 5.0以降、LaravelまたはLumen 10以降です。READMEには、Swooleプロセスと並行して静的ファイルを配信するためのNginxおよびApacheのリバースプロキシ設定例も掲載されています。
主な機能
- 01WebSocketイベント用のハンドラーインターフェースを備えた、HTTPおよびWebSocketの組み込みサーバー
- 02カスタムTCP・UDP・HTTPリスナーに対応する、複数ポートでの混在プロトコル
- 03Swooleのtask workerで実行する非同期イベントリスナーとタスクキュー
- 04Linuxのcrontabを置き換えられるミリ秒単位のcronジョブ
- 05graceful reloadと、コード変更後の自動リロード
- 06SwooleTableによる共有メモリとカスタムの長時間稼働プロセス
ユースケース
- 常駐workerでLaravelアプリを配信し、リクエストごとの起動コストを削減する
- 既存のLaravelアプリにリアルタイムのWebSocketプッシュ用チャネルを追加する
- Laravelアプリとコードやデータベースアクセスを共有するカスタムTCP・UDPサービスを構築する
- Linuxのcrontab設定を、プロセス内のミリ秒単位のタイマーやスケジュール実行するLaravelコマンドに置き換える
クイックスタート
- 1
Composer 経由でパッケージを導入する
composer require "hhxsv5/laravel-s:~3.8.0" - 2
設定ファイルとバイナリを公開する
php artisan laravels publish - 3
必要に応じて config/laravels.php の listen_ip と listen_port を調整する
- 4
LaravelS を起動する
php bin/laravels start
使う前に知っておきたいこと
- Swoole 拡張(>=5.0)と intl 拡張を有効にした PHP >=8.2 が必要なため、標準的な PHP-FPM ホスティングのそのままの代替にはなりません。
- 長時間稼働し、メモリ上に常駐するサーバーとして動作するため、リクエスト間でコードや状態が保持され、取り扱いには注意が必要です。実行前に README の重要な注意事項を確認してください。
収録されている特集
トピック
よくある質問
- laravel-s とは?
- LaravelやLumenのアプリをSwoole上で常駐型のPHPサーバーとして動かし、WebSocket、TCP/UDP、非同期タスクに対応するアダプターです。 LaravelSはLaravelやLumenのアプリをSwooleに接続し、リクエストごとに起動し直すのではなく、PHPアプリを常駐サーバープロセスとして実行できるようにします。Composer経由でインストールし、artisanコマンド1つで設定を公開できます。master、manager、worker、taskの各プロセスは、bin/laravelsスクリプトで管理・起動します。
- laravel-s は無料で使えますか?ライセンスは?
- laravel-s は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- laravel-s は今もメンテナンスされていますか?
- 活発にメンテナンス中。laravel-s の最終コミットは 2026年11月2日 です。
- laravel-s は何に使えますか?
- 常駐workerでLaravelアプリを配信し、リクエストごとの起動コストを削減する 既存のLaravelアプリにリアルタイムのWebSocketプッシュ用チャネルを追加する Laravelアプリとコードやデータベースアクセスを共有するカスタムTCP・UDPサービスを構築する Linuxのcrontab設定を、プロセス内のミリ秒単位のタイマーやスケジュール実行するLaravelコマンドに置き換える
- laravel-s のインストール方法は?
- Composer 経由でパッケージを導入する: composer require "hhxsv5/laravel-s:~3.8.0" 設定ファイルとバイナリを公開する: php artisan laravels publish 必要に応じて config/laravels.php の listen_ip と listen_port を調整する LaravelS を起動する: php bin/laravels start
- laravel-s はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/hhxsv5/laravel-s
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
長時間稼働するTCP、UDP、HTTP、WebSocketサービスの構築に使える、イベント駆動型ネットワークエンジンとコルーチンランタイムを提供するPHP拡張です。
cron、インターバル、カレンダー、単発トリガーに対応し、永続化可能なジョブストアも利用できるPython製スケジューラー/ジョブキューライブラリ。
Vaporは、SwiftでWebサイトやAPI、クラウドサービスを構築するためのHTTP Webフレームワークです。
コンパクトな設定、自動TLS、ログと紐づくリクエスト単位のトレースを備えた、静的サイト配信とリバースプロキシ向けのRust製Webサーバー。
任意のSTDIN/STDOUTプログラムをWebSocketサーバーとして動かす、小さなCLIツール。WebSocket版inetdのように使えます。