PHPでDIを学習中なのですが、
lang
1// クラス名をinjectする 2class C_b { 3 private $configClass; 4 5 function __construct($class='Config') { 6 if (!is_string($class)) throw new InvalidArgumentException; 7 if (!is_a($class, 'Config', true)) throw new InvalidArgumentException; 8 $this->configClass = $class; 9 } 10 11 function getConfig($filename) { 12 $content = file_get_contents($filename); 13 return new $this->configClass($content); 14 } 15} 16 17//インスタンス化サンプル 18$c = new C_b('MockConfig'); 19$config = $c->getConfig('foo.ini');
上記コードをブラウザで実行すると、
Fatal error: Uncaught exception 'InvalidArgumentException' in /var/www/html/board/Class/sampleDi.php:9 Stack trace: #0 /var/www/html/board/Class/sampleDi.php(20): C_b->__construct('MockConfig') #1 {main} thrown in /var/www/html/board/Class/sampleDi.php on line 9
と表示されるのですが、このエラーメッセージが何を意味するのかがわかりません。このエラーの解説をおねがいします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。