PHPackages                             fedora/autoloader - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [PSR &amp; Standards](/categories/psr-standards)
4. /
5. fedora/autoloader

ActiveLibrary[PSR &amp; Standards](/categories/psr-standards)

fedora/autoloader
=================

Fedora PHP Autoloader

1.0.1(6y ago)59103MITPHPPHP &gt;= 5.3.3

Since Oct 19Pushed 5y ago3 watchersCompare

[ Source](https://github.com/php-fedora/autoloader)[ Packagist](https://packagist.org/packages/fedora/autoloader)[ Docs](https://github.com/php-fedora/autoloader)[ RSS](/packages/fedora-autoloader/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (8)Dependencies (3)Versions (15)Used By (0)

Fedora Autoloader
=================

[](#fedora-autoloader)

[![Build Status](https://camo.githubusercontent.com/a576683a1d9a40c18d001abfd61aaaff4aa3c77791806f7da726704771c2ad9e/68747470733a2f2f7472617669732d63692e6f72672f7068702d6665646f72612f6175746f6c6f616465722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/php-fedora/autoloader)

Static [PSR-4](http://www.php-fig.org/psr/psr-4/), [PSR-0](http://www.php-fig.org/psr/psr-0/), and classmap autoloader. Includes loader for required and optional dependencies.

Autoloader
----------

[](#autoloader)

### PSR-4

[](#psr-4)

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

### PSR-0

[](#psr-0)

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

### Classmap

[](#classmap)

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

#### `phpab` Template

[](#phpab-template)

Template: [res/phpab/fedora.php.tpl](res/phpab/fedora.php.tpl)

For an example of its' usage, see [tests/genclassmap.sh](tests/genclassmap.sh).

Dependencies loader
-------------------

[](#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

[](#required-dependencies)

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

#### Example 1

[](#example-1)

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

Equates to:

```
if (
    is_file('/usr/share/php/RequiredFoo/autoload.php')
    && is_readable('/usr/share/php/RequiredFoo/autoload.php')
) {
    require_once '/usr/share/php/RequiredFoo/autoload.php';
} else {
    throw new \RuntimeException("File not found: '/usr/share/php/RequiredFoo/autoload.php'");
}

if (
    is_file('/usr/share/php/RequiredBar/autoload.php')
    && is_readable('/usr/share/php/RequiredBar/autoload.php')
) {
    require_once '/usr/share/php/RequiredBar/autoload.php';
} else {
    throw new \RuntimeException("File not found: '/usr/share/php/RequiredBar/autoload.php'");
}
```

#### Example 2

[](#example-2)

```
\Fedora\Autoloader\Dependencies::required(array(
    array(
        '/usr/share/php/RequiredFooVersion1/autoload.php',
        '/usr/share/php/RequiredFooVersion2/autoload.php',
        '/usr/share/php/RequiredFooVersion3/autoload.php',
    ),
));
```

Equates to:

```
if (
    is_file('/usr/share/php/RequiredFooVersion1/autoload.php')
    && is_readable('/usr/share/php/RequiredFooVersion1/autoload.php')
) {
    require_once '/usr/share/php/RequiredFooVersion1/autoload.php';
} elseif (
    is_file('/usr/share/php/RequiredFooVersion2/autoload.php')
    && is_readable('/usr/share/php/RequiredFooVersion2/autoload.php')
) {
    require_once '/usr/share/php/RequiredFooVersion2/autoload.php';
} elseif (
    is_file('/usr/share/php/RequiredFooVersion3/autoload.php')
    && is_readable('/usr/share/php/RequiredFooVersion3/autoload.php')
) {
    require_once '/usr/share/php/RequiredFooVersion3/autoload.php';
} else {
    throw new \RuntimeException("Files not found: "
        . "'/usr/share/php/RequiredFooVersion1/autoload.php'"
        . "|| '/usr/share/php/RequiredFooVersion2/autoload.php'"
        . "|| '/usr/share/php/RequiredFooVersion3/autoload.php'"
    );
}
```

### Optional dependencies

[](#optional-dependencies)

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

#### Example 1

[](#example-1-1)

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

Equates to:

```
if (
    is_file('/usr/share/php/OptionalFoo/autoload.php')
    && is_readable('/usr/share/php/OptionalFoo/autoload.php')
) {
    require_once '/usr/share/php/OptionalFoo/autoload.php';
}

if (
    is_file('/usr/share/php/OptionalBar/autoload.php')
    && is_readable('/usr/share/php/OptionalBar/autoload.php')
) {
    require_once '/usr/share/php/OptionalBar/autoload.php';
}
```

#### Example 2

[](#example-2-1)

```
\Fedora\Autoloader\Dependencies::optional(array(
    array(
        '/usr/share/php/OptionalFooVersion1/autoload.php',
        '/usr/share/php/OptionalFooVersion2/autoload.php',
        '/usr/share/php/OptionalFooVersion3/autoload.php',
    ),
));
```

Equates to:

```
if (
    is_file('/usr/share/php/OptionalFooVersion1/autoload.php')
    && is_readable('/usr/share/php/OptionalFooVersion1/autoload.php')
) {
    require_once '/usr/share/php/OptionalFooVersion1/autoload.php';
} elseif (
    is_file('/usr/share/php/OptionalFooVersion2/autoload.php')
    && is_readable('/usr/share/php/OptionalFooVersion2/autoload.php')
) {
    require_once '/usr/share/php/OptionalFooVersion2/autoload.php';
} elseif (
    is_file('/usr/share/php/OptionalFooVersion3/autoload.php')
    && is_readable('/usr/share/php/OptionalFooVersion3/autoload.php')
) {
    require_once '/usr/share/php/OptionalFooVersion3/autoload.php';
}
```

License
-------

[](#license)

[The MIT License (MIT)](LICENSE)

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity21

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 62% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~173 days

Recently: every ~301 days

Total

8

Last Release

2287d ago

Major Versions

0.2.1 → 1.0.0-rc12017-03-13

### Community

Maintainers

![](https://www.gravatar.com/avatar/99f6b0a2abf94556f9c2eb6962842a19fd24a20c6eddba56326cda1169262050?d=identicon)[siwinski](/maintainers/siwinski)

---

Top Contributors

[![siwinski](https://avatars.githubusercontent.com/u/1034024?v=4)](https://github.com/siwinski "siwinski (49 commits)")[![remicollet](https://avatars.githubusercontent.com/u/270445?v=4)](https://github.com/remicollet "remicollet (30 commits)")

---

Tags

autoloadautoloaderclassmapfedoraphppsr-0psr-4autoloadautoloaderPSR-4psr-0fedora

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/fedora-autoloader/health.svg)

```
[![Health](https://phpackages.com/badges/fedora-autoloader/health.svg)](https://phpackages.com/packages/fedora-autoloader)
```

###  Alternatives

[aura/autoload

Provides a PSR-4 compliant autoloader implementation.

94476.8k12](/packages/aura-autoload)[yidas/codeigniter-psr4-autoload

CodeIgniter 3 PSR-4 Autoloader for Application

5419.5k3](/packages/yidas-codeigniter-psr4-autoload)[evilfreelancer/routeros-api-php

Modern Mikrotik RouterOS API PHP client for your applications (with Laravel support)

491206.1k4](/packages/evilfreelancer-routeros-api-php)[icamys/php-sitemap-generator

Simple PHP sitemap generator.

175342.8k6](/packages/icamys-php-sitemap-generator)[suin/phpcs-psr4-sniff

PHP\_CodeSniffer sniff that checks class name matches PSR-4 project structure.

271.7M16](/packages/suin-phpcs-psr4-sniff)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
