私は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 \ Http \ index.phpのカーネルレスポンスが1秒以上実行する
- 3. Laravelのデータベースシードとは何ですか?
- 4. Eiffel Contracts疑念
- 5. laravel、ルートヘルパー(getとpost)とは何ですか?
- 6. Laravelのルーティングとコントローラとは何ですか?
- 7. Laravelフレームワークで.bladeを使用することは何ですか?
- 8. 理由は何ですか:laravel 5
- 9. laravelビューのe()メソッドは何ですか?
- 10. {{}}と{!!の違いは何ですか? !!} laravelブレードファイルには?
- 11. Laravelで使用されている `HtmlString`とは何ですか?
- 12. .Net 4 Code Contractsスタティックアナライザーの代替品はありますか?
- 13. LaravelとAsgardCMSのインストール時にアクセスするURLは何ですか?
- 14. 'Illuminate \ Contracts \ Auth \ Access \ Authorizable'のインターフェイスが見つかりませんでした。
- 15. laravelのfillableとguardの違いは何ですか?
- 16. Laravel 5.1 DB BuilderとEloquentのlockForUpdateの違いは何ですか?
- 17. laravelの作曲家とは何ですか?
- 18. Laravelの 'extends Authenticatable'と 'extends models'の違いは何ですか?
- 19. php laravel画像介入のStream()関数とは何ですか
- 20. ターゲット[Illuminate \ Contracts \ Debug \ ExceptionHandler]がインスタンス化できません
- 21. LaravelとAJAXは何も返さない
- 22. LaravelではRoute :: modelの意味は何ですか?
- 23. エリキシル(Laravel)で.versionを使用することの重要性は何ですか?
- 24. 'php artisan serve'というコマンドでLaravelを実行するポイントは何ですか?
- 25. LaravelでフレンドリーなURLを処理するベストプラクティスは何ですか?
- 26. laravelで定数を追加するベストプラクティスは何ですか? (ロングリスト)
- 27. Laravelで$ _GET値にアクセスするベストプラクティスは何ですか?
- 28. laravel 5でカスタムリクエストクラスを作成する目的は何ですか?
- 29. C#Contracts vs NotNull/Javaで自分自身をロールアップする
- 30. オプション+ FollowSymLinksとは何ですか?