2010-08-31 11 views
6

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

दृष्टिकोण हम एक मिश्रित जावा/पीएचपी संदर्भ में काम करने के लिए आया था इस प्रकार हैं:

  • दृश्यपटल और अलग सामने (PHP + जावास्क्रिप्ट) और वापस (जावा + एसक्यूएल) टीमों
  • साथ बैकएंड में जावा में पीएचपी
  • एक या एक से अधिक टीमों
  • जावा

के लिए सब कुछ पलायन के साथ, एक जावा webapp में दोनों तकनीकों का उपयोग कर उदाहरण के लिए Quercus के माध्यम से हम इन approac के किसी भी प्रयास नहीं किया है hes क्योंकि हम काम करने के लिए पर्याप्त जावा-केवल परियोजनाओं के लिए भाग्यशाली रहे हैं।

क्या आप अन्य दृष्टिकोण देखते हैं, या आपने किसी भी वर्णित दृष्टिकोण की कोशिश की है?

+1

मैं Quercus साथ काम किया है और यह एकीकृत PHP और जावा (मैं एक PHP देव हूँ) का एक शानदार तरीका है। Quercus बहुत मामूली परिवर्तनों के साथ वर्डप्रेस चलेंगे। Wired.com अपने ब्लॉग के लिए Quercus/Wordpress कॉम्बो उपयोग करता है। –

+0

@Brent baisley, साझा करने के लिए धन्यवाद। मैं भी Quercus दृष्टिकोण के पक्ष में हूँ, एक वापस आने के रूप में दूरदराज सेवा दृष्टिकोण के साथ। –

+0

क्विकस का एक दोष यह हो सकता है कि mod_rewrite मैपिंग का उपयोग नहीं किया जा सकता है। वेबपैप –

उत्तर

3

मैं Quercus का उपयोग किया है। मुझे लगता है कि अगर यह ड्रूपल की तरह कुछ का समर्थन करता है तो यह शायद काफी परिपक्व है। अपने PHP अनुप्रयोग तरीके से काम करता है, तो यह आप जावा के लिए एक बहुत ही धीरे-धीरे उन्नयन पथ के बाद से आप जावा में अपने स्वयं के प्लगइन्स लिखने और उन्हें इस तरह के एक JDBC बैक-एंड का उपयोग कर के रूप में पीएचपी परत को बेनकाब, कर सकते हैं प्रदान करता है।

कितना आसान यह सब कैसे अच्छी तरह से अलग परतों पीएचपी आवेदन में हैं पर निर्भर करता है। उदाहरण के लिए, यदि दृश्य परत अच्छी तरह से अलग हो जाती है, तो आप स्प्रिंग एमवीसी एप्लिकेशन के साथ दोनों नियंत्रक और मॉडल तर्क को प्रतिस्थापित करने में सक्षम हो सकते हैं जो दृश्य के लिए 'QuercusView' का उपयोग करता है - आप बहुत से PHP का पुनः उपयोग कर सकते हैं तर्क देखें।

तुम भी विचार करना चाहिए कि कैसे आप PHP कोड के एक सर्वेक्षण कर सकते हैं - शायद एक स्क्रिप्ट है कि सभी फ़ंक्शन कॉल, आयात आदि निकालता है ताकि आप उन्हें तुरंत के लिए Quercus समर्थन का परीक्षण कर सकते हैं।

क्षमा करें, मैं PHP-जावा पुल उपयोग नहीं किया है, लेकिन मुझे लगता Quercus पुस्तकालय बहुत इन दिनों परिपक्व है, ताकि किसी चरणबद्ध माइग्रेशन के लिए मेरी पहली पसंद होगा।

+0

आपके उत्तर –

1

PHP/Java Bridge आपकी रुचि के हो सकते हैं:

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

+0

@ सफ़्राज़ के अंदर कम से कम नहीं, पॉइंटर के लिए धन्यवाद, यह पॉइंटर के लिए पहले दृष्टिकोण –

1

अलग सामने (PHP + जावास्क्रिप्ट) और वापस (जावा + एसक्यूएल) टीमों

यह तकनीकी रूप से संभव उपयोग कर रहा है SOAP साथ बैकएंड में दृश्यपटल और जावा में पीएचपी।

एक जावा webapp में दोनों प्रौद्योगिकियों का उपयोग, उदाहरण के लिए Quercus के माध्यम से एक या एक से अधिक टीमों

मैं जावा

को यह

पलायन सब कुछ के बारे में पता नहीं है के साथ

यह बेहतर विकल्प है, लेकिन इसमें समय के आधार पर समय लगेगा ई & आपकी परियोजना की जटिलता।

1

NUMITON आपके लिए उपयोगी हो सकता है:

http://java.dzone.com/announcements/automated-translations-php-jav

The shortest route from PHP to Java 

    Numiton offers an automated alternative to migrating PHP codebase. This way, 
established applications can benefit from the advantages offered by Java in its 
enterprise-level capacity. 

    Some of the risks inherent to any software migration are avoided by using an automated 
translation tool. Our PHPtoJava product performs variable type inference, 
objectualization and other operations in a uniform manner, the resulting appearance and 
behavior being identical to what the users already know. 


    Of course, the human factor still plays an important role in the post-translation 
phases: application fine-tuning and functional testing. The speed and accuracy of the 
entire process surpass however those of a manual translation. 


    One of the applications we have migrated this way is the well-known forum engine 
phpBB. The translation result, nBB2, powers our own forum and was recently donated to the 
open-source community as a SourceForge project. 
+0

धन्यवाद में उपयोग की जाने वाली तकनीक हो सकती है। यह एक दिलचस्प दृष्टिकोण की तरह लगता है, लेकिन मुझे विश्वास है कि परिणाम जावा कोड होगा जो किसी भी जे 2 ईई सर्वोत्तम प्रथाओं का पालन नहीं करेगा। मल्टी-स्तरीय आर्किटेक्चर, एओपी प्रबंधित लेनदेन इत्यादि का उपयोग नहीं किया जाएगा –

2

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

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

+0

साझा करने के लिए धन्यवाद। एक अच्छा दृष्टिकोण की तरह बहाव लगता है। शायद PHP/जावा ब्रिज से भी तेज। मैंने खुद को क्वार्कस की कोशिश नहीं की है, लेकिन बेंचमार्क परिणाम दिलचस्प हैं। –

1

मैं किसी भी अनुभव एक JVM अंदर पीएचपी चल रहा है नहीं है, लेकिन मुझे लगता है कि आईबीएम करता दांव लगा रहा हूँ। :) आप परियोजना शून्य पर विचार कर सकते हैं।

http://www.projectzero.org/php/

Querces या कि दूसरी बात यह किसी लिंक किए गए के समान लगता है। एकमात्र ऐसी चीज जिसे आपने उल्लेख नहीं किया है, मैं सोच सकता हूं कि मैं PHP कोड को दोबारा प्रतिक्रिया देना चाहता हूं क्योंकि मुझे लगता है कि इसका एक पुराना कोडबेस PHP 4 तरीके से लिखा गया है।

+0

@llbbl के लिए धन्यवाद, उत्तर के लिए धन्यवाद। परियोजना शून्य दिलचस्प लग रहा है। –

1

I know this is 2 years old question but i still want to contribute. हम पूर्ण जावा पोर्टल से php + java में माइग्रेट कर रहे हैं। हमारे पास 14 मिलियन उपयोगकर्ता हैं। इस डिज़ाइन को वेब सेवाओं की आवश्यकता नहीं है क्योंकि हम जावा और जेएस के लिए जेसन प्रदाता के रूप में जावा का उपयोग करते हैं। हम जल्द ही परिणाम देखेंगे ... अलग सामने (PHP + जावास्क्रिप्ट) और वापस (जावा + एसक्यूएल) टीमों के साथ बैकएंड में दृश्यपटल और जावा में

पीएचपी

+0

और हमने परिणाम देखा; ये बिलकुल सही है। हमारे मामले में, PHP को smarty टेम्पलेट इंजन और memcache से भी इसकी शक्ति मिलती है। बहुत ही प्रभावी... – yuceel

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