2014-09-23 11 views
11
में टॉगल

हमारे Symfony आवेदन है वर्तमान में एक आवेदन, कि जल्द ही कई साइटों एक ही Symfony कोर को इंगित और पर जो साइट यह वर्तमान पर है आधारित थोड़ा अलग कार्यक्षमता है करने की क्षमता की आवश्यकता होगी।फ़ीचर Symfony

उदाहरण के तौर पर हमारे पास एक साइट पर एक बैनर दिखाना हो सकता है लेकिन दूसरा नहीं। एक और उदाहरण एक भुगतान विकल्प है जो विभिन्न साइटों पर सक्षम/अक्षम हो जाएगा। या कोई अन्य अलग-अलग साइटों पर एक फॉर्म पर अलग-अलग फ़ील्ड है।

क्या किसी ने इस तरह से सिम्फनी एप्लिकेशन को संरचित करने का अनुभव किया है?

उत्तर

3

आप "विषय" आपके आवेदन आप LiipThemeBundle उपयोग कर सकते हैं करना चाहते हैं, यह वास्तव में अच्छी तरह से काम करता है। सुविधाओं सक्रियण/निष्क्रियता के लिए आपके पास FeatureToggleBundle बंडल (हाल ही में चुप) है।

/** 
* Check if a feature is activated. 
* 
* @param string $feature Name of the feature 
* 
* @throws AccessDeniedHttpException 
*/ 
protected function checkFeature($feature) 
{ 
    $features = $this->container->getParameter('app.features') 
    if (!$features[$feature]) { 
     throw new AccessDeniedHttpException(); 
    } 
} 

... 

$this->checkFeature('contact_form'); 
इस प्रकार का कॉन्फ़िगरेशन के साथ

:

app.features: 
    contact_form: false 
2

Yess thats सिम्फोनी

enter image description here

सिम्फोनी का लाभ

आप भी इस तरह एक बुनियादी सहायक को लागू कर सकता है रूटिंग और contro से जुड़े कर्नेल का उपयोग करें ller और फिर प्रतिक्रिया बनाई जा रही है।

यदि आप सिम्फनी में एकाधिक अनुप्रयोगों का उपयोग करना चाहते हैं तो आप इसे बहुत आसानी से कर सकते हैं और यह सिम्फनी का एक लाभ है। इसके लिए आपको बस कुछ रूटिंग जोड़ने की आवश्यकता है और सब कुछ स्वचालित रूप से किया जाएगा।

आप पूरे फ़ॉर्म को फिर से बनाने के बिना रूपों जोड़ने और उन्हें आवश्यक फ़ील्ड के साथ अन्य पृष्ठों पर संलग्न करने के लिए सिम्फोनी प्रपत्र वर्ग का उपयोग कर सकते हैं। यदि आप कुछ सुविधाओं को चालू/बंद करना चाहते हैं तो आप इसे app कक्षा या विभिन्न नियंत्रकों द्वारा बनाकर कर सकते हैं।

3

आपको यह जानना है कि कर्नेल इवेंट श्रोता का उपयोग करके आप अधिकतर काम कर सकते हैं।

आप 'कोरबंडल' में कर सकते हैं उदाहरण के लिए उपयोगकर्ता को kernel.request ईवेंट का उपयोग करके डोमेन नाम के आधार पर एक अलग टेम्पलेट पर संदर्भित करें।

तो अपनी स्थिति में यह एक साइट में एक बैनर दिखा नहीं बल्कि एक और करने के लिए एक साइट के लिए आसान होगा।

Twig templating using event listener

:

आप इस लेख है कि बताते हैं यह देख सकते हैं