项目作者: php-fedora

项目描述 :
Static PSR-4, PSR-0, and classmap autoloader.
高级语言: PHP
项目地址: git://github.com/php-fedora/autoloader.git
创建时间: 2016-06-13T00:56:22Z
项目社区:https://github.com/php-fedora/autoloader

开源协议:Other

下载


Fedora Autoloader

Build Status

Static PSR-4, PSR-0,
and classmap autoloader. Includes loader for required and optional dependencies.

Autoloader

PSR-4

\Fedora\Autoloader\Autoload::addPsr4($prefix, $path, $prepend = false)

PSR-0

\Fedora\Autoloader\Autoload::addPsr0($prefix, $path, $prepend = false)

Classmap

\Fedora\Autoloader\Autoload::addClassMap(array $classMap, $path)

phpab Template

Template: res/phpab/fedora.php.tpl

For an example of its’ usage, see tests/genclassmap.sh.

Dependencies loader

Loops through provided array of dependencies:

  • If dependency is not an array:
    • If dependency is required, it is only required/loaded if it exists,
      otherwise a \RuntimeException is thrown.
    • If dependency is not required, it is only required/loaded if it exists.
  • If dependency is an array:
    • Loops through all items until the first item that exists is found and
      then it is required/loaded. If no item is found and the dependency
      is required, the last item will be required/loaded if it exists,
      otherwise a \RuntimeException is thrown.

Required dependencies

\Fedora\Autoloader\Dependencies::required(array $requiredDependencies)

Example 1

  1. \Fedora\Autoloader\Dependencies::required(array(
  2. '/usr/share/php/RequiredFoo/autoload.php',
  3. '/usr/share/php/RequiredBar/autoload.php',
  4. ));

Equates to:

  1. if (
  2. is_file('/usr/share/php/RequiredFoo/autoload.php')
  3. && is_readable('/usr/share/php/RequiredFoo/autoload.php')
  4. ) {
  5. require_once '/usr/share/php/RequiredFoo/autoload.php';
  6. } else {
  7. throw new \RuntimeException("File not found: '/usr/share/php/RequiredFoo/autoload.php'");
  8. }
  9. if (
  10. is_file('/usr/share/php/RequiredBar/autoload.php')
  11. && is_readable('/usr/share/php/RequiredBar/autoload.php')
  12. ) {
  13. require_once '/usr/share/php/RequiredBar/autoload.php';
  14. } else {
  15. throw new \RuntimeException("File not found: '/usr/share/php/RequiredBar/autoload.php'");
  16. }

Example 2

  1. \Fedora\Autoloader\Dependencies::required(array(
  2. array(
  3. '/usr/share/php/RequiredFooVersion1/autoload.php',
  4. '/usr/share/php/RequiredFooVersion2/autoload.php',
  5. '/usr/share/php/RequiredFooVersion3/autoload.php',
  6. ),
  7. ));

Equates to:

  1. if (
  2. is_file('/usr/share/php/RequiredFooVersion1/autoload.php')
  3. && is_readable('/usr/share/php/RequiredFooVersion1/autoload.php')
  4. ) {
  5. require_once '/usr/share/php/RequiredFooVersion1/autoload.php';
  6. } elseif (
  7. is_file('/usr/share/php/RequiredFooVersion2/autoload.php')
  8. && is_readable('/usr/share/php/RequiredFooVersion2/autoload.php')
  9. ) {
  10. require_once '/usr/share/php/RequiredFooVersion2/autoload.php';
  11. } elseif (
  12. is_file('/usr/share/php/RequiredFooVersion3/autoload.php')
  13. && is_readable('/usr/share/php/RequiredFooVersion3/autoload.php')
  14. ) {
  15. require_once '/usr/share/php/RequiredFooVersion3/autoload.php';
  16. } else {
  17. throw new \RuntimeException("Files not found: "
  18. . "'/usr/share/php/RequiredFooVersion1/autoload.php'"
  19. . "|| '/usr/share/php/RequiredFooVersion2/autoload.php'"
  20. . "|| '/usr/share/php/RequiredFooVersion3/autoload.php'"
  21. );
  22. }

Optional dependencies

\Fedora\Autoloader\Dependencies::optional(array $optionalDependencies)

Example 1

  1. \Fedora\Autoloader\Dependencies::optional(array(
  2. '/usr/share/php/OptionalFoo/autoload.php',
  3. '/usr/share/php/OptionalBar/autoload.php',
  4. ));

Equates to:

  1. if (
  2. is_file('/usr/share/php/OptionalFoo/autoload.php')
  3. && is_readable('/usr/share/php/OptionalFoo/autoload.php')
  4. ) {
  5. require_once '/usr/share/php/OptionalFoo/autoload.php';
  6. }
  7. if (
  8. is_file('/usr/share/php/OptionalBar/autoload.php')
  9. && is_readable('/usr/share/php/OptionalBar/autoload.php')
  10. ) {
  11. require_once '/usr/share/php/OptionalBar/autoload.php';
  12. }

Example 2

  1. \Fedora\Autoloader\Dependencies::optional(array(
  2. array(
  3. '/usr/share/php/OptionalFooVersion1/autoload.php',
  4. '/usr/share/php/OptionalFooVersion2/autoload.php',
  5. '/usr/share/php/OptionalFooVersion3/autoload.php',
  6. ),
  7. ));

Equates to:

  1. if (
  2. is_file('/usr/share/php/OptionalFooVersion1/autoload.php')
  3. && is_readable('/usr/share/php/OptionalFooVersion1/autoload.php')
  4. ) {
  5. require_once '/usr/share/php/OptionalFooVersion1/autoload.php';
  6. } elseif (
  7. is_file('/usr/share/php/OptionalFooVersion2/autoload.php')
  8. && is_readable('/usr/share/php/OptionalFooVersion2/autoload.php')
  9. ) {
  10. require_once '/usr/share/php/OptionalFooVersion2/autoload.php';
  11. } elseif (
  12. is_file('/usr/share/php/OptionalFooVersion3/autoload.php')
  13. && is_readable('/usr/share/php/OptionalFooVersion3/autoload.php')
  14. ) {
  15. require_once '/usr/share/php/OptionalFooVersion3/autoload.php';
  16. }

License

The MIT License (MIT)