/** * @param int|string $methodNameOrInfoIndex * @return MethodScanner * @throws Exception\InvalidArgumentException */ public function getMethod($methodNameOrInfoIndex) { if ($this->classScanner->hasMethod($methodNameOrInfoIndex)) { return $this->classScanner->getMethod($methodNameOrInfoIndex); } foreach ($this->parentClassScanners as $pClassScanner) { if ($pClassScanner->hasMethod($methodNameOrInfoIndex)) { return $pClassScanner->getMethod($methodNameOrInfoIndex); } } throw new Exception\InvalidArgumentException(sprintf('Method %s not found in %s', $methodNameOrInfoIndex, $this->classScanner->getName())); }
public function compileScannerInstantiator(ClassScanner $scannerClass) { if ($scannerClass->hasMethod('__construct')) { $construct = $scannerClass->getMethod('__construct'); if ($construct->isPublic()) { return '__construct'; } } return null; // @todo scan parent classes for instantiator }