1
0
Fork 0
mirror of https://github.com/composer/composer synced 2025-05-09 16:42:57 +00:00

[improve-docs] Mention classmap autoloading in basic-usage

This commit is contained in:
Igor Wiedler 2012-04-13 12:06:53 +02:00
parent 5269bfa25c
commit a2eeeab79a
2 changed files with 19 additions and 12 deletions

View file

@ -103,7 +103,7 @@ to those specific versions.
This is important because the `install` command checks if a lock file is present,
and if it is, it downloads the versions specified there (regardless of what `composer.json`
says). This means that anyone who sets up the project will download the exact
same version of the dependencies.
same version of the dependencies.
If no `composer.json` lock file exists, it will read the dependencies and
versions from `composer.json` and create the lock file.
@ -135,16 +135,15 @@ but it makes life quite a bit simpler.
## Autoloading
For libraries that follow the [PSR-0](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md)
naming standard, Composer generates a `vendor/.composer/autoload.php` file
for autoloading. You can simply include this file and you will get autoloading
for free.
For libraries that specify autoload information, Composer generates a
`vendor/.composer/autoload.php` file. You can simply include this file and you
will get autoloading for free.
require 'vendor/.composer/autoload.php';
This makes it really easy to use third party code: For monolog, it
means that we can just start using classes from it, and they will be
autoloaded.
This makes it really easy to use third party code. For example: If your
project depends on monolog, you can just start using classes from it, and they
will be autoloaded.
$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
@ -160,8 +159,12 @@ to `composer.json`.
}
}
This is a mapping from namespaces to directories. The `src` directory would be
in your project root. An example filename would be `src/Acme/Foo.php`
Composer will register a
[PSR-0](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md)
autoloader for the `Acme` namespace.
You define a mapping from namespaces to directories. The `src` directory would
be in your project root. An example filename would be `src/Acme/Foo.php`
containing an `Acme\Foo` class.
After adding the `autoload` field, you have to re-run `install` to re-generate
@ -174,6 +177,10 @@ This can be useful for autoloading classes in a test suite, for example.
$loader = require 'vendor/.composer/autoload.php';
$loader->add('Acme\Test', __DIR__);
In addition to PSR-0 autoloading, classmap is also supported. This allows
classes to be autoloaded even if they do not conform to PSR-0. See the
[autoload reference](04-schema.md#autoload) for more details.
> **Note:** Composer provides its own autoloader. If you don't want to use
that one, you can just include `vendor/.composer/autoload_namespaces.php`,
which returns an associative array mapping namespaces to directories.