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

cakePHPでのバッチスクリプト

cakeでバッチのプログラムを書く機会があったのでメモします。 まあ、バッチだったらcakeでなくてもいいのですが、やはりcakeのModelをいろいろと使えると便利ですので・・ まずファイルパスです …

no image

PHPのオートローディング

大規模開発では扱うファイルが増えるため、必要なクラスの読み込みが煩雑になるケースが多いです。 Contents1 従来のPHPのファイルのロード2 オートローディングとは3 サンプルソース4 メモ5 …

no image

nginxをいれているサーバーでのPHP停止

ちょっとトラブル対応的なネタです。 先日、PHPで書かれているシステムが突然使用できなくなるという連絡があるお客様からありました。 原因としてはカゴヤのサーバー再起動により、php-fpmが起動してい …

no image

CakePHP3 Csvプラグイン

cakePHPでのCSVダウンロードプラグインを実装 Contents1 インストール2 プログラム3 注意点4 参考 インストール composer.jsonに下記のように書いてcomposer u …

no image

メールパーサー(mailparseとphp-mime-mail-parser)に関して

以前、POP3を使ったメール受信というエントリーでメールパーサーをインストールしたんですが、他のライブラリをインストールする機会があったんでメモ。 https://github.com/php-mim …

アーカイブ