public function initialize($extensionClass, $args = null) { if (!class_exists($extensionClass)) { if (true !== $this->classLoader->loadClass($extensionClass)) { throw new \InvalidArgumentException(sprintf("%s is not valid class.", $extensionClass)); } } $extensionReflection = new \ReflectionClass($extensionClass); $extension = is_array($args) && !empty($args) ? $extensionReflection->newInstanceArgs($args) : $extensionReflection->newInstance(); if (!$extension instanceof Extension) { throw new \InvalidArgumentException(sprintf("Class \"%s\" should be an instance of Coduo\\TuTu\\Extension", $extensionClass)); } return $extension; }
/** * @dataProvider getLoadClassNamespaceCollisionTests */ public function testLoadClassNamespaceCollision($namespaces, $className, $message) { $loader = new ClassLoader(); $loader->addPrefixes($namespaces); $loader->loadClass($className); $this->assertTrue(class_exists($className), $message); }
public function let(ClassLoader $classLoader) { $classLoader->loadClass(Argument::type('string'))->willReturn(false); $this->beConstructedWith($classLoader); }