Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. ClassCreator.php

class ClassCreator

Class creator. Creates specific class in current environment.

@author Konstantin Kudryashov <ever.zet@gmail.com>

Hierarchy

  • class \Prophecy\Doubler\Generator\ClassCreator

Expanded class hierarchy of ClassCreator

1 file declares its use of ClassCreator
Doubler.php in vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php

File

vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php, line 22

Namespace

Prophecy\Doubler\Generator
View source
class ClassCreator {
    private $generator;
    public function __construct(?ClassCodeGenerator $generator = null) {
        $this->generator = $generator ?: new ClassCodeGenerator();
    }
    
    /**
     * Creates class.
     *
     * @param string         $classname
     * @param Node\ClassNode $class
     *
     * @return mixed
     *
     * @throws \Prophecy\Exception\Doubler\ClassCreatorException
     */
    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;
    }

}

Members

Title Sort descending Modifiers Object type Summary
ClassCreator::$generator private property
ClassCreator::create public function Creates class.
ClassCreator::__construct public function
RSS feed
Powered by Drupal