The PSR-4 Class Loader
Warning: You are browsing the documentation for Symfony 3.x, which is no longer maintained.
Read the updated version of this page for Symfony 7.1 (the current stable version).
Libraries that follow the PSR-4 standard can be loaded with the Psr4ClassLoader
.
Note
If you manage your dependencies via Composer, you get a PSR-4 compatible autoloader out of the box. Use this loader in environments where Composer is not available.
Tip
All Symfony components follow PSR-4.
Usage
The following example demonstrates how you can use the
Psr4ClassLoader autoloader to use
Symfony's Yaml component. Imagine, you downloaded both the ClassLoader and
Yaml component as ZIP packages and unpacked them to a lib/
directory.
The directory structure will look like this:
1 2 3 4 5 6 7 8 9
lib/
ClassLoader/
Psr4ClassLoader.php
...
Yaml/
Yaml.php
...
config.yml
demo.php
In demo.php
you are going to parse the config.yml
file. To do that, you
first need to configure the Psr4ClassLoader
:
1 2 3 4 5 6 7 8 9 10
use Symfony\Component\ClassLoader\Psr4ClassLoader;
use Symfony\Component\Yaml\Yaml;
require __DIR__.'/lib/ClassLoader/Psr4ClassLoader.php';
$loader = new Psr4ClassLoader();
$loader->addPrefix('Symfony\Component\Yaml\\', __DIR__.'/lib/Yaml');
$loader->register();
$data = Yaml::parse(file_get_contents(__DIR__.'/config.yml'));
First of all, the class loader is loaded manually using a require
statement, since there is no autoload mechanism yet. With the
addPrefix() call, you
tell the class loader where to look for classes with the
Symfony\Component\Yaml\
namespace prefix. After registering the autoloader,
the Yaml component is ready to be used.