/** * @param ServiceDescriptor $sd * @throws NonExistentServiceException */ public function check(ServiceDescriptor $sd) { if (!$sd->exists()) { /*var_dump($serviceDescriptor->getServiceName()); var_dump($serviceDescriptor->getContainerBuilder()->get($serviceDescriptor->getServiceName())); die;*/ throw new NonExistentServiceException(sprintf('the service %s do not exists', $sd->getServiceName())); } }
/** * @param ServiceDescriptor $sd * @param $factoryService * @throws NonExistentFactoryMethodException */ private function checkFactoryService(ServiceDescriptor $sd, $factoryService) { $definition = $sd->getDefinition(); $reflection = new \ReflectionClass($factoryService); $factoryMethod = $definition->getFactoryMethod(); if (!$reflection->hasMethod($factoryMethod)) { throw new NonExistentFactoryMethodException('error, factory method do not esists'); } $method = $reflection->getMethod($factoryMethod); $this->compare($sd, $definition->getArguments(), $method->getParameters()); }
/** * @param ServiceDescriptor $sd * @throws UnusedArgument * @return void */ public function check(ServiceDescriptor $sd) { $refl = new \ReflectionClass($sd->getDefinition()->getClass()); $filename = $refl->getFileName(); if (false === $filename) { return; } $this->fileContent = file_get_contents($filename); $constr = $refl->getConstructor(); /** @var \ReflectionParameter $param */ foreach ($constr->getParameters() as $param) { if ($this->isNotUsed($param->getName())) { throw new UnusedArgument($param->getName()); } } }
/** * @param ServiceDescriptor $sd * @throws NonExistentClassException */ public function check(ServiceDescriptor $sd) { if ($sd->isAlias()) { return; } $class = $sd->getDefinition()->getClass(); if ($this->isParameter($class)) { $class = $sd->getContainer()->getParameter(trim($class, '%')); } $factoryClass = $sd->getDefinition()->getFactoryClass(); if ($this->isParameter($factoryClass)) { $factoryClass = $sd->getContainer()->getParameter(trim($factoryClass, '%')); } if (is_null($class) && is_null($factoryClass)) { return; } if (interface_exists($class) && is_null($factoryClass)) { return; } if (interface_exists($class) && class_exists($factoryClass)) { return; } if (!class_exists($class)) { throw new NonExistentClassException(sprintf('the class %s for the service %s does not exists', $class, $sd->getServiceName())); } }
public function setServiceDescriptor(ServiceDescriptor $sd) { $this->serviceName = $sd->getServiceName(); $this->class = $sd->getDefinition()->getClass(); $this->factoryService = $sd->getDefinition()->getFactoryService(); $this->factoryClass = $sd->getDefinition()->getFactoryClass(); $this->factoryMethod = $sd->getDefinition()->getFactoryMethod(); $this->message = sprintf("--------\nProblem found in <info>%s</info>", $this->serviceName); }