bulton-fr/doc-struct-generator

将所有方法头生成到PHP类中。

0.1.2 2018-08-17 00:00 UTC

This package is auto-updated.

Last update: 2024-08-28 23:48:07 UTC


README

为项目中的所有类生成方法结构。可以作为编写文档的帮助。

Build Status Scrutinizer Code Quality Latest Stable Version License

安装

使用composer composer require bulton-fr/methods-header-generator

由于依赖 phpdocumentor/reflection-common2.0.0-beta1 中,您应该有 PHP >= 7.1

我会看看是否可以做一些事情来允许PHP 5.x版本。

使用方法

使用ProjectParser类

此类将取您的composer项目中声明的所有类,并检查它们。该类的其他功能是保存所有已解析的类,以避免在另一个类扩展它时重新解析(例如)。

关于composer,它应该有生成的类映射。因此,在安装或更新您的composer项目时,您应该使用选项 -o

示例: composer update -o

使用ProjectParser

$project = new \bultonFr\MethodsHeaderGenerator\ProjectParser('myVendorPath', ['myNamespaceToInspect\\']);
echo $project->run();

构造函数接受三个参数

  • $vendorDir 维护者目录的路径
  • $nsToParse 要解析的所有命名空间数组
  • $nsToIgnore 要忽略的所有命名空间数组

示例:在我的BFW项目中,我创建了文件:/docs/parser.php

<?php

$autoload = require_once(__DIR__.'/../vendor/autoload.php');

$project = new \bultonFr\MethodsHeaderGenerator\ProjectParser(
    __DIR__.'/../vendor',
    'BFW\\',
    'BFW\\Test\\'
);
echo $project->run();

我要求ProjectParse为以 \BFW\ 开头的命名空间的类生成结构,但忽略所有以 \BFW\Test 开头的命名空间的类,以免检查我的单元测试类。

不使用ProjectParser类

如果不使用ProjectParser,您将手动遍历所有类。对于每个类,您将实例化ClassParser,并将要检查的类名及其命名空间传递给它。

示例

$parser = new \bultonFr\MethodsHeaderGenerator\ClassParser('myClass');
echo $parser->run();

返回什么?

如果我在ProjectParser类上使用ClassParser,它将返回

bultonFr\MethodsHeaderGenerator\ProjectParser
self public __construct(string $vendorDir, string[]|string $nsToParse, [string[]|string $nsToIgnore=array()])
void public addToClasses(\bultonFr\MethodsHeaderGenerator\ClassParser $parser)
\bultonFr\MethodsHeaderGenerator\ClassParser[] public getClasses()
\bultonFr\MethodsHeaderGenerator\ClassParser public getClassesByName(string $className)
\Composer\Autoload\ClassLoader|null public getComposerLoader()
string[] public getNsToIgnore()
string[] public getNsToParse()
string public getVendorDir()
bool public hasClasses(string $className)
bool protected isIgnoredNS(string $className)
void protected obtainClassList()
void protected obtainComposerLoader()
string public run()