2009-07-07 15 views
36

में कनवर्ट करें मैं PHP कोड को C++ में परिवर्तित करने का एक तरीका ढूंढ रहा हूं।PHP को C++ कोड

मुख्य कारण: ++ जीयूआई या गैर जीयूआई अनुप्रयोगों महान पीएचपी उपकरण/सॉफ्टवेयर का गुच्छा है कि मैं का उपयोग करें और सी में शामिल करना अच्छा लगेगा हैं

    कुछ कारणों से मैं ऐसा करना चाहते हैं कर रहे हैं
  1. प्रदर्शन
  2. बढ़ाने के लिए PHP पुस्तकालयों पर निर्भरता
  3. साझा होस्टिंग परिवेश के
  4. C++ भाषा सुविधाओं से सशक्त होने के लिए पर स्रोत कोड का खुलासा से बचने के लिए से बचने और ++ क्यूटी सी की तरह चौखटे का इस्तेमाल करते हैं और पोको करने के लिए

अब तक मैंने पाया:

http://sourceforge.net/projects/binaryphp

http://www.mibsoftware.com/php2cpp/

आपके विचारों और उपकरण है कि आप जानते हैं कि साझा करें। आपका अग्रिम में ही बहुत धन्यवाद!

संपादित करें: मैं भी पार मंच संचालनीयता और $$ के लिए अच्छा मैच, वाक्यात्मक चीनी कार्य करता है और इंटरफेस की जरूरत है।

संपादित करें: कृपया ध्यान दें कि 2 उपरोक्त उपकरण 2 अलग-अलग दृष्टिकोणों का उपयोग करते हैं। पूर्व में PHP प्रक्रियात्मक कोड को परिवर्तित करने और इसे चलाने के लिए अंतर्निहित पुस्तकालय हैं। उत्तरार्द्ध PHP से सी ++ में शब्द (शब्द द्वारा शब्द) का अनुवाद करता है।

+6

ऐसा लगता है कि आप अपने खुद के सवाल का जवाब दे। –

+0

मुझे अतिरिक्त चाहिए :) वे अभी तक पर्याप्त नहीं हैं। $$ या इंटरफ़ेस जैसे मामलों से कैसे निपटें? मैं अपना कोड लिखने से बचने की कोशिश कर रहा हूं। मैं क्रॉस-प्लेटफार्म इंटरऑपरेबिलिटी का भी लक्ष्य रखता हूं। – Viet

+2

PHP पहले ही क्रॉस-प्लेटफार्म इंटरऑपरेबल है। यदि आप अपना कोड लिखने से बचने की कोशिश कर रहे हैं तो आप इसे C++ में बदलने की कोशिश क्यों कर रहे हैं? –

उत्तर

25

यह भी कुछ समय में दिलचस्प हो सकता है:

https://developers.facebook.com/blog/post/2010/02/02/hiphop-for-php--move-fast/

यह क्या फेसबुक जिंदा रहता है;) एक तकनीक जो तब्दील & सेल्सियस के लिए php संकलित ++ और खुला स्रोत जाने के लिए जा रहा है। मुझे उम्मीद है कि यह वास्तव में अच्छी तरह से परीक्षण किया जाएगा।

+1

परियोजना को कहा जाता है हिपहॉप: http://www.hhvm.com – Tal

37

हो सकता है कि आप ऐसा क्यों न करें कि आपको ऐसा क्यों करने की आवश्यकता है, लेकिन मुझे नहीं लगता कि आपके द्वारा पोस्ट किए गए कारण विशेष रूप से आकर्षक हैं।

  1. बहुत सारे वेब ऐप्स CPU-bound हैं, इसलिए मुझे नहीं लगता कि आप प्रदर्शन में वृद्धि से प्रभावित होंगे। इसे देशी कोड में संकलित करना आपके आई/ओ या डीबी को कम करने वाला नहीं है। सी ++ में जाने से पहले वेब ऐप को स्केल करने के बेहतर तरीके हैं, और उनमें से अधिकतर आपकी स्क्रिप्ट को डीबी या डिस्क से डेटा के लिए इंतजार कर रहे हैं (जैसे कि आपके डीबी को घुमाने या डेटा को रैम कैश में ले जाना) को कम करना शामिल है।

  2. लाइब्रेरी निर्भरता वास्तव में एक मुद्दा है? सबसे लोकप्रिय पुस्तकालयों में से कई अब PHP कोर के साथ बंडल किए गए हैं, साथ ही कोई भी अतिरिक्त इंस्टॉल करने के लिए आमतौर पर एक सिंचन होता है। एक बार जब आप मिल जाएंगे, तो आप स्पर्श नहीं करते हैं, इसलिए मुझे यकीन नहीं है कि यह C++ पर जाने के लिए विशेष रूप से आकर्षक कारण क्यों है।

  3. यह वास्तव में सी ++ में जाने का एक बहुत ही खराब कारण है। अधिकांश साझा होस्टिंग वातावरण आपको PHP वातावरण में स्क्रिप्ट चलाने देंगे, लेकिन बहुत कम से कम (जब तक आप एक वीपीएस नहीं देख रहे हैं) आपको एक मनमाना बाइनरी चलाने की सुविधा देगा जैसे आपके पास सी ++ ऐप होगा। साझा वातावरण में स्रोत पठनीयता को नियंत्रित करने के बेहतर तरीके हैं, जैसे फाइल अनुमतियों का सही ढंग से उपयोग करना। यदि आप अपने PHP कोड को चोरी करने वाले ग्राहकों के बारे में चिंतित हैं, तो बहुत बुरा है। आप जो कुछ भी चाहते हैं उसे खराब करने की कोशिश कर सकते हैं, लेकिन यह दिन के अंत में आम तौर पर व्यर्थ है।

  4. क्या विशिष्ट सी ++ विशेषताएं आपको इतनी सख्त जरूरत है कि PHP ऑफर नहीं करता है? ईमानदार होने के लिए, पॉइंटर्स और मेमोरी आवंटन के साथ आपके औसत PHP कोडर के बारे में सोचने का विचार मुझे sh * t से डराता है।PHP के लिए बहुत अच्छे ढांचे उपलब्ध हैं, और मैं सुझाव देता हूं कि आप उन सभी सुविधाओं को पूरी तरह से निकालें, इससे पहले कि आप अपने संपूर्ण कोड बेस की भाषा को बदलना शुरू करें, केवल कुछ विशेषताओं के लिए जिन्हें आप विशेष रूप से ढांचे में पसंद करते हैं।

  5. आपने अपनी टिप्पणी में क्रॉस-प्लेटफ़ॉर्म संगतता का उल्लेख किया है ... PHP ईमानदारी से सी ++ की तुलना में इसे आसान बनाने जा रहा है। PHP कार्यान्वयन प्लेटफॉर्म पर अपेक्षाकृत मानकीकृत है (कुछ निचले स्तर के कार्यों को छोड़कर) जबकि आप संभवतः सी ++ में एक अलग कंपाइलर और सिस्टम कॉल का उपयोग करने जा रहे हैं।

+2

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

+0

धन्यवाद बॉब। आपने बहुत अच्छे तर्क दिए। इस निर्णय से पहले मेरे पास इसका पीछा करने के अपने स्वयं के कारण हैं। क्रॉस-प्लेटफार्म संगतता पर, क्यूटी सी ++ और पोको सी ++ बहुत अच्छा काम करते हैं और मैं उन्हें प्यार करता हूं। – Viet

+0

नोट के लिए निक धन्यवाद। – Viet

3

1-3 Zend संकलक

http://www.zend.com/en/

4 द्वारा पूरा किया जा सकता एक छोटे से अजीब है, क्योंकि क्यूटी सी ++ एक डेस्कटॉप यूआई ढांचे नहीं है?

+0

धन्यवाद निक :) मुझे काम करने और सुधारने के लिए सी ++ कोड की आवश्यकता है इसलिए मैं खोजना जारी रखूंगा। – Viet

+0

क्यूटी सी ++ का उपयोग कंसोल अनुप्रयोगों और डिमों को भी लिखने के लिए किया जा सकता है :) मैंने पुस्तकालयों की अपनी चौड़ाई और गहराई का आनंद लेने के लिए क्यूटी का उपयोग करके सीजीआई आवेदन लिखने की भी कोशिश की (नेटवर्किंग, स्ट्रिंग प्रसंस्करण, आई/ओ ...) – Viet

8

अधिक शोध के बाद, मुझे http://www.phpcompiler.org/doc/maketea.pdf और http://rosecompiler.org/ROSE_Tutorial/ROSE-0.9.4a-Tutorial.pdf मिला है। चूंकि PHP स्रोत कोड को पार्स किया जा सकता है और उसके बाद एक्सएमएल में ट्रान्सलेट किया जा सकता है, इसे सी ++ में परिवर्तित करना सिर्फ एक्सएसएलटी का मामला है। इसके अलावा, PHPCompiler भी प्लगइन और स्रोत कोड के विभिन्न परिवर्तनों का समर्थन करता है (एएसटी परिवर्तनों के आधार पर)। मुझे लगता है कि अब के लिए पर्याप्त होना चाहिए।

कुछ अतिरिक्त संदर्भ:

  1. http://www.phpcompiler.org
  2. http://www.phpcompiler.org/doc/latest/devintro.html
  3. http://rosecompiler.org
  4. http://rosecompiler.org/ROSE_UserManual/ROSE-UserManual.pdf

धन्यवाद चर्चा में भाग लेने के लिए हर किसी को!