Symfony2 के config.yml में आप इस तरह के रूप में एक "आयात" जोड़ सकते हैं:Symfony2: क्या निर्भरता इंजेक्शन के माध्यम से किसी अन्य बंडल के लिए कॉन्फ़िगरेशन जोड़ना संभव है?
imports:
- { resource: services.yml }
मेरी services.yml अंदर मैं तो है:
imports:
security_bundle:
resource: @AcmeSecurityBundle/Resources/config/services.yml
हालांकि एक बंडल के लिए सेवाओं की घोषणा करने के वैकल्पिक तरीका DependencyInjection
Extension
का उपयोग करके इस प्रकार कॉन्फ़िगरेशन में कुछ भी आयात करने की आवश्यकता को समाप्त कर देता है मैन्युअल रूप से कोड को डीकॉप्लिंग करना।
namespace Acme\Bundle\SecurityBundle\DependencyInjection;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
use Symfony\Component\Config\FileLocator;
class AcmeSecurityExtension extends Extension {
public function load(array $configs, ContainerBuilder $container) {
$loader = new YamlFileLoader(
$container, new FileLocator(__DIR__ . '/../Resources/config')
);
$loader->load('services.yml');
}
}
प्रश्न यह सेवा घोषणाओं के लिए ठीक काम करता है, लेकिन उदाहरण के लिए मान लीजिए कि आप एक बंडल ऐसे LiipImagineBundle
जोड़ने (यह AvalancheImagineBundle
की तरह है) फिल्टर के रूप में एक और बंडल कॉन्फ़िगर करना चाहते हैं: तो
liip_imagine:
filter_sets:
security_avatar_thumbnail:
quality: 75
filters:
thumbnail: { size: [140, 140], mode: inset }
Symfony शिकायत है कि
कॉन्फ़िगरेशन लोड करने में कोई एक्सटेंशन नहीं है r "liip_imagine"
तो किसी को भी अगर वहाँ config.yml
बिना छुए एक और बंडल से तीसरे पक्ष के बंडल के लिए विन्यास को जोड़ने के लिए एक तरीका है पता है?
द्वारा मुझे इसे FOSUserBundle के लिए आवश्यक था! अब मैं इस पर अपना विस्तार बना सकता हूं और इसे अपने विन्यास के साथ प्रीलोड कर सकता हूं। उदाहरण: $ कंटेनर-> प्रीपेन्ड एक्सटेंशन कॉन्फिग ('fos_user', सरणी ( 'db_driver' => 'orm' ); –