PHP code example of nastuzzi-samy / reflection-namespace
1. Go to this page and download the library: Download nastuzzi-samy/reflection-namespace 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/ */
nastuzzi-samy / reflection-namespace example snippets
// Regroup the namespace generated by our projet and the RandomPackage package:
new \ReflectionNamespace('App');
new \ReflectionNamespace('App\\'); // It is the same that the previous one.
new \ReflectionNamespace('\\App\\'); // Same.
new \ReflectionNamespace('\\App'); // Same.
// Regroup the namespace generated by our RandomPackage package:
new \ReflectionNamespace('App\Console');
new \ReflectionNamespace('App\Console\\'); // It is the same that the previous one.
new \ReflectionNamespace('\\App\Console'); // Same.
new \ReflectionNamespace('\\App\Console\\'); // Same.
$modelsReflection = new \ReflectionNamespace('App\\Models');
// Equivalent to: new \ReflectionNamespace('App');
$appReflection = $modelsReflection->getParent();
/*
Get all class names under App\Models.
Equivalent to:
[
'User' => 'App\\Models\\User',
'Group' => 'App\\Models\\Group',
];
*/
$modelsReflection->getClassNames();
/*
Get all classes under App\Models.
Equivalent to:
[
'User' => new \ReflectionClass('App\\Models\\User'),
'Group' => new \ReflectionClass('App\\Models\\Group'),
];
*/
$modelsReflection->getClasses();
/*
Get all namespace full names under App.
Equivalent to:
[
'Console' => 'App\\Console',
'Http' => 'App\\Http',
'Models' => 'App\\Models',
];
*/
$appReflection->getNamespaceNames();
/*
Get all namespaces under App.
Equivalent to:
[
'Console' => new \ReflectionNamespace('App\\Console'),
'Http' => new \ReflectionNamespace('App\\Http'),
'Models' => new \ReflectionNamespace('App\\Models'),
];
*/
$appReflection->getNamespaces();
// Equivalent to: new \ReflectionClass('App\\Models\\User');
$modelsReflection->getClass('User');
// Throw an exception.
$modelsReflection->getClass('NoModel');
echo $appReflection->hasNamespace('Models'); // TRUE
echo $modelsReflection->hasNamespace('User'); // FALSE
// Ask the class to load also from PSR-0.
\ReflectionNamespace::loadPRS0(TRUE);
// Refresh all loaded data:
$modelsReflection->reload();
$appReflection->reload();
// Ask the class not to load from PSR-0.
\ReflectionNamespace::loadPRS0(FALSE);
// Ask the class to load also from loaded classes, interfaces and traits.
\ReflectionNamespace::loadDeclaredClasses(TRUE);
// Refresh all loaded data:
$modelsReflection->reload();
$appReflection->reload();
// Ask the class not to load from loaded classes, interfaces and traits.
\ReflectionNamespace::loadDeclaredClasses(FALSE);
// Ask to reload all loaders:
\ReflectionNamespace::getLoaders(TRUE);
// Refresh all loaded data to use the full loader list:
$modelsReflection->reload();
$appReflection->reload();
$myNewLoader = new \Composer\Autoload\ClassLoader();
/* work on $myNewLoader... */
$appReflection->fillWithLoader($myNewLoader);