skillup

技術ブログ

PHP

PHPにおけるDI

投稿日:2017年9月8日 更新日:

DIについての概要

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

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

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

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

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

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

https://github.com/umanari145/phptips

参考リンク

PHPでDI(Dependency Injection)

-PHP
-

執筆者:


comment

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

関連記事

no image

laravelでのredis活用

以前下記エントリーでredisの活用について書きました。 インメモリデータベース redis 一般的な使用法ですと登録できるデータはstring,list,hashのような比較的単純な形しか登録できな …

no image

CakePHP3系でのテスト処理

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

no image

ログライブラリについて

以前にも少し書いたログ設計に関する記事。 ログの設計指針について 上記でログの設計について書きましたが、今回はログのライブラリに関して欲しいと思う機能を。 Contents1 レベル分け2 チャネルわ …

no image

CakePHP3 日付ライブラリ(Time)について

CakePHPには標準でいろいろなライブラリが入っていますが、日付ではCake\I18n\Timeというライブラリが入っています。 内部では3.2より前のバージョンではCarbonだったようですが、そ …

no image

cakePHPでの多対多について

cakePHPで多対多のリレーションを使う機会があったので、その時のメモなどを。 多対多を説明するときには例によってブログの投稿(Item)とタグ(Tag)の関係が一番わかりやすいですね。 Conte …

アーカイブ