public function ClassCreator::create in Zircon Profile 8.0
Same name and namespace in other branches
- 8 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php \Prophecy\Doubler\Generator\ClassCreator::create()
Creates class.
Parameters
string $classname:
Node\ClassNode $class:
Return value
mixed
Throws
\Prophecy\Exception\Doubler\ClassCreatorException
File
- vendor/
phpspec/ prophecy/ src/ Prophecy/ Doubler/ Generator/ ClassCreator.php, line 46
Class
- ClassCreator
- Class creator. Creates specific class in current environment.
Namespace
Prophecy\Doubler\GeneratorCode
public function create($classname, Node\ClassNode $class) {
$code = $this->generator
->generate($classname, $class);
$return = eval($code);
if (!class_exists($classname, false)) {
if (count($class
->getInterfaces())) {
throw new ClassCreatorException(sprintf('Could not double `%s` and implement interfaces: [%s].', $class
->getParentClass(), implode(', ', $class
->getInterfaces())), $class);
}
throw new ClassCreatorException(sprintf('Could not double `%s`.', $class
->getParentClass()), $class);
}
return $return;
}