function 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 41
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;
}