You are here

interface xautoload_FinderPlugin_Interface in X Autoload 7.3

Same name and namespace in other branches
  1. 7.5 legacy/lib/FinderPlugin/Interface.php \xautoload_FinderPlugin_Interface
  2. 7.4 legacy/lib/FinderPlugin/Interface.php \xautoload_FinderPlugin_Interface

X Autoload plugins are for:

  • More exotic autoload patterns that are incompatible with PSR-0 or PEAR
  • Situations where we don't want to register a ton of namespaces, and using a plugin instead gives us performance benefits.

Hierarchy

Expanded class hierarchy of xautoload_FinderPlugin_Interface

All classes that implement xautoload_FinderPlugin_Interface

1 string reference to 'xautoload_FinderPlugin_Interface'
xautoload_ClassFinder_Helper_Map::registerPlugin in lib/ClassFinder/Helper/Map.php
Register a plugin for a namespace or prefix.

File

lib/FinderPlugin/Interface.php, line 10

View source
interface xautoload_FinderPlugin_Interface {

  /**
   * Find the file for a class that in PSR-0 or PEAR would be in
   * $psr_0_root . '/' . $path_fragment . $path_suffix
   *
   * E.g.:
   *   - The class we look for is Some\Namespace\Some\Class
   *   - The file is actually in "exotic/location.php". This is not following
   *     PSR-0 or PEAR standard, so we need a plugin.
   *   -> The class finder will transform the class name to
   *     "Some/Namespace/Some/Class.php"
   *   - The plugin was registered for the namespace "Some\Namespace". This is
   *     because all those exotic classes all begin with Some\Namespace\
   *   -> The arguments will be:
   *     ($api = the API object, see below)
   *     $path_fragment = "Some/Namespace/"
   *     $path_suffix = "Some/Class.php"
   *     $api->getClass() gives the original class name, if we still need it.
   *   -> We are supposed to:
   *     if ($api->suggestFile('exotic/location.php')) {
   *       return TRUE;
   *     }
   *
   * @param xautoload_InjectedAPI_findFile $api
   *   An object with a suggestFile() method.
   *   We are supposed to suggest files until suggestFile() returns TRUE, or we
   *   have no more suggestions.
   * @param string $path_fragment
   *   The key that this plugin was registered with.
   *   With trailing DIRECTORY_SEPARATOR.
   * @param string $path_suffix
   *   Second part of the canonical path, ending with '.php'.
   * @param int|string $id
   *   Id under which the plugin was registered.
   *   This may be a numeric id, or a string key.
   *
   * @return bool|NULL
   *   TRUE, if the file was found.
   *   FALSE, otherwise.
   */
  function findFile($api, $path_fragment, $path_suffix, $id = NULL);

}

Members

Namesort descending Modifiers Type Description Overrides
xautoload_FinderPlugin_Interface::findFile function Find the file for a class that in PSR-0 or PEAR would be in $psr_0_root . '/' . $path_fragment . $path_suffix 2