タグ

DIコンテナとdiに関するlemonjpのブックマーク (8)

  • DIとは?DIコンテナとは?試してみた(前編)[PHP][DI] - あざらし備忘録。

    DIはダイジだーDIコンテナはベンリだーとかは色々聴いていたのですが、DIもDIコンテナも何もわかっていないので勉強してみようと思い少し試してみたのでメモ。 まずはDI編。 DIとは Dependency Injectionです。 依存性の注入です。 ...?(´・ω・`) 依存性?(´・ω・)注入?(´・ω・)っていう感じなのでもう少し詳しく深掘ってみます。 依存性とは 「クラスAを正しく動かすためには、クラスBが既に出来上がってないとだめ」という状態を、「クラスAはクラスBに依存している」といいます。 例を示します。(もろもろ言うことはあれどとりあえず依存している事がわかる実装になっていればよしとします) <?php class Song { public function __construct($title=null) { $this->title = $title; } publ

    DIとは?DIコンテナとは?試してみた(前編)[PHP][DI] - あざらし備忘録。
  • DIコンテナ【Dependency Injection Container】

    DIコンテナは,「DI(Dependency Injection:依存性の注入)」と呼ぶデザインパターンに基づいて作られたコンポーネント群を集中管理するためのソフトウエアです。 DIは,コンポーネント(クラス)間の依存関係をソースコードから取り除くことで,プログラムの実行時までコンポーネント同士が依存関係を持たないようにするデザインパターンです。 例えば,あるクラスAの中で別のクラスBのインスタンスを生成して利用しているとき,AはBに強く依存してしまっています。つまり,Bを別のクラスに差し替えたときなどにはAも変更しなければなりません。このような依存関係は,AとBを別の人が作っている場合などに特に困ります。 こうした依存性をクラスから取り除くのがDIパターンです。Bへの依存性をAから排除するには,まずBの機能を抽象化したインタフェースIを定義し,Iを実装したクラスとしてBを作ります。 Bの

    DIコンテナ【Dependency Injection Container】
  • 「速く、簡単に、もっときれいに:DIコンテナとサービスロケータを区別する方法について」を翻訳しました

    PHPメンターズ道場生 kumamidori です。 PHPのエキスパートとして世界的に知られている方の1人に、Paul M. Jonesさんがいらっしゃいます。 フレームワーク「Aura for PHP」のリードであり、PHP-FIGの策定メンバーに入られている方です。 通称 pmjones さんのブログで、昨年末、DIに関する下記エントリがありました。 「Quicker, Easier, More Seductive: How To Tell A DI Container From A Service Locator」 興味深い内容のようだったので、翻訳しました。翻訳記事の公開について、著者ご人から快諾頂けたため、掲載させて頂きます。 文中にあるとおり、この記事に対する訂正として、「Quicker, Easier, More Seductive: Names, Usage, and

    「速く、簡単に、もっときれいに:DIコンテナとサービスロケータを区別する方法について」を翻訳しました
  • PHP 5.3/5.4 best practices tutorial: dependency injection - DZone

  • DIコンテナ

    DIコンテナは,「DI(Dependency Injection:依存性の注入)」と呼ぶデザインパターンに基づいて作られたコンポーネント群を集中管理するためのソフトウエアです。 DIは,コンポーネント(クラス)間の依存関係をソースコードから取り除くことで,プログラムの実行時までコンポーネント同士が依存関係を持たないようにするデザインパターンです。 例えば,あるクラスAの中で別のクラスBのインスタンスを生成して利用しているとき,AはBに強く依存してしまっています。つまり,Bを別のクラスに差し替えたときなどにはAも変更しなければなりません。このような依存関係は,AとBを別の人が作っている場合などに特に困ります。 こうした依存性をクラスから取り除くのがDIパターンです。Bへの依存性をAから排除するには,まずBの機能を抽象化したインタフェースIを定義し,Iを実装したクラスとしてBを作ります。 Bの

    DIコンテナ
  • Pimpleでシンプルに正しくDIを理解する

    オブジェクト指向でソフトウェアを実装していると、オブジェクトの生成に一連の手続きが必要なものがでてきます。このような生成に関する手続きがあちこちのソースコードへ散在すると、望ましくない状況になることは想像に難くないでしょう。この問題に対処するために、Simple FactoryやFactory Methodといったデザインパターンがあり、オブジェクトの生成に関する手続きや関連オブジェクトも含めたオブジェクトの構成(オブジェクトコンストラクション)に関する知識は1箇所にまとめるということが定石となっています。 しかし、単にファクトリーを導入するだけだと、オブジェクトの構成処理は分離・隠蔽できても、利用オブジェクトがファクトリー自体に依存してしまうことになります。このような試行錯誤の歴史から登場したのがDependency Injection(依存性の注入)パターンです。Dependency

    Pimpleでシンプルに正しくDIを理解する
  • S2Container.PHP5を用いたDIベースの開発

    はじめに 皆さんは、Seasarファウンデーションをご存知でしょうか。2005年12月にNPO(非営利団体)として運営が開始されたオープンソースソフトウェア開発コミュニティです。 S2Container.PHP5は、Seasarファウンデーションの1プロジェクトとして開発が進められています。S2Containerとは、DI(Dependency Injection)とAOP(Aspect Oriented Programming)をサポートする軽量コンテナで、Javaで開発されました。S2Container.PHP5はS2ContainerをPHP5に移植したものです。2005年の5月にSeasarファウンデーションで開発がスタートし、2006年4月29日にS2Container.PHP5-1.1.0が正式にリリースされています。 稿では、PHP5環境で動作するS2Container.P

    S2Container.PHP5を用いたDIベースの開発
  • PHPのDIで動的にオブジェクトを確保する考察

    Dependency InjectionがPHPでも流行っているそうです。が、未だによくわからないので、わからないところを自分なりに考察してみます。 ※DIコンテナではなくデザインパターンとしてのDIを考えます。 Dependency Injectionとは Dependency Injectionはデザインパターンの一種です。日語なら依存性の注入と訳されます。「Inversion of Control コンテナと Dependency Injection パターン」が原典でしょうか。 ざっくり要約すると「クラスの中でnewしてはいけない。必要なインスタンスは外から突っ込むべし」というところかな。 class Y { private $x; function __construct() { $this->x = new X; } //...$xを使ったコード色々... } 上記のYクラス

    PHPのDIで動的にオブジェクトを確保する考察
  • 1