1. Go to this page and download the library: Download type-lang/reader library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
type-lang / reader example snippets
$reader = new \TypeLang\Reader\ReflectionReader();
$node = $reader->findFunctionType(
function: new \ReflectionFunction(function(): void {}),
);
var_dump($node);
$class = new \ReflectionClass(Path\To\Example::class);
// Printer component provided by "type-lang/printer" package.
$printer = new \TypeLang\Printer\PrettyPrinter();
$converter = new \TypeLang\Reader\ReflectionReader();
// Dump all constants with its types.
foreach ($class->getReflectionConstants() as $constant) {
// Creates type node AST from a constant's type.
if ($type = $converter->findConstantType($constant)) {
echo 'const ' . $constant->name . ' has type ' . $printer->print($type) . "\n";
}
}
// Dump all properties with its types.
foreach ($class->getProperties() as $property) {
// Creates type node AST from a property's type.
if ($type = $converter->findPropertyType($property)) {
echo 'property ' . $property->name . ' has type ' . $printer->print($type) . "\n";
}
}
// Dump all methods with its types.
foreach ($class->getMethods() as $method) {
// Creates type node AST from any function's return type.
if ($type = $converter->findFunctionType($method)) {
echo 'function ' . $method->name . ' has type ' . $printer->print($type) . "\n";
}
// Creates type node AST from a parameter's type.
foreach ($method->getParameters() as $parameter) {
if ($type = $converter->findParameterType($parameter)) {
echo 'parameter ' . $parameter->name . ' has type ' . $printer->print($type) . "\n";
}
}
}