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.
A basic installation via Composer could be done this way:
composer require setasign/php-stub-generator
Composer will install the tool to your project's vendor/setasign/php-stub-generator
directory.
<?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);
Alternatively you could just call the cli helper.
vendor/bin/php-stub-generator generate setapdf-core/library setapdf-core-stub.php
The PhpStubGenerator class has following settings:
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;
}
- 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