Phpdocumentor 在供应商目录中查找自定义模板

Phpdocumentor looks for custom templates in vendor directory

我需要为 PhpDocumentor 创建自定义模板。问题是 template.xml 中定义的路径,即使指定为绝对路径,也无法正确解析。 PhpDocumentor 在供应商目录中查找它们。

<template>
    <author>Code Mine</author>
    <email>office@code-mine.com</email>
    <description>Template for Confluence API</description>
    <version>1.0.0</version>
    <transformations>
        <transformation writer="twig" source="./index.html.twig" artifact="index.html"/>
        <transformation query="indexes.namespaces" writer="twig" source="./namespace.html.twig" />
        <transformation query="indexes.classes" writer="twig" source="./class.html.twig" />
    </transformations>
</template>

尽管 twig 模板位于 xml 引用的路径中,但我收到文件不存在的错误。

编辑:

我也曾尝试在 phpdoc.xml 中设置所有配置细节,希望路径将被视为相对于配置文件,但没有成功。

如果我错了请纠正我,但似乎您可以在 CLI 上传递一个文件路径

https://www.phpdoc.org/docs/latest/getting-started/changing-the-look-and-feel.html

Using a custom template When you have a company or project-branded template you can also use that with phpDocumentor by providing the location of your template’s folder:

$ phpdoc -d "./src" -t "./docs/api" --template="data/templates/my_template"

您可能需要像这样 .. 退出 vendors 目录

--template="../../data/templates/my_template"

或传递绝对路径

--template="/var/scratch/foo/data/templates/my_template"

如果您使用 --template="..." 指定自定义模板,它将(出于某些奇怪的原因)将整个模板 复制 到 vendor 文件夹中连同原始模板,并且因此 template.xml 中的路径结构需要保持不变。你只需要改变例如。 templates/clean/templates/yourtemplatename/.

不过我在缓存方面遇到了问题。我无法让它每次都重新阅读我的模板。它已将其缓存在某个地方,我终生无法弄清楚在哪里。文档真的很糟糕,来源更糟糕。

更新: 最后发现它把我的模板缓存在我电脑的临时文件夹中。对于 Windows 例如:c:\Users\<username>\AppData\Local\Temp\phpdoc-twig-cache\。所以我只删除了整个文件夹。