PHP-DI Symfony Bridge

Intégrer les containers PHP-DI, et les packages l'utilisant dans votre application Symfony.


Ce package fournit une intégration de PHP-DI avec Symfony. PHP-DI est un gestionnaire de dépendance pour PHP. Le Bridge fonctionne en tant que Bundle Symfony pour définir, dans Symfony Container, PHP-DI en tant que Factory pour les entrées dont il est responsable.

Contrairement au bridge officiel, ce bridge ne requière pas de personnalisation de Symfony et de son Kernel, ni du Symfony Service Container. Pendant la compilation du container de Symfony, toutes les entrées provenant de PHP-DI vont être référencé dans le container de Symfony.

Ce bridge implémente également la PSR Container interface (PSR-11) pour agir comme interface avec le Symfony Container vis à vis des factories définies dans PHP-DI.

Ils vont donc directement utiliser le container de Symfony et non celui de PHP-DI. Le bridge va également automatiquement gérer l'accès aux paramètres définies dans PHP-DI depuis le Symfony Container, dont la gestion diffère.

Si vous utilisez une précédente version du Bridge, vous devez supprimer la surcharge du Kernel Symfony et utiliser le Kernel par défaut.

Kubernetes

Fonctionnalités


Bundle

S'utlise comme tout Symfony Bundle

Facile

Ne requière pas de personnalisation de Symfony

Transparent

Chaque container peut communiquer avec les autres

Universel

Permet l'utilisation de package universel avec votre Symfony

GitHub


Fork le project sur GitHub

Il est sous licence open source! Il est hébergé, développé et maintenu sur GitHub par des contributeurs comme vous.


Voir le projet sur GitHub

Patreon


Supporter le projet sur Patreon

Ce projet est logiciel libre et le restera. Mais il est développé sur mon temps libre. Si vous l'appréciez et si vous souhaitez m'aider à le maintenir et à le faire évoluer. N'hésitez pas à me supporter sur Patreon. Merci :) Richard.


Supporter le projet

Exemple



<?php

// Add to you `bundles.php` file 
return [
    
//..
    
Teknoo\DI\SymfonyBridge\DIBridgeBundle::class => ['all' => true],
    
//..
];

// Create the file `di_bridge.yaml` in your config folder and put in

    
di_bridge:
            
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'