Repolode
hhxsv5

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. 1

    Composer 経由でパッケージを導入する

    composer require "hhxsv5/laravel-s:~3.8.0"
  2. 2

    設定ファイルとバイナリを公開する

    php artisan laravels publish
  3. 3

    必要に応じて config/laravels.php の listen_ip と listen_port を調整する

  4. 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 の数値は毎日更新されます。

関連プロジェクト