PHPackages                             mtymek/class-dumper - 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. mtymek/class-dumper

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

mtymek/class-dumper
===================

Creates single file containing multiple classes, to speed up application bootstrap.

0.4.0(9y ago)4122BSD-2-ClausePHPPHP ^5.5 || ^7.0

Since Apr 22Pushed 9y ago3 watchersCompare

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

READMEChangelog (4)Dependencies (4)Versions (6)Used By (0)

Class Dumper
============

[](#class-dumper)

**Creates single file PHP containing multiple classes, to speed up application bootstrap.**

[![Scrutinizer Code Quality](https://camo.githubusercontent.com/75b9a6a7c111a69e4eff862655fbf52533351d2cad9855f4c21feed306915e52/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6d74796d656b2f636c6173732d64756d7065722f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/mtymek/class-dumper/?branch=master)[![Build Status](https://camo.githubusercontent.com/3c0ad706e6b9023d109b1942d21b5dec53619d11557250b33a325cf6929364d5/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6d74796d656b2f636c6173732d64756d7065722f6261646765732f6275696c642e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/mtymek/class-dumper/build-status/master)[![Code Coverage](https://camo.githubusercontent.com/9c9355baaba82e4d51a573c5dd19de9e4b140484c003d0d4425c4540879c6e35/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6d74796d656b2f636c6173732d64756d7065722f6261646765732f636f7665726167652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/mtymek/class-dumper/?branch=master)[![Latest Stable Version](https://camo.githubusercontent.com/8400e0fdeeef6633279bdc0db77698f89b3c50e0e60fa7d432b2b6ecd13e35ee/68747470733a2f2f706f7365722e707567782e6f72672f6d74796d656b2f636c6173732d64756d7065722f762f737461626c65)](https://packagist.org/packages/mtymek/class-dumper)[![Total Downloads](https://camo.githubusercontent.com/bd96553ba6b00e1636755d3d1dc859721b944cc0871458ec18f6d69688fcf537/68747470733a2f2f706f7365722e707567782e6f72672f6d74796d656b2f636c6173732d64756d7065722f646f776e6c6f616473)](https://packagist.org/packages/mtymek/class-dumper)[![License](https://camo.githubusercontent.com/7dbdc0f98cdb5490356c7e0c393790e259648031f7fafe5c71f70297ef24d659/68747470733a2f2f706f7365722e707567782e6f72672f6d74796d656b2f636c6173732d64756d7065722f6c6963656e7365)](https://packagist.org/packages/mtymek/class-dumper)

Usage
-----

[](#usage)

### Commandline script

[](#commandline-script)

First, create configuration file that lists all files you want to merge. You don't need to worry about class order, nor about adding required interfaces or parent classes - they will be added automatically to merged file.

Config file is simple PHP file, returning array of class names:

```
// config/classes-to-cache.php
return [
    // ZF2 classes
    Zend\Mvc\Application::class,
    Zend\Mvc\ApplicationInterface::class,
    Zend\EventManager\EventsCapableInterface::class,

    // custom classes
    Foo\Application::class,
    Foo\Listener\Auth::class
]
```

Next, use `dump-classes.php` script to generate cached file:

```
php ./vendor/bin/dump-classes.php config/classes-to-cache.php data/cache/classes.php.cache
```

When class cache is generated, you can include it in your application entry point:

```
// index.php
include 'vendor/autoload.php';
include 'data/cache/classes.php.cache';
```

You can automate generation using `composer` by adding post-install and post-update hooks to `composer.json` file:

```
{
    "scripts": {
        "post-install-cmd": [
            "php ./vendor/bin/dump-classes.php config/classes-to-cache.php data/cache/classes.php.cache-raw",
        ],
        "post-update-cmd": [
            "php ./vendor/bin/dump-classes.php config/classes-to-cache.php data/cache/classes.php.cache-raw",
        ]
    }
}
```

### PHP

[](#php)

Alternatively, cached class file can be generated in your PHP script:

```
$dumper = new ClassDumper();
$cache = $dumper->dump([
    Foo::class,
    Bar::class,
]);
file_put_contents('data/cache/class_cache', "
