मुझे एक रूपरेखा का उपयोग करने की आवश्यकता कब है? [बन्द है]


15

मैं वेब प्रोग्रामिंग के लिए नया हूं और इस समय मैं PHP के बारे में सीख रहा हूं। मैं यह जानना चाहूंगा कि मुझे कब PHPPHP जैसे PHP फ्रेमवर्क का उपयोग करने की आवश्यकता है? ऐसी कौन सी चीजें हैं जो यह और अन्य समान PHP फ्रेमवर्क मेरे लिए पेश करते हैं? और क्या पेशेवर होने के लिए एक रूपरेखा का उपयोग करना वास्तव में महत्वपूर्ण है?

  • और क्या मैं इसमें अपनी पसंद की सुविधाएँ प्रदान करने के लिए अपना खुद का ढांचा बना सकता हूँ?

3
जब आप समझते हैं कि यह क्या प्रदान करता है, और जरूरत पड़ने पर इसके चारों ओर काम कर सकता है, [xyz] ढांचे का उपयोग करें। फ्रेमवर्क कुशल लोगों के लिए उपकरण हैं जो जानते हैं कि उनका उपयोग कैसे करना है और उनकी पसंद की सीमाओं को समझना है। किसी भी परिस्थिति में, एक रूपरेखा का अध्ययन करके किसी भाषा को न सीखें। यह जानबूझकर अपने पैर की उंगलियों, या परिधीय दृष्टि को बंद करने जैसा है। सुझाव, सत्र अजीब तरह से क्या पीएचपी ढांचे आप उपयोग के आधार पर किस प्रकार व्यवहार .. सावधान रहना होगा :)
टिम पोस्ट

जवाबों:


10

जब आप PHP के साथ सहज हो, तो आप एक रूपरेखा का उपयोग करना शुरू कर सकते हैं। और आपको हमेशा उनका उपयोग करना चाहिए:

  1. यह सब कुछ फिर से कोडिंग की तुलना में बहुत तेज है
  2. यह संशोधनों को आसान बनाता है, जैसे डेटाबेस बदलना या विचार बदलना
  3. अन्य लोगों के साथ काम करना और भी आसान हो जाएगा, क्योंकि वे अक्सर एमवीसी पैटर्न फ्रेमवर्क का उपयोग करते हैं

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


2
+1 के लिए जब आप PHP के साथ आराम से हों, तो आप एक फ्रेमवर्क का उपयोग शुरू कर सकते हैं। आपकी बात 3) अच्छी तरह से तभी काम करती है जब रूपरेखा बहुत समान हो। मैं जोड़ता हूँ "एक फ्रेम बनाने से पहले कुछ अलग लोगों को भारी इस्तेमाल नहीं किया"
peterchen

8
मैं "आपको हमेशा उनका उपयोग करना चाहिए" कथन से बिल्कुल असहमत हूं। वे हर परियोजना के लिए अनुकूल नहीं हैं और अक्सर संशोधनों को और अधिक कठिन बना देते हैं । उपयोगिताएँ रूपरेखाओं की तुलना में कहीं अधिक मूल्यवान हैं।
निकोल

@NickC के लिए +1, मैं अधिक सहमत नहीं हो सका। कुछ चौखटे गतिशील और आसानी से चीजों को बदलने का दावा करते हैं, लेकिन फिर आप एक निश्चित बिंदु पर पहुंच जाते हैं और आप बस ... नहीं कर सकते। मैंने उस चीज़ के बारे में बहुत कुछ कहा है :)
स्टीव हिल

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

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

9

फ्रेमवर्क के बिना कुछ पृष्ठों का निर्माण करें ... आप अनिवार्य रूप से परीक्षण और त्रुटि के द्वारा अपना खुद का ढांचा लिखना शुरू करेंगे। ऐसा करने के बाद, एक रूपरेखा पर जाएँ और आनंद लें कि आप कितना समय बचाते हैं। अपनी खुद की रूपरेखा बनाने की कोशिश आपको कुछ चीजें सिखा सकती है, और आपको उन रूपरेखाओं की सराहना करने में मदद करेगी जो पहले से ही वहां हैं।

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


2
लेकिन मैं बाद में यह कैसे सुनिश्चित कर सकता हूं कि फ्रेमवर्क में कोड वैसा ही हो जैसा मैं चाहता हूं? मेरा मतलब है कि हर प्रोग्रामर की अपनी शैली है, है ना? ढांचे के बारे में क्या !!
गोमा

1
@ गोमा भाषा के बारे में क्या? मुझे अभी तक एक भी नहीं मिला है जो सब कुछ करता है जिस तरह से मैं चाहता हूं। ढांचा बस कुछ बहुत, बहुत समान (उम्मीद है कि कुछ हद तक अमूर्त स्तर पर) को जोड़ता है। गंभीरता से, कोडिंग "सब कुछ देखने / व्यवहार करने / जैसा मैं चाहता हूं, वैसा ही होना चाहिए।" यह कुछ ऐसा बनाने के बारे में है जो उपयोगी है, कोड सिर्फ दायित्व है जो हम अपने आप पर बोझ डालते हैं क्योंकि लाभ उस कोड को पहली जगह पर रखने की लागत से आगे निकल जाते हैं।
क्रिस्टोफर क्रेतुज़िग

और अब @TaylorOtwell लारवेल का निर्माता है ...
होस मर्करी

4

जैसे निफ्रा ने कहा, केवल एक फ्रेमवर्क का उपयोग करना शुरू करें जब आप PHP को बिना फ्रेमवर्क का उपयोग कर सकते हैं (अर्थात डेटाबेस तक पहुंचें, हेडर और सामग्री, स्ट्रिंग प्रसंस्करण, डेटा हेरफेर, आदि भेजें)। जहां तक ​​आपके सवालों का सवाल है:

  • मुझे कब PHPPHP जैसे PHP फ्रेमवर्क का उपयोग करने की आवश्यकता है? जब आपकी परियोजना कुछ PHP फ़ाइलों से आगे बढ़ती है; जिस समय आप तर्क को अलग-अलग तत्वों में दृढ़ता से अलग करना शुरू करते हैं और कार्यक्षमता / सत्रों को साझा करना (सत्र, आदि) तब है जब आपको एक रूपरेखा का उपयोग करना चाहिए।

  • ऐसी कौन सी चीजें हैं जो यह और अन्य समान PHP फ्रेमवर्क मेरे लिए पेश करते हैं? मतिहीनता; डेटाबेस से सीधे संपर्क करने के बजाय आप डेटाबेस में अपने डेटा के बीच संरचना और संबंधों का प्रबंधन करने के लिए ऑब्जेक्ट-रिलेशनल मैपिंग (ORM) का उपयोग कर सकते हैं। कई भाषाओं में अधिकांश रूपरेखा ओआरएम प्रदान करती है ताकि आपके आवेदन की डेटाबेस परत के साथ बातचीत करना आसान हो सके। इसी तरह, फ्रेमवर्क अक्सर उपयोगकर्ता इंटरैक्शन के जवाब की परतों को अलग करते हैं। सबसे सामान्य जुदाई मॉडल व्यू कंट्रोलर (MVC) प्रतिमान है, जो संक्षिप्त होना है, डेटाबेस में तर्क का सार है (ORM के लिए एक इंटरफ़ेस, कई मामलों में), प्रसंस्करण अनुरोध और नियंत्रक के मॉडल में मॉडल के साथ बातचीत, और वास्तविक HTML / PDF / छवि / आदि का प्रतिपादन। दृश्य में। फ्रेमवर्क अक्सर रूटिंग जैसे अन्य उपकरण प्रदान करते हैं (अनुरोध के जटिल प्रसंस्करण के लिए अनुमति देने के लिए यूआरआई (ईजी: अनुरोध को मैप करना)http://example.com/users/1 "नियंत्रक उपयोगकर्ताओं के लिए, जो तब उपयोगकर्ता मॉडल को 1 की आईडी के साथ देखता है) और सत्र और अन्य बुनियादी संरचनाओं का एक अमूर्त हिस्सा है।

  • और क्या पेशेवर होने के लिए एक रूपरेखा का उपयोग करना वास्तव में महत्वपूर्ण है? जरुरी नहीं; चौखटे जीवन को आसान बनाते हैं; लेकिन आपको पेशेवर होने के लिए एक का उपयोग करने की आवश्यकता नहीं है। चौखटे आसान अमूर्तता और मानकीकरण प्रदान करते हैं, लेकिन वे ज्यादातर मामलों में एक आवश्यकता नहीं हैं।


3

कुछ उत्तरों को पढ़ने के बाद, मैं सबसे पहले यह कहना चाहूंगा कि आपके पास अक्सर ऐसा कोई विकल्प नहीं होता है कि आप किस फ्रेमवर्क का उपयोग करने जा रहे हैं या आप एक का उपयोग करने जा रहे हैं या नहीं (एक पेशेवर के रूप में)। मैं आपको डराना नहीं चाहता, लेकिन आपको एक फ्रेमवर्क से दूसरे फ्रेम में जाने और एक ही समय में एक से अधिक फ्रेमवर्क का उपयोग करने की अनुमति देने के लिए पीएचपी की समझ का पर्याप्त निर्माण करना होगा।

जब मुझे CakePHP जैसे PHP फ्रेमवर्क का उपयोग करने की आवश्यकता होती है?

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

ऐसी कौन सी चीजें हैं जो यह और अन्य समान PHP फ्रेमवर्क मेरे लिए पेश करते हैं?

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

और क्या पेशेवर होने के लिए एक रूपरेखा का उपयोग करना वास्तव में महत्वपूर्ण है?

सामान्यतया, नहीं, पेशेवर होने के लिए रूपरेखा का उपयोग करना महत्वपूर्ण नहीं है । लेकिन अगर आप कम से कम कुछ सामान्य रूपरेखाओं से परिचित नहीं हैं, तो वास्तविक रूप से, आपके पास बहुत अधिक कैरियर नहीं होगा। बिना फ्रेमवर्क के PHP एक std लाइब्रेरी के बिना C ++ की तरह है। आपको इसकी आवश्यकता नहीं है, और आप वास्तव में इसके बिना अधिक कर सकते हैं क्योंकि आप सीधे भाषा के निचले-स्तर के बिल्ड-ब्लॉक कार्यक्षमता का उपयोग करेंगे, लेकिन यह आपको एक ही काम करने में अधिक समय लगेगा।

और क्या मैं इसमें अपनी पसंद की सुविधाएँ प्रदान करने के लिए अपना खुद का ढांचा बना सकता हूँ?

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


1

एक ऐसे व्यक्ति से, जिसने एक डेटाबेस से बात करने और ऑनलाइन एपीआई से बात करने के लिए मेरे खुद के तरीकों को हैक करने में वर्षों का समय बिताया है और अब केवल फ्रेमवर्क का उपयोग करना शुरू कर रहा है, उनका उपयोग तब करें जब आपको कम से कम उनकी समझ में आ जाए कि क्या करना है, यदि संभव हो।

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

एक बार जब आप समझते हैं कि व्हाट्सएप चल रहा है, तो एक फ्रेमवर्क का उपयोग करें! यह चीजों को इतना आसान बना देता है। एक क्वेरी को स्टोर करने के साथ पागलपन फिर परिणाम पर लूपिंग के साथ mysql_fetch_assocसभी एक ही कॉल में कम हो गया है $book = R::load( "book", $id ):। आप अधिक उत्पादक होंगे और भविष्य की बग को ठीक कर सकते हैं या भविष्य की विशेषताओं को बहुत आसान बना सकते हैं।


1

एक फ्रेमवर्क का उपयोग करें जब आप अंतर्निहित प्रौद्योगिकियों को अच्छी तरह से जानते हैं कि फ्रेमवर्क आपके लिए क्या करता है, और यह अच्छा (या बुरा) क्यों है।

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

आप जो नहीं करना चाहते हैं वह यह है कि आप उपकरण के बजाय रूपरेखा सीखते हैं, और चीजों को करने के एक निश्चित तरीके में नहर बन जाते हैं, और अंत में अंतर्निहित भाषाओं और अवधारणाओं की महारत नहीं लेते हैं - यह एक होना चाहिए उपकरण, बैसाखी नहीं।


1

जब आप अपने आप को बार-बार एक ही काम करते हुए पाते हैं, तो चारों ओर देखें और देखें कि क्या कोई ऐसा ढांचा है जो वही निरर्थक सामान करता है जिसे आपने खुद ही करना शुरू कर दिया होगा। प्रचार के कारण सिर्फ एक ढांचे का उपयोग न करें। मैं व्यक्तिगत रूप से CodeIgniter और Rasmus Lerdorf का "नो-फ्रेमवर्क PHP MVC फ्रेमवर्क" http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html पसंद करता हूं


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

@ समय पोस्ट आम तौर पर इस सवाल का एक काला और सफेद जवाब नहीं है। यह सब हाथ में परियोजना पर निर्भर करता है, मूल पोस्ट ने किसी विशेष परियोजना के बारे में विवरण नहीं दिया।
प्रोग्रामर

1
लगता है कि मुझे एक फ्रेमवर्क से नीचे वोट मिला, अच्छा!
प्रोग्रामर

मेरे साथ :) किसी ने आपके द्वारा पोस्ट किए गए लिंक पर प्रतिक्रिया नहीं की हो सकती है, हालांकि वास्तव में इसके बारे में विस्तार से जाने बिना।
टिम पोस्ट

@ समय पोस्ट हेह! इसलिए मैंने इन दोनों टिप्पणियों को अलग करना सुनिश्चित किया। : D
प्रोग्रामर

-1

मैं सावधानी से सोचने की सलाह दूंगा कि आप फ्रेम x, y या z का उपयोग क्यों करेंगे। हर ढांचा केवल कार्यक्षमता प्रदान नहीं करता है, कि आपको खुद को लागू करने की ज़रूरत नहीं है, बल्कि सोचने का एक तरीका भी है। बस वसंत, जेईई, रेल या Django को देखो। थोड़े समय में एक वेब एप्लिकेशन को स्टॉम्प करने के लिए पर्याप्त चौखटे प्रदान करता है।

लेकिन ये चारों अपने सोचने के तरीके को बढ़ावा देते हैं कि वेब ऐप कैसे बनाए जाने चाहिए। यदि आपकी आवश्यकताओं के अनुरूप नहीं है या आपके स्वाद से मेल नहीं खाता है, तो आपके पास चीजों को आगे ले जाने में कठिन समय होगा।

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


-2

गेटवे से उपयोग करने के लिए फ्रेमवर्क हमेशा अच्छा होता है। यह कोड पुन: प्रयोज्य, बेहतर पठनीयता को बढ़ावा देता है और विकास के समय को थोड़ा बचाता है।

मैं PHP के साथ बहुत अनुभवी नहीं हूं, लेकिन मैं किसी भी फ्रेमवर्क के उपयोग को प्रोत्साहित करूंगा।


क्यों पड़े वोट?
पियरे प्रीटोरियस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.