1
私はApiGen 5.0.0-RC3を使用しており、.class
ファイルと.inc
ファイルと.php
ファイルを検索する方法を理解できません。ApiGen 5は複数のファイル拡張子をサポートしていますか?
私の質問は2つあります:第1に、.class
ファイルを認識させることは可能ですか?第2に、可能であれば、どのようにすればいいですか?
私はApiGen 5.0.0-RC3を使用しており、.class
ファイルと.inc
ファイルと.php
ファイルを検索する方法を理解できません。ApiGen 5は複数のファイル拡張子をサポートしていますか?
私の質問は2つあります:第1に、.class
ファイルを認識させることは可能ですか?第2に、可能であれば、どのようにすればいいですか?
私は方法を見つけました...しかし、それはかなりハッキーです。私は、他の人を助けることができるという希望でここに掲示しています。
解決策は実際にはApiGenではなく、roave/better-reflectionです。具体的には、ファイルsrc/SourceLocator/Type/FileIteratorSourceLocator.php
のメソッドgetAggregatedSourceLocator
で、無名関数で指定します。
置き換えます
private function getAggregatedSourceLocator() : AggregateSourceLocator
{
return $this->aggregateSourceLocator ?: new AggregateSourceLocator(array_values(array_filter(array_map(
function (\SplFileInfo $item) : ?SingleFileSourceLocator {
- if (! ($item->isFile() && pathinfo($item->getRealPath(), \PATHINFO_EXTENSION) === 'php')) {
return null;
}
return new SingleFileSourceLocator($item->getRealPath());
},
iterator_to_array($this->fileSystemIterator)
))));
}
をして:
private function getAggregatedSourceLocator() : AggregateSourceLocator
{
return $this->aggregateSourceLocator ?: new AggregateSourceLocator(array_values(array_filter(array_map(
function (\SplFileInfo $item) : ?SingleFileSourceLocator {
+ $flag = in_array(pathinfo($item->getRealPath(), \PATHINFO_EXTENSION), ['php', 'class']);
+ if (! ($item->isFile() && $flag)) {
return null;
}
return new SingleFileSourceLocator($item->getRealPath());
},
iterator_to_array($this->fileSystemIterator)
))));
}
作品のよう47b76f7をコミットし、バージョン何か