ホームページ  >  記事  >  バックエンド開発  >  Laravelの依存性注入とコンテナの概念を理解するにはどうすればよいですか?

Laravelの依存性注入とコンテナの概念を理解するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-09-23 11:31:061358ブラウズ

私はlaravelを初めて使用するので、ドキュメントのコンテナと依存関係の注入をまったく理解していません。誰かがそれが何であるかをわかりやすく説明できますか?実際のプロジェクトのどこで使用する必要がありますか?

返信内容:

私はlaravelを初めて使用するので、ドキュメントのコンテナと依存関係の注入をまったく理解していません。誰かがそれが何であるかをわかりやすく説明できますか?実際のプロジェクトのどこで使用する必要がありますか?

この記事はよく書かれています http://laravelacademy.org/pos...

Service Container,当A类工作需要依赖B、C类时,传统会在A类内部进行new B,new C后才能使用B,C提供的服务,这样会使得A类与B,C严重耦合。但是有了Service Container,就可以把依赖的构造过程由容器去解决,而A类只需要在ConstructorMethod Getter/Setter中注入B和C类或者B,C的抽象(接口),这就是构造器依赖注入和方法依赖注入(Dependency Injection),实现A类与B,C的解耦。如:如果注入的是B,C的接口,就可以随时替换掉B,C成为D,E,D,E只要实现对应的接口就行,这样A就与B,C实现松耦合。
Laravel中往Service Container中绑定服务的就是三种方法:bind(),singleton(),instance();解析出服务的是make()方法。解决构造依赖或方法依赖的是\Illuminate\Container\Container::getDependencies(),\Illuminate\Container\Container::call()方法。重要な知識ポイントの 1 つは、PHP のリフレクション機能の使用です。
詳細はソースコードをご覧ください。お役に立てれば。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。