क्या मुझे PHP फ्रेमवर्क के साथ AngularJS मिलाना चाहिए? [बन्द है]


161

जब यह इंटरैक्टिव HTML5 और मॉडल बाइंडिंग की बात आती है तो AngularJS बहुत शक्तिशाली है। दूसरी ओर, Yii जैसे PHP फ्रेमवर्क त्वरित, अच्छी तरह से संरचित, सुरक्षित और शक्तिशाली वेब अनुप्रयोग विकास को सक्षम करते हैं। दोनों प्रौद्योगिकियां डेटा एक्सेस, पुनरावृत्ति और पृष्ठ लेआउटिंग के लिए परिष्कृत साधन प्रदान करती हैं।

क्या उन दो दृष्टिकोणों (क्लाइंट-साइड और सर्वर-साइड "पेज सेटअप") को मिलाना अच्छा या बुरा अभ्यास है या यह संवादात्मक, सहज HTML5 AJAX वेब अनुप्रयोगों के अर्थ के विरुद्ध है?

मैं PHP का उपयोग करके जेएस उत्पन्न करने के बारे में बात नहीं कर रहा हूं ( यह प्रश्न देखें ) - मैं एक दृश्य उत्पन्न करने के बारे में बात कर रहा हूं जो एंगुलरजेएस का उपयोग करेगा।

मुझे यह भी पता है कि एक AngularJS पृष्ठ को डेटा प्राप्त करने के लिए REST सेवाओं के माध्यम से सर्वर के साथ संचार (या कर सकते हैं) करना चाहिए ( उदाहरण के लिए इसे देखें ) उदाहरण के लिए इसे सीधे PHP चर से पुनर्प्राप्त करने के बजाय। लेकिन मेरे लिए PHP में अलग से पूरे वेब एप्लिकेशन के लिए "फ्रेम" डिजाइन करना अधिक सुविधाजनक लगता है (उदाहरण के लिए मुख्य मेनू का निर्माण या प्राधिकरण / सत्रों को संभालना)


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

मेरे पास कुछ AngularJS प्रोजेक्ट्स हैं जिन्हें मैं PHP / Jquery में परिवर्तित कर रहा हूं। मोबाइल उपकरणों और ब्राउज़र की एक विस्तृत विविधता के साथ काम करने के लिए कोणीय होने के साथ मेरे पास अंतहीन मुद्दे हैं। कोणीय एसईओ के लिए मुश्किल है और Google इसका दोस्त नहीं है। मैंने शीर्ष रैंकिंग वाली साइटों को
कोपुलर

जवाबों:


180

ऐसा लगता है कि आप PHP में विकसित होने के साथ अधिक सहज हो सकते हैं, इसने आपको वेब अनुप्रयोगों के साथ पूर्ण क्षमता का उपयोग करने से रोक दिया है।

यह वास्तव में संभव है कि PHP को आंशिक रूप से धारावाहिकों और पूरे विचारों को प्रस्तुत करना चाहिए, लेकिन मैं इसकी सिफारिश नहीं करूंगा।

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

मैं आपको अधिक एपीआई केंद्रित दृष्टिकोण में अधिक आरामदायक सोच प्राप्त करने की सलाह दूंगा। PHP आउटपुट को पूर्व-प्रदत्त दृश्य होने के बजाय, और मात्र DOM मैनिपुलेशन के लिए कोणीय का उपयोग करें, आपको PHP के बैकेंड आउटपुट को उस डेटा पर विचार करना चाहिए जो RESTFully पर काम किया जाना चाहिए, और इसमें कोणीय उपस्थित होना चाहिए।

दृश्य को प्रस्तुत करने के लिए PHP का उपयोग करना:

/user/account

if($loggedIn)
{
    echo "<p>Logged in as ".$user."</p>";
}
else
{
    echo "Please log in.";
}

JSON को इस तरह से आउटपुट करके एक ही समस्या को API सेंट्रिक दृष्टिकोण से कैसे हल किया जा सकता है:

api/auth/

{
  authorized:true,
  user: {
      username: 'Joe', 
      securityToken: 'secret'
  }
}

और कोणीय में आप एक प्रतिक्रिया प्राप्त कर सकते हैं, और प्रतिक्रिया क्लाइंट पक्ष को संभाल सकते हैं।

$http.post("http://example.com/api/auth", {})
.success(function(data) {
    $scope.isLoggedIn = data.authorized;
});

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


2
एक उदाहरण के सरल करने के लिए। मैं खुद एक सुपर डुपर बेसिक लॉगिन से ज्यादा की तलाश में था जो हर कोई करता है। जब आपके पास PHP / HTML और चर <td> $ नाम </ td> <td> {{name}} </ td> और फिर 'app.run (कार्य ($ rootScope)) {$ rootccope.name =} हो तो बड़ा अंतर "अरी लर्नर";});) मैं स्वयं कोशिश कर रहा हूं कि PHP को 'DYNAMIC' कोणीय पृष्ठ बनाने की कोशिश करने या देखने का प्रयास किया जाए। और बस देख नहीं रहा। ग्राहक के पास प्रत्येक व्यक्तिगत तत्व को लोड करने और टेम्पलेट को बदलने / बदलने के लिए प्रतीक्षा करें। बस PHP के विचार के लिए उत्सुक नहीं है कि इस तरह की जावास्क्रिप्ट की एक दीवार पैदा करना, और अभी तक आसानी से देखा जा सकता है
Shawn Rebelo

2
@ शावरबेलो क्या आप थोड़ा स्पष्ट कर सकते हैं कि आपका क्या मतलब है a wall of javascript? मैं PHP प्रतिपादन के वर्षों के बाद कोणीय / जेएस एपीआई दुनिया के लिए नया हूं, इसलिए यह चर्चा मेरे लिए दिलचस्प है।
दान निसानबाम

"PHP आउटपुट के बजाय पूर्व-प्रदत्त दृश्य, और मात्र DOM मैनिपुलेशन के लिए कोणीय का उपयोग करें ..." - मैं आपको एक नई-पुरानी अवधारणा से परिचित कराता हूं ।
डिसिडेंट रेज

ठीक यही है कि यह कैसा होना चाहिए, बैकएंड से एक आरामदायक एपीआई कोई भी भाषा हो सकती है और फ्रंट-एंड के लिए एक कोणीय ऐप बैकएंड की परवाह किए बिना काम कर सकता है।
आमिर सावन २ '’१36

3
मुझे समझ में नहीं आ रहा है कि मुझे प्लेसहोल्डर्स के साथ एक जेनेरिक पेज क्यों लोड करना चाहिए और फिर कुछ हिस्सा प्राप्त करने के लिए एक या एक से अधिक एसिंक्स के साथ कुछ लोड करना चाहिए जो पहले से ही यूजर / ऑर्टिकल डेटा जैसे पहले पेज लोड में था?
टोबिया
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.