bulton-fr/methods-header-generator

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

0.1.2 2018-08-17 00:00 UTC

This package is auto-updated.

Last update: 2024-08-28 23:02:37 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()