phpactor/path-finder

This package is abandoned and no longer maintained. No replacement package was suggested.

Utility for navigating to related source files

0.1.2 2021-10-28 09:27 UTC

This package is auto-updated.

Last update: 2022-03-20 11:51:53 UTC


README

CI

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.

Usage

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.

Examples

Navigating between test files

$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',
// ]

Navigating between files organized by domain/module

$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',
// ]

Contributing

This package is open source and welcomes contributions! Feel free to open a pull request on this repository.

Support

  • Create an issue on the main Phpactor repository.
  • Join the #phpactor channel on the Slack Symfony Devs channel.