2012-06-29 20 views
34

के बीच का अंतर मैं सिलेक्स को आजमा देना चाहता हूं लेकिन मेरे कुछ प्रश्न हैं।सिम्फनी और सिलेक्स

मुझे सिम्फनी 2 का उपयोग करना है और मैं जानना चाहता हूं कि सिलेक्स सिम्फनी से बहुत अलग है या यह वही बात है (एक ही ऑपरेशन, एक ही कोड ...)?

इसके अलावा, साइलेक्स को मध्यम या बड़ी परियोजनाओं के लिए छोटी PHP परियोजनाओं और सिम्फनी के लिए अनुशंसा की जाती है, यह सच है?

उत्तर

45

कुछ ध्यान देने योग्य बातें:

  • Silex Symfony2 घटकों पर आधारित है, Symfony2 रूपरेखा है जैसे। इस प्रकार, इसे घटकों के लिए वैकल्पिक यूजर इंटरफेस माना जा सकता है (उपयोगकर्ता एक वेब डेवलपर है)।
  • चूंकि वे समान आधार का उपयोग करते हैं, उनके बीच माइग्रेशन अपेक्षाकृत आसान होना चाहिए।
  • सिम्फनी 2 की तरह, सिलेक्स ज्यादातर नियंत्रक ढांचा है। यह आपको कुछ संरचना प्रदान करता है, लेकिन मॉडल और दृश्य भागों को तीसरे पक्ष के पुस्तकालयों (जैसे ट्विग या सिद्धांत) द्वारा नियंत्रित किया जाता है।
  • चूंकि आपका व्यावसायिक तर्क आपके नियंत्रकों में नहीं होना चाहिए, यदि आप उस कोड को अलग करते हैं और अपने नियंत्रकों को प्रकाश रखते हैं, तो परियोजना आकार के मामले में सीमित कारक केवल आपके पास रूटों की मात्रा होगी।

उस ने कहा, सिलेक्स आपको सिम्फनी 2 के बंडल नहीं देगा।

+6

दोनों के बीच माइग्रेशन आसान से आसान है (Sy2 -> Silex जा रहा है) विशेष रूप से सिम्फनी प्रदाताओं के लिए सिलेक्स प्रदाताओं के लिए पूर्ण, पूर्ण दस्तावेज़ीकरण की अत्यधिक कमी पर विचार करना। कहा जा रहा है कि, आपके अन्य अंक पैसे पर सही हैं। दूसरा बड़ा अंतर यह है कि सिम्फनी 2 उत्पादन तैयार है और सिलेक्स अभी भी डीडी मोड में है। – lucian303

+2

सिम्फनी => सिलेक्स इसके विपरीत से कठिन होगा क्योंकि जो चीजें आपने दी हैं, वे अब वहां नहीं हैं। सिलेक्स में कोर प्रदाताओं के पास सभ्य दस्तावेज है, लेकिन अधिकांश तृतीय-पक्ष प्रदाता नहीं करते हैं। – igorw

+0

igorw मैं आपका मतलब है कि "आपका व्यवसाय तर्क आपके नियंत्रकों में नहीं होना चाहिए" से थोड़ा उलझन में है क्योंकि अगर यह आपके नियंत्रकों में नहीं जाता है, तो यह कहां जाता है? क्या यह संस्थाओं में जाता है? या आप इसे सेवाओं में डालते हैं? – ILikeTacos

5

सिलेक्स स्वतंत्र सिम्फनी 2 घटकों पर आधारित है और वास्तव में सिम्फनी जैसी पूर्ण-स्टैक वेब एप्लिकेशन ढांचे पर विचार नहीं किया जाता है। आपको केवल उन्हीं छोटी परियोजनाओं के लिए इसका उपयोग करना चाहिए जिन्हें केवल कुछ फाइलों की आवश्यकता होती है, या आप इसे बहुत तेज़ी से बढ़ा देंगे।

+7

केवल छोटी परियोजनाओं के लिए सिलेक्स का उपयोग कर? रवींद्र। आप इसे अपने बड़े प्रोजेक्ट में भी इस्तेमाल कर सकते हैं। क्यों नहीं? आप एप्लिकेशन की अपनी संरचना बना सकते हैं - नियंत्रकों से बाहर व्यवसाय तर्क चलाना, आप भंडार (सिद्धांत डीबीएएल या पीडीओ) बना सकते हैं। –

15

यहाँ जब Silex (विशेष रूप से टिप्पणी में) का उपयोग करने के बारे में कुछ दिलचस्प विचार कर रहे हैं: https://web.archive.org/web/20160131151109/http://www.testically.org/2011/10/11/is-there-a-specific-situation-when-to-use-a-php-micro-framework-like-silex/

Silex ही सुंदर नंगे है, जिसका अर्थ है कि आप और अधिक बस मार्ग और परीक्षण आप जोड़ने की आवश्यकता होगी तो चाहते हैं सेवाओं के रूप में विशिष्ट विशेषताओं (डीबी, Twig ...)। मैं कुछ रेडीमेड प्लेट्स है कि आप इस के साथ प्रदान करते हैं पर एक नज़र लेने के लिए सलाह देते हैं: https://github.com/lyrixx/Silex-Kitchen-Edition या https://github.com/ivoba/superleansilexplate (मेरा thats :))

एक और मुद्दा Silex Symfony2 की तुलना में एक शायद लाइटर पदचिह्न है कि है, इसलिए यदि आप की जरूरत एक छोटी & तेज साइट, सिलेक्स एक विचार के लायक है।

7

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

+0

हाय ओलोनोड, हालांकि यह पोस्ट काफी पुराना है, मैं जानना चाहता हूं कि आप किस जेएस फ्रेमवर्क का इस्तेमाल सिलीक्स के साथ करते थे? धन्यवाद! – user2345998

+1

हैलो, उस समय मैं कोणीय का उपयोग कर रहा था जो अभी भी बहुत (सबसे ज्यादा?) लोकप्रिय है। अब मैं 'ऑरेलिया' का एक प्रारंभिक गोद लेने वाला हूं, जो एक अच्छा अगली-जेन फ्रेमवर्क है जो उपयोग करना बहुत आसान है;) – olanod

-2

सिलेक्स एक PHP माइक्रोफ्रेमवर्क है। यह सिम्फोनी के छोटे परियोजना कोडिंग शैली के लिए इस्तेमाल होता है और SILEX लगभग symfony.But के समान सिम्फोनी बड़ी परियोजनाओं

+0

आकार कोई फर्क नहीं पड़ता। सिम्फनी की एक और कठोर संरचना है, जो कि यदि आप परियोजना पर कई डेवलपर्स के साथ काम करते हैं तो यह आसान हो सकता है। जबकि सिलेक्स में आप संरचना के लिए अधिक जिम्मेदार हैं। मेरे लिए सिलेक्स कम obfusticating और PHP के करीब और मैं अकेले काम करता हूं, इसलिए मैं एक बड़ी परियोजना पर भी यही उपयोग करता हूं। – martti

8

(अपडेट) के लिए उपयोग Symfony 2.8 के बाद से आप सिम्फोनी 2 का उपयोग कर सकते है एक माइक्रो कर्नेल नियंत्रक के साथ एक microframework के रूप में। यहां संक्षिप्त विवरण देखें: symfony.com/blog/new-in-symfony-2-8-symfony-as-a-microframework।अब सिम्फनी हमें संरचना और वास्तुकला पर अधिक नियंत्रण देता है। यदि आप सिम्फनी 2 शैली पसंद करते हैं तो सिलेक्स के लिए अच्छा विकल्प।

2.8 रिलीज

Silex microframework से पहले Symfony करने के लिए Silex तुलना Symfony पर आधारित है, लेकिन यह वास्तव में एक ही बात नहीं है। एक छोटी परियोजना के लिए सिम्फनी जैसे पूर्ण-ढेर ढांचे का उपयोग करना इस परियोजना को ओवरकिल कर रहा है।

माइक्रोफ्रेमवर्क में, आपके पास उपयोग करने के लिए इच्छित टूल चुनने के लिए अधिक लचीलापन है। आप एप्लिकेशन आर्किटेक्चर और तर्क के बारे में अधिक निर्णय ले सकते हैं। कुछ विस्तार के साथ एक पूर्ण-ढेर ढांचे में आपके पास एक आर्किटेक्चर और एक तर्क होगा जो पहले से ही इसकी कॉन्फ़िगरेशन के लिए प्रतिबंध और सीमाओं के साथ पूर्वनिर्धारित है।

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

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

Silex dependency injection

ध्यान रखें कि: Silex limitations

निष्कर्ष करने के लिए, Silex छोटे अनुप्रयोगों के लिए अच्छा है और उन लोगों के लिए, यह निश्चित रूप से Symfony बदल सकते हैं। सिलेक्स का उपयोग बड़ी परियोजनाओं के लिए भी किया जा सकता है (लेकिन बड़े अनुप्रयोगों के लिए मैं सिम्फनी की तरह पूर्ण-ढेर ढांचे का उपयोग करने की सिफारिश करता हूं)।

स्लाइड्स के लिए संदर्भ: http://www.slideshare.net/dustin.whittle/silex-from-micro-to-full-stack पर संदर्भ। यदि आपको ऐसा लगता है, तो आगे बढ़ें और सिलेक्स ढांचे के बारे में कुछ और पढ़ें।

मैं सिलेक्स से सिम्फनी की तुलना में इस परिचय को देखने की भी सिफारिश करता हूं: https://www.youtube.com/watch?v=RDVtnsoOysE

फिर

, लोग हैं, जो वास्तव में इसका इस्तेमाल से आ रही Silex प्रयोग करने के लिए कुछ प्रो: https://www.youtube.com/watch?v=OJcdHGJFfLU

1

Silex छोटे के साथ-साथ बड़े अनुप्रयोगों के लिए एक महान रूपरेखा है। परियोजना में संरचना देना सिलेक्स में आपकी ज़िम्मेदारी है। चूंकि प्रोजेक्ट बड़ा हो जाता है, इसलिए आप इसमें सिम्फनी घटकों को अच्छी तरह से एकीकृत कर सकते हैं हालांकि सिम्फनी प्रदाता के लिए प्रलेखन विशेष रूप से सिम्फनी सुरक्षा घटक के लिए इतना अच्छा नहीं है।

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

मेरे मामले में मुझे बॉक्स से बाहर की गति की आवश्यकता थी और साइलेक्स ने मुझे गति प्रदान की और हालांकि मैं अधिकांश सिम्फनी घटकों का उपयोग कर रहा हूं, यह बॉक्स के बाहर सिम्फनी से बहुत तेज है।

संबंधित मुद्दे