private function loadDefinitions(ContainerBuilder $builder)
 {
     $classes = $this->robotLoader->getIndexedClasses();
     $markerInterface = new ClassType(IServiceMarker::class);
     foreach ($classes as $key => $val) {
         if (Strings::endsWith($key, 'Service')) {
             $reflection = new ClassType($key);
             $serviceName = '_auto.' . str_replace("\\", "_", $key);
             if (!$reflection->isAbstract() && $reflection->isSubclassOf($markerInterface)) {
                 $builder->addDefinition($serviceName)->setClass($key);
             }
         }
     }
 }
Ejemplo n.º 2
0
 /**
  * Returns all parameters of the constructor which type is dao object.
  *
  * @param string $class
  * @return array array of parameter's names
  */
 private function findConstructorDaoParameters($class)
 {
     $reflection = new Reflection($class);
     $daoParameters = array();
     foreach ($reflection->constructor->parameters as $parameter) {
         $parameterClass = $parameter->getClassName();
         if ($parameterClass) {
             $parameterReflection = new Reflection($parameterClass);
             if ($parameterReflection->getName() === self::DAO_CLASS || $parameterReflection->isSubclassOf(self::DAO_CLASS)) {
                 $daoParameters[] = $parameter->getName();
             }
         }
     }
     return $daoParameters;
 }