/** * Read class constructor signature * * @param string $className * @return ConstructorArgument[]|null * @throws \ReflectionException */ public function getConstructor($className) { $unmappedArguments = $this->classReader->getConstructor($className); if ($unmappedArguments === null) { return $unmappedArguments; } $arguments = []; foreach ($unmappedArguments as $argument) { $arguments[] = new ConstructorArgument($argument); } return $arguments; }
/** * Get list of method parameters * * Retrieve an ordered list of constructor parameters. * Each value is an array with following entries: * * array( * 0, // string: Parameter name * 1, // string|null: Parameter type * 2, // bool: whether this param is required * 3, // mixed: default value * ); * * @param string $className * @return array|null */ public function getParameters($className) { // if the definition isn't found in the list gathered from the compiled file then using reflection to find it if (!array_key_exists($className, $this->_definitions)) { return $this->reader->getConstructor($className); } $definition = $this->_definitions[$className]; if ($definition !== null) { if (is_string($this->_signatures[$definition])) { $this->_signatures[$definition] = $this->_unpack($this->_signatures[$definition]); } return $this->_signatures[$definition]; } return null; }