/** * Returns a method introspection instance. * * @param string $method * * @throws InvalidArgumentException * * @return MethodInspector */ public function getMethod($method) { if (!$this->hasMethod($method)) { throw InvalidArgumentException::create('Method %s not found.', $method); } return $this->createMethodDefinition($this->reflection()->getName(), $method); }
/** * @param string $name * * @throws InvalidArgumentException * * @return PropertyInspector */ public function getProperty($name) { if (!$this->hasProperty($name)) { throw InvalidArgumentException::create('Property %s not found.', $name); } return $this->createPropertyDefinition($this->reflection()->getName(), $name); }
/** * @param string $name * * @throws InvalidArgumentException * * @return ConstantInspector */ public function getConstant($name) { if (!$this->hasConstant($name)) { throw InvalidArgumentException::create('Constant %s not found.', $name); } return $this->createConstantDefinition($this->reflection()->getName(), $name); }
/** * @param string $name * * @throws InvalidArgumentException * * @return InterfaceInspector */ public function getInterface($name) { if (!$this->implementsInterface($name)) { throw InvalidArgumentException::create('Interface %s not found.', $name); } try { return $this->createInterfaceDefinition($name); } catch (InvalidArgumentException $e) { return $this->createInterfaceDefinition($this->namespaceName() . '\\' . $name); } }
/** * @todo Real implementation should be written * * @throws RuntimeException */ public static function export($class, $name) { $constant = $class . '::' . $name; if (!defined($constant)) { throw InvalidArgumentException::create('Constant "%s" does not exist', $constant); } $reflect = new \ReflectionClass($class); $valOriginal = constant($constant); $valFormatted = $valOriginal; if (is_array($valOriginal)) { $valFormatted = ''; foreach ($valOriginal as $key => $value) { $valFormatted .= '[' . $key . '] => ' . ($value ?: 'NULL') . ', '; } $valFormatted = substr($valFormatted, 0, strlen($valFormatted) - 2); } elseif (is_null($valOriginal)) { $valFormatted = 'NULL'; } printf("Constant [ %s %s::%s ] {\n %s\n}", gettype($valOriginal), $reflect->getName(), $name, $valFormatted); }
/** * @param mixed ...$for * * @return InvalidArgumentException */ protected final function getConstructorException(...$for) { $message = []; foreach ($for as $i => $f) { $message[] = sprintf('parameter "%d" must be valid %s, got type "%s" containing "%s"', $i + 1, $f[0], gettype($f[1]), $f[1]); } return InvalidArgumentException::create('Invalid constructor parameters provided: %s', implode('; ', $message)); }