skillup

技術ブログ

PHP

PHPにおけるDI

投稿日:

DIについての概要

PHPでのDI(Dependency Injection)に関して。

オブジェクト指向の本を読むにつれて少しずつDIの有効性がわかってきました。

現状でのDIのメリットをまとめると下記のような点かと。

  • 外部からのクラスを注入することにより、クラス自体を単一責任にすることができる
  • 上記のメリットにより、注入される側のクラスの依存度が下がり、単体でのクラスのテストが簡単
  • インターフェイスを定義することで注入する側のクラスのインスタンスが変更されても問題ない
  • DIの注入をする部分がFactory。変更する場合はここのみを変えておけばOK。(スイッチを切り替えるイメージ)

自分の中では単一の機能の話というよりは、プログラムの書き方自体にかかわってくる思想そのものという感じです。

自分が作った簡単なサンプル(リンクの写経)

https://github.com/umanari145/phptips

参考リンク

PHPでDIをする

PHPでDI(Dependency Injection)

DI(依存性注入)がいみわからん

-PHP
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

CakePHP3系でのテスト処理

以前CakePHP2系のテストは書きましたが、3系は若干仕様が違いますので、3について書こうと思います。例によってエントリーレベルですが。 Contents1 準備1.1 phpunit1.2 テスト …

no image

composerでのライブラリ登録

今回はPHPのパッケージ管理ツールであるcomposerへのライブラリ登録を。 Contents1 ライブラリの作成2 packagistへの登録3 呼び出す側3.1 composer.json3.2 …

no image

call_user_funcについて

call_user_funcについて。 call_user_funcはメソッドを動的に呼ぶことができるメソッドの1つで、コールバック関数を使いたいときに使われます。JavaScriptでは比較的多いと …

no image

CakePHP2系でのテスト処理

cakePHP2系でのテストの処理について。 PHPでのテストといえばphpunitが有名かと思います。cakePHPでも標準でphpunitがはいっており、ユニットテストを行うことができます。 Co …

no image

WordPressでのアイキャッチ画像

このブログと並行して更新しているガチンコ塾のブログですが、アイキャッチをブログ内にいれました。 画像をいれると文章の見やすさもだいぶ変わってくると思うので、アイキャッチの入れ方についてここに書いておき …