PHPackages                             olvlvl/symfony-dependency-injection-proxy - 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. olvlvl/symfony-dependency-injection-proxy

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

olvlvl/symfony-dependency-injection-proxy
=========================================

Generate super tiny proxies for Symfony's dependency injection

v5.0.0(2y ago)47.3kBSD-3-ClausePHPPHP &gt;=8.1CI failing

Since Oct 14Pushed 1y agoCompare

[ Source](https://github.com/olvlvl/symfony-dependency-injection-proxy)[ Packagist](https://packagist.org/packages/olvlvl/symfony-dependency-injection-proxy)[ RSS](/packages/olvlvl-symfony-dependency-injection-proxy/feed)WikiDiscussions main Synced today

READMEChangelog (5)Dependencies (4)Versions (12)Used By (0)

Proxy generator for Symfony's DIC
=================================

[](#proxy-generator-for-symfonys-dic)

[![Release](https://camo.githubusercontent.com/cb0692f84288a034f81d23e82a07ad6d8f3a4bf88766b5159e07692c006d6ce0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6f6c766c766c2f73796d666f6e792d646570656e64656e63792d696e6a656374696f6e2d70726f78792e737667)](https://packagist.org/packages/olvlvl/symfony-dependency-injection-proxy)[![Packagist](https://camo.githubusercontent.com/23c3f83bf12f93ca5f7e7473b16f6e14f7230ee523b64cd4f8903ac2fcc42b97/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6f6c766c766c2f73796d666f6e792d646570656e64656e63792d696e6a656374696f6e2d70726f78792e737667)](https://packagist.org/packages/olvlvl/symfony-dependency-injection-proxy)[![Code Quality](https://camo.githubusercontent.com/24835d70b8026c6142f45fb995bd58b7f1dcd2f025623ed61e76ef31f27cf95e/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f6f6c766c766c2f73796d666f6e792d646570656e64656e63792d696e6a656374696f6e2d70726f78792e737667)](https://scrutinizer-ci.com/g/olvlvl/symfony-dependency-injection-proxy)[![Code Coverage](https://camo.githubusercontent.com/1095ffac5f387e9ee40e753eac53d333d73e5a32f4d0d0edf953343d45005518/68747470733a2f2f696d672e736869656c64732e696f2f636f766572616c6c732f6f6c766c766c2f73796d666f6e792d646570656e64656e63792d696e6a656374696f6e2d70726f78792e737667)](https://coveralls.io/r/olvlvl/symfony-dependency-injection-proxy)

This package provides a proxy generator for [Symfony's dependency injection component](https://symfony.com/doc/current/components/dependency_injection.html) that generates super tiny, super simple proxies, especially when [compared to Symfony's default implementation](https://github.com/olvlvl/symfony-dependency-injection-proxy/wiki/Comparison). Here are some differences:

- Can proxy `final` classes.
- Can only proxy classes with interfaces.
- The generated proxies are self-contained.
- The package is ~10Kb and doesn't have dependencies.
- The package can be removed once the proxies have been generated.

If you're not familiar with proxy services, better have a look at [Symfony's documentation](https://symfony.com/doc/current/service_container/lazy_services.html)before going any further.

#### Installation

[](#installation)

```
composer require olvlvl/symfony-dependency-injection-proxy
```

How it works
------------

[](#how-it-works)

The generator works with the following assumptions: the service we want to proxy implements an interface, and services using that service expect that interface, following the [dependency inversion principle](https://en.wikipedia.org/wiki/Dependency_inversion_principle). Now, consider the following code, where an `ExceptionHandler` service requires a logger implementing `LoggerInterface`:

```
