teknoo / bridge-phpdi-symfony
Userfriendly integration of PHP-DI with Symfony, Fork from php-di/symfony-bridge
Fund package maintenance!
Patreon
TeknooSoftware
Installs: 21 482
Dependents: 10
Suggesters: 0
Security: 0
Stars: 2
Watchers: 4
Forks: 11
Open Issues: 0
Requires
- php: ^8.2
- php-di/php-di: ^7.0.6
- symfony/config: ^6.3||^7.0
- symfony/dependency-injection: ^6.3||^7.0
- symfony/http-kernel: ^6.3||^7.0
Requires (Dev)
- phpstan/phpstan: ^1.12.3
- phpunit/phpunit: ^11.3.5
- roave/security-advisories: dev-latest
- squizlabs/php_codesniffer: ^3.10.2
- symfony/error-handler: ^6.3||^7.0
- symfony/filesystem: ^6.3||^7.0
- symfony/property-access: ^6.3||^7.0
- symfony/yaml: ^6.3||^7.0
This package is auto-updated.
Last update: 2024-11-09 12:52:42 UTC
README
This package provides integration for PHP-DI with Symfony. PHP-DI is a dependency injection container for PHP.
This bridge works as Symfony Bundle to integrate PHP-DI, into the Symfony Container, as factory for entries defined into PHP-DI.
Unlike the official bridge, this bridge does not require to use a custom version of Symfony's Kernel, neither a custom version of
Symfony's container.
During Symfony container's compilation, all entries in PHP-DI will be referenced into Symfony's Container.
The bridge will also implements the PSR Container interface (PSR-11)
to act as an interface with Symfony Container in
PHP-DI factory.
They will directly call the Symfony Container instead of PHP-DI, The bridge will also automatically manage the management
of the parameters, managed differently by Symfony.
Install this bridge
If you use a previous version of PHP-DI Bridge, remove PHP-DI Kernel overload and use the default kernel
-
Add to you
bundles.php
fileTeknoo\DI\SymfonyBridge\DIBridgeBundle::class => ['all' => true],
-
Create the file
di_bridge.yaml
in your config folder and put indi_bridge: #To enable PHP-DI's container compilation (disable by default) compilation_path: ~ #Default, or path to store cache, like '%kernel.project_dir%/var/cache/phpdi' #To enable PHP-DI's cache (disable by default) enable_cache: false #Default or true definitions: - 'list of PHP-DI definitions file, you can use Symfony joker like %kernel.project_dir%' #example - '%kernel.project_dir%/vendor/editor_name/package_name/src/di.php' - '%kernel.project_dir%/config/di.php' import: #To make alias from SF entries into PHPDI My\Class\Name: 'symfony.contaner.entry.name'
Support this project
This project is free and will remain free. It is fully supported by the activities of the EIRL. If you like it and help me maintain it and evolve it, don't hesitate to support me on Patreon or Github.
Thanks :) Richard.
Credits
EIRL Richard Déloge - https://deloge.io - Lead developer. SASU Teknoo Software - https://teknoo.software
About Teknoo Software
Teknoo Software is a PHP software editor, founded by Richard Déloge, as part of EIRL Richard Déloge. Teknoo Software's goals : Provide to our partners and to the community a set of high quality services or software, sharing knowledge and skills.
License
This library is licensed under the MIT License - see the licenses folder for details.
Installation & Requirements
To install this library with composer, run this command :
composer require teknoo/bridge-phpdi-symfony
This library requires :
* PHP 8.1+
* A PHP autoloader (Composer is recommended)
* PHP-DI.
* Symfony/dependency-injection 5.4 or 6.2+.
* Symfony/http-kernel 5.4 or 6.2+.
* Symfony/config 6.3, 6.4 or 7+.
Contribute :)
You are welcome to contribute to this project. Fork it on Github