タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

DIとphpに関するtaketsのブックマーク (6)

  • 最高にわかるDIコンテナ(特にPHPにフォーカスした - Qiita

    DIとは Dependency Injection(依存性の注入)の略です。 依存性の注入とはなんぞやということになりますよね。そもそもプログラムで依存するってどういうこと? 依存性って何 プログラムにおける依存性というのを簡単に説明すると、ファミコンなどのカセットが良い例です。 テトリスしか出来ないゲーム機 ファミコンなどのカセットを取り替えれるゲーム機 この2つのゲーム機があった時、テトリスしか出来ないゲーム機はテトリスというゲームゲーム機が依存していることになります。 ファミコンだったらカセットを取り替えれるからゲーム機はゲームに依存してませんよね。カセットというインターフェースが同じものであれば基的には利用できることになります。 テトリス専用ゲーム機の場合 まず、テトリス専用ゲーム機をプログラムでこれを例として示そうとするとこんな感じでしょうか。 class GameConso

    最高にわかるDIコンテナ(特にPHPにフォーカスした - Qiita
    takets
    takets 2019/06/18
  • 初学者でも5分で理解できるようにDI(Dependency Injection)を説明してみた - Qiita

    この記事の説明 この記事はプログラミング初学時に自分が知りたかった3点に絞り、 かつ可能な限り端的に説明をして概要を掴んで頂く為に書きました。 そもそもDIって? どんなメリット(必要性)ある? 具体的に言うと? 上記3点のみに絞って書いているので、かゆい所には手が届いておりません。 あしからず。 ※ 今回はDIの説明に集中するため、DIコンテナ等の具体的な利用例については割愛しています。 そもそもDI(Dependency Injection)って? 一言で言うと、 『使いたいオブジェクトを渡してあげること』 そんだけです。 これだけでは逆にわかり辛いかもしれませんが、当にそれだけです。 がんがん渡しましょう。 // 使いたいオブジェクト $d = new Di(); // コンストラクタで渡した! $obj = new Obj($d); // セッターで渡した! $obj = new

    初学者でも5分で理解できるようにDI(Dependency Injection)を説明してみた - Qiita
    takets
    takets 2018/06/04
    diの効果についてのわかりやすい説明
  • やはりあなた方のDependency Injectionはまちがっている。 — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or something

    今日はPHP界隈で大人気のDependency Injectionと、それに関連する用語について整理しておこうと思います。 以下のような状況があるのではないか?と思ったからです。 多くのPHPユーザがDependency Injection(DI)をよくわかっていない、あるいは正確に説明できません。 そして、デザインパターンである「DIパターン」とDIをサポートするツールである「DIコンテナ」を混同しています。 また、「DIパターン」と「サービスロケータパターン」をうまく区別できていません。 Dependency Injectionとは何か? Dependency Injectionとは「Dependency」を「Injection」するというデザインパターンです。 日語では何故か「依存性の注入」と訳されており、これが混乱の元ではないかと思います。 日語で「依存性」と言うと、「依存性は

    takets
    takets 2015/09/02
    diのいいまとめ。依存がなくなるわけではない、というのにはっとなった。
  • 依存性注入(DI)の解説とやり方 - Qiita

    依存性注入 (Dependency Injection) は、クラスを単体テスト可能にするために使われるテクニックです。 これが意識されていないが故に単体テストが全くできないコードをよく見かけます。 単体テストの際には必ず必要になる知識なので、解説しておきます。 以下のサンプルでは PHPUnit を利用しています。 悪い例: 単体テストができないケース 以下のような Foo クラスの play() メソッドは、単体テストケースが書けません。 class Foo { public function play() { $bar = new Bar(); if ($bar->getSomething() === 1) { return true; } return false; } } play() 内で外部クラス Bar をインスタンス化しています。つまり Foo::play() メソッドは

    依存性注入(DI)の解説とやり方 - Qiita
    takets
    takets 2015/07/24
    はじめて使えそうなDIの説明を見た。
  • 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] - あざらし備忘録。
    takets
    takets 2014/12/16
    「クラスAを正しく動かすためには、クラスBが既に出来上がってないとだめ」という状態を、「クラスAはクラスBに依存している」といいます。
  • PHPでDI(Dependency Injection) - Qiita

    何かと話題のPHPでのDIについてまとめてみました。 そもそも DI(Dependency Injection)ってなんぞ? その名の通り、 依存性(Dependency)の 注入(Injection)です。 依存をクラス内で生成せずに外から設定します。 まだパッとしないので具体例を挙げて説明してみます。 まずDIでないパターン class Car { /** * @var EngineInterface */ private $engine; public function __construct() { $this->engine = new Engine(); } public function run() { $energy = $this->engine->burn(); } } このコードの良くない点 別のエンジンに変えたい時にCar.phpを修正しなければならない。 エンジン

    PHPでDI(Dependency Injection) - Qiita
    takets
    takets 2014/12/16
    DIのどこがいいのか?についての説明。これで理解できた。
  • 1