setasign/php-stub-generator

一个用于为您的PHP类生成stub文件的工具。

v1.0.1 2020-12-04 09:12 UTC

This package is auto-updated.

Last update: 2024-08-29 04:43:02 UTC


README

一个用于为您的PHP类生成stub文件的工具。

该工具的主要目的是从PHP类生成stub文件,以便在用例如 ioncube编码器 加密您的库时,您的IDE可以提供代码补全功能。

Minimum PHP Version License

安装

可以通过Composer以基本方式安装

composer require setasign/php-stub-generator

Composer会将该工具安装到您的项目的vendor/setasign/php-stub-generator目录。

基本用法

<?php
declare(strict_types=1);

use setasign\PhpStubGenerator\PhpStubGenerator;
use setasign\PhpStubGenerator\Reader\AllFiles;

require_once __DIR__ . '/vendor/autoload.php';

$generator = new PhpStubGenerator();
$generator->addSource(
    'setapdf-core',
    new AllFiles(__DIR__ . '/vendor/setasign/setapdf-core/library')
);
$output = $generator->generate();

file_put_contents(__DIR__ . '/setapdf-core-stub.php', $output);

或者,您可以直接调用cli辅助工具。

vendor/bin/php-stub-generator generate setapdf-core/library setapdf-core-stub.php

设置

PhpStubGenerator类有以下设置

class PhpStubGenerator
{
    /**
     * End of line character(s).
     *
     * Doesn't change the used EOL character(s) of doc blocks.
     *
     * @var string
     */
    public static $eol = "\n";

    /**
     * Tab character(s)
     *
     * @var string
     */
    public static $tab = '    ';

    /**
     * If enabled all generated class constants get a visibility (the generated stubs require PHP >= 7.1)
     * 
     * Within the cli tool can be set with the option "--addClassConstantsVisibility"
     * 
     * @var bool
     */
    public static $addClassConstantsVisibility = false;
}

缺点/待办事项

  • 目前还不支持特性(traits),可能也不会支持,因为像这个问题这样的错误。实际的反射API没有提供足够的信息来重建冲突解决块。此外,导入的特性方法中的“声明类”是导入的类,而不是预期的特性。
  • 计算出的常量或使用其他常量(如__DIR__)的常量将填充运行时环境的值。