私はLaravelを初めて利用しました&私はそれがContracts
を呼び出す機能について何か知りたいと思っていました。
(私の質問が適切でない場合は、理由を知ってもらい、それをdownvoteしないでください)。
私はLaravelドキュメンテーションの赤い部分から、Laracastのビデオについて言うと、彼らは契約がクラス実装のためのインタフェースであることを理解しました。
それは何のために良いですか?もし私や他の誰かがそれらのインターフェースを実装するならば、すべてのインターフェースが必要になりますし、私のコードを変更する必要はありませんか?
Laravelが契約の実装を使用している理由はそれですか? また、実装を実現するために、実装を契約にバインドする必要があることを知りたいと思いますか?Laravel Contractsとは何ですか?
2
A
答えて
2
はい、あなたのご理解は大体正しいと思います。私は例を説明しようとします。例えば、PackageDeliveryServiceContract
にtrackPackage
、getShippingCost
などのメソッドがあるとします。
FedexDeliveryService
を作成して、契約に準拠し、それらのメソッドを実装します。
コントローラでは、PackageDeliveryServiceContract
を注入してすぐに使用できます。 (あなたはlaravelの依存性注入に精通していますか?)
もう一度、フェデックスで出荷してUPSを使用する必要がなくなったとします。その契約にも従ってUPSDeliveryService
を作成することができます。
バインドをFedexDeliveryService
からUPSDeliveryService
に変更するだけで、コントローラコードを変更する必要はありません。
通常、サービスプロバイダ内の契約と実装の間のバインディングは、app/Providers/AppServiceProvider.php
関連する問題
- 1. Laravel 5のインターフェイス 'Illuminate \ Contracts \ Broadcasting \ ShouldBroadcast'が見つかりません
- 2. Laravel: 'Illuminate \ Contracts \ Queue \ QueueableCollection'インターフェイスが見つかりません
- 3. Laravel Illuminate \ Contracts \ Http \ index.phpのカーネルレスポンスが1秒以上実行する
- 4. Eiffel Contracts疑念
- 5. laravelのミドルウェアとは何ですか?
- 6. Laravelのブレードディレクティブとは何ですか?
- 7. Laravelの閉鎖とは何ですか?
- 8. Laravelのデータベースシードとは何ですか?
- 9. Laravelでは生産環境とは何ですか?
- 10. Laravelのルーティングとコントローラとは何ですか?
- 11. laravel、ルートヘルパー(getとpost)とは何ですか?
- 12. Laravelフレームワークで.bladeを使用することは何ですか?
- 13. Laravel、平均変数$ appとは何か
- 14. laravelビューのe()メソッドは何ですか?
- 15. 理由は何ですか:laravel 5
- 16. .Net 4 Code Contractsスタティックアナライザーの代替品はありますか?
- 17. {{}}と{!!の違いは何ですか? !!} laravelブレードファイルには?
- 18. Laravelで使用されている `HtmlString`とは何ですか?
- 19. 'Illuminate \ Contracts \ Auth \ Access \ Authorizable'のインターフェイスが見つかりませんでした。
- 20. LaravelとAsgardCMSのインストール時にアクセスするURLは何ですか?
- 21. laravelメソッドとtrait vs facadeの違いは何ですか
- 22. php laravel画像介入のStream()関数とは何ですか
- 23. Codeigniter、CakePHP、Laravel、Zend、symphonyとは何ですか?
- 24. Model FactoryとLaravelのDBシーダの違いは何ですか?
- 25. Laravelの 'extends Authenticatable'と 'extends models'の違いは何ですか?
- 26. laravelの作曲家とは何ですか?
- 27. env laravelのSESSION_DRIVER = fileとSESSION_DRIVER = redisの違いは何ですか?
- 28. ファサードとは何ですか? (特にLaravelの場合)
- 29. laravel 5のモデルとリポジトリの違いは何ですか?
- 30. laravelのfillableとguardの違いは何ですか?