3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php interface DirectoryBehaviorInterface { } /** * 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. */ interface xautoload_FinderPlugin_Interface extends DirectoryBehaviorInterface { /** * 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 InjectedApiInterface $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'. * * @return bool|NULL * TRUE, if the file was found. * FALSE, otherwise. */ function findFile($api, $path_fragment, $path_suffix); } /** * 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. */ interface FinderPluginInterface extends 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 InjectedApiInterface $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); }
Output for 5.3.9 - 5.6.28, hhvm-3.10.0 - 3.12.0, 7.0.0 - 7.1.0
Output for 5.0.0 - 5.3.8
Fatal error: Can't inherit abstract function xautoload_FinderPlugin_Interface::findFile() (previously declared abstract in FinderPluginInterface) in /in/HJG3Z on line 65
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING in /in/HJG3Z on line 4
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.4.1
Parse error: parse error, unexpected T_STRING in /in/HJG3Z on line 4
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error in /in/HJG3Z on line 4
Process exited with code 255.