コード例 #1
0
 /**
  * Add new class definition
  *
  * @param $className
  * @param string $serviceName
  * @return ClassBuilderInterface
  * @throws \InvalidArgumentException
  * @throws ClassDefinitionAlreadyExistsException
  */
 public function addDefinition($className, string $serviceName = null) : ClassBuilderInterface
 {
     // Check if class already exists
     if ($this->hasDefinition($className)) {
         throw new ClassDefinitionAlreadyExistsException();
     }
     // Create new definition
     $classDefinition = new ClassDefinition($this);
     $classDefinition->setClassName(new ClassReference($className));
     if ($serviceName) {
         $classDefinition->setServiceName($serviceName);
     }
     // Register definition
     $this->definitionCollection[$className] = $classDefinition;
     return $classDefinition;
 }