Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何防止ApiGen在替换@link时使用完全限定名_Php_Apigen - Fatal编程技术网

Php 如何防止ApiGen在替换@link时使用完全限定名

Php 如何防止ApiGen在替换@link时使用完全限定名,php,apigen,Php,Apigen,我们目前使用它来记录我们的PHP类。在我们的文档注释中,有很多类似这样的内联@link语句: {@link AbstractValidatableItem} 运行ApiGen时,语句会扩展为如下链接(请忽略href): 对于许多内联链接,这会创建一个几乎不可读的文本。因此,我希望有一个只包含简单类、接口或方法名称的链接: 有没有办法不用修补ApiGen就可以做到这一点?我已经试过了 {@link AbstractValidatableItem AbstractValidatableItem

我们目前使用它来记录我们的PHP类。在我们的文档注释中,有很多类似这样的内联
@link
语句:

{@link AbstractValidatableItem}
运行ApiGen时,语句会扩展为如下链接(请忽略
href
):

对于许多内联链接,这会创建一个几乎不可读的文本。因此,我希望有一个只包含简单类、接口或方法名称的链接:

有没有办法不用修补ApiGen就可以做到这一点?我已经试过了

{@link AbstractValidatableItem AbstractValidatableItem}

但这似乎破坏了链接的解析。

这不是我首选的解决方案,但我成功地快速修补了ApiGen,为我解决了这个问题:

——apigen/apigen/src/Templating/Filters/Helpers/ElementLinkFactory.php.orig Do 2015年8月13日14:51:13
+++apigen/apigen/src/Templating/Filters/Helpers/ElementLinkFactory.php Do 2015年8月13日14:51:33
@@-39,6+39,7@@class ElementLinkFactory
$this->linkBuilder=$linkBuilder;
}
+私有$FULLY_QUALIFIED_NAMES=false;
/**
*@返回字符串
@@-75,7+76,7@@class ElementLinkFactory
{
返回$this->linkBuilder->build(
$this->elementUrlFactory->createForClass($reflectionClass),
-$reflectionClass->getName(),
+$this->FULLY_QUALIFIED_name?$reflectionClass->getName():$reflectionClass->getShortName(),
是的,
$classes
);
@@-89,7+90,7@@class ElementLinkFactory
{
返回$this->linkBuilder->build(
$this->elementUrlFactory->createFormMethod($reflectionMethod),
-$reflectionMethod->getDeclaringClassName()。::'。$reflectionMethod->getName()。()',
+($this->FULLY_-QUALIFIED_-NAMES?$reflectionMethod->getDeclaringClass()->getName():::)。::'($this->FULLY_-QUALIFIED_-NAMES?$reflectionMethod->getName():$reflectionMethod->getShortName())。),
假,,
$classes
);
该补丁使它在解析的类上使用
getShortName()
而不是
getName()