PHPackages                             jesseschalken/autoload-generator - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. jesseschalken/autoload-generator

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

jesseschalken/autoload-generator
================================

Generates classmap-based include/autoload files for PHP projects, with support for functions and constants.

0.2.3(9y ago)827.8k↓50%2[1 PRs](https://github.com/jesseschalken/autoload-generator/pulls)1LGPL-2.1Hack

Since Jul 29Pushed 9y ago1 watchersCompare

[ Source](https://github.com/jesseschalken/autoload-generator)[ Packagist](https://packagist.org/packages/jesseschalken/autoload-generator)[ RSS](/packages/jesseschalken-autoload-generator/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (5)Dependencies (3)Versions (6)Used By (1)

autoload-generator
==================

[](#autoload-generator)

Generates class-map based autoloaders for PHP projects, with support for functions and constants.

### Usage

[](#usage)

1. Include the composer package:

    ```
    php composer.phar require --dev jesseschalken/autoload-generator

    ```
2. Run `./vendor/bin/php-generate-autoload  [...]`

    For example, if your project has all it's source files in a `src/` directory, you can do:

    ```
    ./vendor/bin/php-generate-autoload src/autoload.php

    ```

    and then use `src/autoload.php` as the entrypoint for your project.

    See `./vendor/bin/php-generate-autoload --help` for more info.
3. Update `composer.json` to point to your autoloader, if applicable. For example:

    ```
    "autoload": {
        "files": ["src/autoload.php"]
    }

    ```

### How it works

[](#how-it-works)

`php-generate-autoload` parses all PHP files using [nikic/PHP-Parser](https://github.com/nikic/PHP-Parser) and creates a map from class names to file paths to be used in an autoloader registered with `spl_autoload_register()`. Any files containing global function or constant definitions are included directly.

For example, consider a project with three files `src/Foo.php`, `src/Bar.php` and `src/lots of classes.php` containing classes, `src/functions.php` containing functions and `src/constants.php` containing constants.

After running

```
./vendor/bin/php-generate-autoload src/autoload.php

```

`src/autoload.php` would contain something like:

```
