dev-master
9999999-devLibrary to covert class names to file paths and vice-versa
MIT
The Requires
The Development Requires
by Daniel Leech
Wallogit.com
2017 © Pedro Peláez
Library to covert class names to file paths and vice-versa
This library provides facilities to guess/transform class names to files paths and vice-versa., (*2)
It uses the composer autoload to guess the best candidates using PSR-0 and PSR-4., (*3)
// require the composer autoloader for the class you want to investigate
$autoloader = require(__DIR__ . '/vendor/autoload.php');
// for file candidates
$converter = ClassFileConverter::fromComposerAutoloader($autoloader);
$candidates = $classToFile->classToFileCandidates(ClassName::fromString('Foobar\\Barfoo\\MyClass'));
echo (string) $candidates->empty(); // return true if there are no candidates
echo (string) $candidates->best(); // path to the "best" candidate
// or for class candidates
$candidates = $classToFile->fileToClassCandidates(FilePath::fromString('lib/Foobar/BarFoo/MyClass.php'));
Yes it does, but only if the class exists. One of the purposes of this class is to be able to determine a file path for a class which may not exist (for example to generate a class in a new file)., (*4)
You may also want to do this and not pollute your autoloading environment (unfortunately this library currently does pollute the autoloader, but it can be avoided in the future., (*5)
Glad you asked! This is can be useful when you want to generate an empty class in an empty file., (*6)
In some exceptional cases you may have a project which has more than one
composer autoloader, this is supported through the ChainFileToClass and
ChainClassToFile classes, or most simply through the facade:, (*7)
$converter = ClassFileConverter::fromComposerAutoloaders([ $autoloader1, $autoloader2 ]);
This package is open source and welcomes contributions! Feel free to open a pull request on this repository., (*8)
#phpactor channel on the Slack Symfony Devs channel.Library to covert class names to file paths and vice-versa
MIT