starbug/resource-locator

Locate files and classes from a list of modules.

v0.9.1 2021-01-12 07:17 UTC

This package is auto-updated.

Last update: 2024-04-12 14:18:21 UTC


README

The ResourceLocator class locates files and classes within directories and namespaces.

Basic example:

use Starbug\ResourceLocator\ResourceLocator;

$namespaces = [
  "Starbug\Core",
  "Starbug\Log",
  "Starbug\State",
  "Starbug\Var"
]
$paths = [
  "core",
  "modules/log",
  "modules/state",
  "var"
]

$locator = new ResourceLocator(dirname(__FILE__));
$locator->setNamespaces($namespaces);
$locator->setPaths($paths);

// This will check each module for a file at the path
// "etc/config.json" and return an array of matches.
// For instance, if core and log both contained the file,
// we would get:
// [
//   "core/etc/config.json",
//   "modules/log/config.json"
// ]
$locator->locate("config.json", "etc");

// This will check each module namespace and return
// the first one with a class named AdminController.
// For example, Starbug\Log\AdminController.
$locator->className("admin", "Controller");