Auryn

(2016/08/14)
  • PHPDIコンテナ

  • https://github.com/rdlowrey/Auryn
  • READMEがエモい
  • auryn is a recursive dependency injector. Use auryn to bootstrap and wire together S.O.L.I.D., object-oriented PHP applications.
  • Reflection遅い?でもDBアクセスとかディスクアクセスのほうが遅いし、Reflectionの結果はキャッシュするぜ、って言ってる
  • サービスロケータはアンチパターンと言ってる
  • 過激
  • 以下機能

  • 基本は自動解決っぽい
  • $injectior->make('Hoge\Moge');
  • $injector->define('Car', ['engine' => 'V8']);でコンストラクタの引数を指定できる
  • $injector->alias()でLaravelで言うbind()が可能
  • クラス以外のコンストラクタ引数もdefine()で指定可能
  • defineParam()で特定の変数名(引数名)に渡すオブジェクトを指定可能
  • その後グローバルに有効
  • 混乱しそう。。。
  • $injector->share($instance);でシングルトンが指定可能
  • $injector->deligate();でClouserを渡すことが可能
  • $injector->prepare();でインスタンス生成後の処理が可能
  • コレ使って自分でセッターインジェクションしてねって感じっぽい
  • 思えばコレでいいよな
  • $injector->exec()で即時処理実行が可能
  • 誰得なんだろう。。。
  • DI DIコンテナ PHP

general(396)