An open API service indexing awesome lists of open source software.

https://github.com/kuria/class-loader

Class loader implementation (PSR-0, PSR-4)
https://github.com/kuria/class-loader

autoload autoloader class-loader php psr-0 psr-4

Last synced: 2 months ago
JSON representation

Class loader implementation (PSR-0, PSR-4)

Awesome Lists containing this project

README

        

Class loader
############

PHP class loader that implements both `PSR-0 `_
and `PSR-4 `_ autoloading.

.. image:: https://travis-ci.com/kuria/class-loader.svg?branch=master
:target: https://travis-ci.com/kuria/class-loader

.. contents::

Features
********

- PSR-0 and PSR-4 autoloading
- class maps
- custom suffixes
- composer bridge
- debug mode

Requirements
************

- PHP 7.1.0+

Usage examples
**************

Registering prefixes
====================

.. code:: php

register();

// PSR-4 prefix
$classLoader->addPrefix('Foo\\Bar\\', 'vendor/foo/bar/src');

$classLoader->addPrefixes([
'Kuria\\Error\\' => 'vendor/kuria/error/src',
'Foo\\Baz\\' => 'example/foo/baz',
]);

// PSR-0 prefix
$classLoader->addPrefix('Example\\FooBar\\', 'vendor/example/foobar', ClassLoader::PSR0);

$classLoader->addPrefixes([
'Kuria\\Error\\' => 'vendor/kuria/error/src',
'Foo_' => 'example/foo',
], ClassLoader::PSR0);

// PSR-4 fallback (empty prefix)
$classLoader->addPrefix('', 'src');

// PSR-0 fallback (empty prefix)
$classLoader->addPrefix('', 'old-code/example', ClassLoader::PSR0);

// single class
$classLoader->addClass('Foo', 'path/to/foo.class.php');

// class map
$classLoader->addClassMap([
'Bar' => 'path/to/bar.class.php',
'Baz' => 'path/to/baz.class.php',
]);

Using the composer bridge
=========================

The ``ComposerBridge`` class can be used to initialize autoloading for packages managed by Composer.

.. code:: php

register();

Disabling prefixes
------------------

If you are using an optimized autoloader, you can pass an optional third parameter
to ``configure()`` to disable prefixes completely. Only the class maps and files
will be loaded.

.. code:: php

setDebug(true)`` or pass ``true`` to
the appropriate constructor argument.