/** * @return static|null */ public static function fromName($name, Language $lang = null, Project $proj = null) { $result = null; $name = \trim($name); if ('' !== $name) { $result = new static(); $result->_name = $name; if (\interface_exists($name) || \trait_exists($name) || \class_exists($name)) { $result->_reflector = new \ReflectionClass($name); if (!$result->_reflector->isUserDefined()) { // PHP type $phpLang = 'en'; if (null !== $lang) { $phpLang = $lang->id(); } $result->_link = \sprintf('http://php.net/manual/%s/class.%s.php', $phpLang, \trim(\strtolower(\str_ireplace("\\", '.', $result->_reflector->getName())))); } else { if (null !== $proj) { foreach ($proj->classes() as $cls) { if ($cls->reflector()->getName() === $result->_reflector->getName()) { $result->_link = $cls->getDocumentFilename($lang); } } } } } else { switch ($name) { case 'callable': $result->_link = 'https://github.com/mkloubert/phpLINQ/wiki/Callable'; break; } } } else { $result = null; } return $result; }
public function getDocumentFilename(Language $lang = null) { $className = $this->class_()->reflector()->getName(); $className = \str_ireplace("\\", '.', $className); $methodName = $this->reflector()->getName(); return \sprintf('method.%s.%s.%s.html', $lang->id(), $className, $methodName); }
public function getDocumentFilename(Language $lang = null) { return \sprintf('index.%s.html', $lang->id()); }