https://github.com/Setasign/php-stub-generator
A tool to generate stub-files for your php classes.
https://github.com/Setasign/php-stub-generator
ioncube php reflection stubs
Last synced: 5 days ago
JSON representation
A tool to generate stub-files for your php classes.
- Host: GitHub
- URL: https://github.com/Setasign/php-stub-generator
- Owner: Setasign
- License: mit
- Created: 2017-08-18T07:28:30.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2024-11-18T11:22:57.000Z (8 months ago)
- Last Synced: 2024-11-18T12:32:11.808Z (8 months ago)
- Topics: ioncube, php, reflection, stubs
- Language: PHP
- Size: 152 KB
- Stars: 28
- Watchers: 4
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# php-stub-generator
A tool to generate stub-files for your php classes.The main purpose for this tool is to generate stub-files from php classes to have code
completion for your IDE when encrypting your library with e.g.
[the ioncube encoder](http://www.ioncube.com/php_encoder.php).[](https://php.net/)
[](https://packagist.org/packages/setasign/php-stub-generator)## Installation
A basic installation via Composer could be done this way:
```bash
composer require setasign/php-stub-generator
```Composer will install the tool to your project's `vendor/setasign/php-stub-generator` directory.
## Basic usage
```php
addSource(
'setapdf-core',
new AllFiles(__DIR__ . '/vendor/setasign/setapdf-core/library')
);
$output = $generator->generate();file_put_contents(__DIR__ . '/setapdf-core-stub.php', $output);
```Alternatively you could just call the cli helper.
```bash
vendor/bin/php-stub-generator generate setapdf-core/library setapdf-core-stub.php
```## Settings
The PhpStubGenerator class has following settings:
```php
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;
/**
* If false the interface \Stringable won't be filtered out (the generated stubs require PHP >= 8.0).
*
* Within the cli tool can be set with the option "--includeStringable"
*
* @var bool
*/
public static bool $includeStringable = false;
}
```## Drawbacks
- Calculated constants or constants that use other constants like \_\_DIR\_\_ will be filled with the values of the
runtime environment.
- Global Functions and Constants are currently ignored