LaRavelオクタン:ロードランナーのためにあなたの最初のプラグインを構築してください


Alan RodriguezによるUnsplash写真
うまくいけば、あなたは私の最初の記事を読みました、そして、今、あなたは非常に最初のプラグインで結果として生じるサーバーにカスタマイズを作り続けたいです.あなたがそれを読んでいないならば、あなたがこの記事をとる必要があるステップを確立するように、あなたがそうする前にそうするのが最善であるかもしれません.
シンプルさのために、Githubのアカウントを持っている必要があります.また、コードをダウンロードすることができますが、そうすることは、ここでカバーされない追加手順を必要とするでしょう.
任意の困難を持っているか、単にコードを再生する場合は、次のreposでそれらをすべて見つけることができます
The PluginThe RoadRunner BinaryLaravel Octane app

プラグインテンプレートの使用


ロードランナーのためのプラグインを作ることはかなり簡単ですが、あなたがまだゴングにとっても新しいならば、少しの急な学習カーブです.プラグインを書くことは一つのことですが、他の試みDEVSの標準を満たしているテストされたプラグインを作ることは難しいです.このプロセスをスピードアップするために、私はあなた自身を始めるためにコピーすることができるtemplate project on GitHubを生産しました.
プラグインの基本は、Endureのサービスであるために必要とされるインターフェースを実装するGOの単純な構造です.EnureはGolangのためのサービスコンテナです.
テンプレートプロジェクトは、Spiralを経由してテストとCIを設定します.これは、独自のプラグインを作るための大きな出発点になります.したら、私たちが始めることができるプロジェクトをコピーした.

ギタブアクション プラグインのカスタマイズ


プラグインをカスタマイズする際の最初のステップは、GOを設定することです.modファイル.テンプレートディレクトリをコピーするとき、あなたはgithubでユニークである新しい名前でそれをつくりました.たとえば、あなたのユーザ名がfooで、リポジトリバーに名前があるなら、あなたはgithubでユニークな倉庫を持っています.com/foo/bar .囲碁のモジュールは、モジュールがどこで見つけることができるかに基づいて等しく命名されます.どうぞ.mod fileはモジュールディレクティブを持っています.これはオンラインの位置を反映しなければなりません.さもなければ、GETコマンドによって受け入れられません.ファイルがどのように見えるか、何を変更する必要があるかを以下に示すことができます.
module github.com/_<your account>_/_<repository name>_

go 1.16

require (
   github.com/spiral/endure v1.0.2
   github.com/spiral/errors v1.0.11
   github.com/spiral/goridge/v3 v3.1.4
   github.com/spiral/roadrunner/v2 v2.3.2
   github.com/stretchr/testify v1.7.0
)
次のステップは、プラグイン自体の名前を思い付くことです.この名前は、コンテナ内で一意の識別子として使用されますが、プラグインがログサービスを使用するときにもログに表示されます.これは簡単にあなたのプラグインが動作しているかどうかを知ることができます.
プラグインでこの変更を行います.プラグイン名を変更することでファイルを移動します.
const PluginName = "name_of_your_plugin"
そうすることの後、我々は我々のカスタムロードランナー造りにコンパイルされる準備ができている基本的な十分なプラグインを持っています.

プラグインを依存関係として追加する


この時点で、あなたはうまくいけば/ プロジェクトのコピーをフォーク/フォークした.そうでなければ、そうする必要があります.
ロードランナーにプラグインをインストールするには、ほんの数歩しか必要ありません.最初に、我々のロードランナーバイナリプロジェクトのためのルートであるターミナルの中から依存関係をダウンロードしなければなりません.モジュール名がアカウント/リポジトリと同じです.modファイルを使う必要があります.これはPHPが依存関係を管理するために作曲家を使用する方法とは全く異なりません.
以下のコマンドを実行するだけでこれを行うことができます.
go get github.com/<your account>/<repository name>
注意してくださいパッケージのURLは、GOのモジュール名と同じにする必要があります.これによりパッケージのインストールが失敗します.それで、私のために、それはGithubを得に行きます.プラグイン/ロードランナープラグイン.
バイナリプロジェクトでは、内部/コンテナ/プラグインを編集する必要があります.ファイルを移動します.ここでプラグインをインポートすることができます.
< div >
この後にバイナリをコンパイルすることができますが、問題がない場合は、コンパイルされたRRバイナリを単に< em > Oracle プロジェクトにインストールするだけでララヴィルと一緒に使うことができます.p >
私たちは今、プラグインを追加するだけです.RRプラグインの読み込みを確認します
<> P >
クラスをハイライト表示する
name_of_your_plugin:
    value: foobar
< div >
この後には、PHP Archian Octane : startコマンドで< em > octane を起動できます.この時点で、すべてを正しく実行した場合、コマンドを実行する際にエラーが発生しませんし、以前にも可能なように、< em > Laravel アプリケーションのデフォルトルートをロードすることができます.p >

ロードランナーバイナリ PHPとGOコードの通信


< em > RPC を通して公開されたメソッドを持ったプラグインを持っているなら、今では< em >ラーラヴ< em/em >でそれを使いたいです.これは、< em > RPC サーバと通信するために余分な< em > php パッケージをインストールすることを必要とします.これは作曲家で行います.< br/>
<> P >
クラスをハイライト表示する
composer require spiral/goridge
< div >
それから< em > RPC サーバを呼び出す簡単なルートを実装できます.p >
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/peterfox/cf430f2b1ab46ac63ee121fc86ffb904.js//>
< div >
一度我々がこのルートをテストするならば、我々は応答として単純なメッセージを取り戻さなければなりません
<> P >
クラスをハイライト表示する
{"message":"Hello"}
< div >
この応答は、< em > PHP < em/em >コードをロードしてロードランナーアプリケーションで逆シリアル化し、同じ構造体を返すようになったことを意味します.p >

結論


我々がここでしたことは、それほど見えないかもしれません、しかし、それは本当に非常に強力な何かの始まりです.フードの下では、< em > Go のパワーを< em > php アプリケーションに公開しました.p >
< em > < em > RPC < em >アクセシビリティは、< em >ロードランナー< em >プラグインが提供できる唯一の機能ではありませんし、将来的にはさらに< em > Golang を開発し、ロードランナーを使うことに少しのヒントを持っています.p >
私はピーターフォックス、他のものの間でララベルで動作する英国のソフトウェア開発者です.私の記事を読んでいただきありがとうございます、私はいくつかのミディアムとデブの詳細を持っている.あなたが私についてもっと知りたいならば、 まで頭を下げてください.また、私は@ Lilavelのヒントやチュートリアルの将来的に@私に従ってください.p >