PHP/Laravel の知識を増やそうとしているので、新しい機能を作成するときはインターフェイスを扱うようにしています。
状況を設定するには: 私たちの会社は 1 年間で口座振替プロバイダーを数回変更しました。そのため、将来の変更をより「足場」にするためにこのインターフェイスを作成したいと思いました。
私のコード構造:
アプリケーション\インターフェイス\DirectDebitインターフェイス
リーリーアプリケーション\サービス\DirectDebit\クライアント\ボトムライン
リーリーアプリ\プロバイダー\AppServiceProvider @register
リーリー現在の使用法は有効ですが、正しくないと感じます。getAccount() メソッドを使用したテスト エンドポイントを次に示します。
リーリー最初の質問は、クラスの変数設定でインターフェイスを使用している人を見たことがありません。
2 番目の質問は、Livewire を使用してデータをロードしているのですが、インターフェイスの使用方法がわかりません。
これが 2 番目の質問のサンプル コードです:
App\Http\Livewire\Example
リーリーメソッドにはパラメータを渡す必要があるため、上記のコードは失敗しますが、クラスはインターフェイスであるためインスタンス化することもできません。
私の知識に根本的なギャップがあるような気がすることは別として...私は正しい方向に進んでいるように見えますが、クラス/インターフェイスの使用法が正しく設定されていません。
メソッド内からこのインターフェイスを呼び出す方法について何か提案はありますか、それともどこかで問題が発生していますか?
###そこには、###
メソッドベースの依存関係注入を行っています。これは完全に有効ですが、おそらくコンストラクターベースの依存関係注入よりも一般的ではありません。どちらも同様の結果、つまり必要な依存関係を注入しますが、主な違いは依存関係の範囲 (メソッドとクラス) です。
標準の Laravel/PHP 環境では、コンストラクター インジェクションは次のようになります:
リーリーLivewire は、
リーリーComponent
で__construct
関数を使用する代わりに、mount()
関数を使用する必要があるという点で少し異なります。bindings
で サービス コンテナを正しく構成したと仮定すると、すべてが正常に動作するはずです。