PHP code example of ock / class-files-iterator
1. Go to this page and download the library: Download ock/class-files-iterator 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/ */
ock / class-files-iterator example snippets
use Ock\ClassFilesIterator\ClassFilesIA\ClassFilesIAInterface;
use Ock\ClassFilesIterator\ClassNamesIA\ClassNamesIAInterface;
use Ock\ClassFilesIterator\NamespaceDirectory;
use Ock\ClassFilesIterator\Tests\Fixtures\Acme\Plant\VenusFlyTrap;
// Basic creation for a PSR-4 directory.
$basic_namespace_dir = NamespaceDirectory::create($basedir . '/src', 'Acme\\Foo');
// Convenient creation with a "seed" class.
// The directory is determined automatically with ReflectionClass::getFileName().
$namespace_dir = NamespaceDirectory::fromClass(VenusFlyTrap::class);
// Iterate class names by integer key.
function foo(ClassNamesIAInterface $classNamesIA): void {
foreach ($classNamesIA as $class) {
assert(class_exists($class));
}
}
// Iterate class names with file path as key.
function foo(ClassFilesIAInterface $classNamesIA): void {
foreach ($classNamesIA as $file => $class) {
assert(file_exists($file));
assert(class_exists($class));
}
}
// Get reflection classes.
function foo(ClassFilesIAInterface $classFilesIA): void {
foreach ($classFilesIA as $file => $class) {
try {
$rc = new \ReflectionClass($class);
}
catch (\ReflectionException|\Error) {
// Skip non-existing classes / interfaces / traits.
// Skip if a base class or interface is missing.
// Unfortunately, missing traits still cause fatal error.
continue;
}
// Ignore if the class is defined elsewhere.
if ($rc->getFileName() !== $file && realpath($rc->getFileName()) !== realpath($file)) {
continue;
}
do_something($rc);
}
}