setasign / php-stub-generator
一个用于为您的PHP类生成stub文件的工具。
v1.0.1
2020-12-04 09:12 UTC
Requires
- php: ^7.2 || ^8.0
- ext-mbstring: *
- ext-pcre: *
- goaop/parser-reflection: ^2.1
- symfony/console: ^4.0
Requires (Dev)
- php-defer/php-defer: ^4.0
- phpstan/phpstan: ^0.12
- phpunit/phpunit: ^8.0
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2024-08-29 04:43:02 UTC
README
一个用于为您的PHP类生成stub文件的工具。
该工具的主要目的是从PHP类生成stub文件,以便在用例如 ioncube编码器 加密您的库时,您的IDE可以提供代码补全功能。
安装
可以通过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__)的常量将填充运行时环境的值。