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