Library to infer paths from a given path where paths share path segments.
For example, infer test paths for a given source file and vice-versa.
Path finder accepts a hash map of destinations and their schemas. The placeholders can be used to identify common parts of the path.
- The last placeholder is greedy it will match all path segments until the suffix.
- Preceding placeholders will only match until the first path separator.
$pathFinder = PathFinder::fromDestinations([
'source' => 'lib/<kernel>.php',
'unit_test' => 'tests/Unit/<kernel>Test.php',
'benchmark' => 'benchmarks/<kernel>Bench.php',
]);
$targets = $pathFinder->targetsFor('lib/Acme/Post.php');
// [
// 'unit_test' => 'tests/Unit/Acme/PostTest.php',
// 'benchmark' => 'benchmarks/Acme/PostBench.php',
// ]
$pathFinder = PathFinder::fromDestinations([
'source' => 'lib/<module>/<kernel>.php',
'unit_test' => 'tests/<module>/Unit/<kernel>Test.php',
'benchmark' => 'benchmarks/<module>/<kernel>Bench.php',
]);
$targets = $pathFinder->targetsFor('lib/MyModule/Acme/Post.php');
// [
// 'unit_test' => 'tests/MyModule/Unit/Acme/PostTest.php',
// 'benchmark' => 'benchmarks/MyModule/Acme/PostBench.php',
// ]
This package is open source and welcomes contributions! Feel free to open a pull request on this repository.
- Create an issue on the main Phpactor repository.
- Join the
#phpactor
channel on the Slack Symfony Devs channel.