سؤال

أبحث عن طريقة لتحويل رمز PHP إلى C ++. هناك عدد قليل من الأسباب التي أريد القيام بذلك:

السبب الرئيسي: هناك مجموعة من أدوات / برنامج PHP الرائعة التي أحب استخدامها ودمجها في تطبيقات G ++ أو غير واجهة المستخدم الرسومية

  1. لتعزيز الأداء
  2. لتجنب الاعتماد على مكتبات PHP
  3. لتجنب الكشف عن شفرة المصدر على بيئات الاستضافة المشتركة
  4. ليتم تمكينها بميزات لغة C ++ واستخدام الأطر مثل QT C ++ و Poco

حتى الآن وجدت:

http://sourceforge.net/projects/binaryphp.

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

يرجى مشاركة أفكارك وأدواتك التي تعرفها. شكرا لكم مقدما!

تعديل:أنا أيضا بحاجة إلى إمكانية التشغيل عبر المنصة ومباراة جيدة ل $ والوظائف السكر الأساسية والواجهة.

تعديل:يرجى ملاحظة أن أدواتين المذكورة أعلاه تستخدم مناهج مختلفة. السابق يحتوي المكتب على مكتبات مدمجة لتحويل شفرة PHP الإجرائية وجعلها تعمل. يترجم الأخير (الكلمة عن طريق Word) من PHP إلى C ++.

هل كانت مفيدة؟

المحلول

قد يصبح هذا أيضا مثيرا للاهتمام في فترة قصيرة:

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

إنه ما يبقي Facebook على قيد الحياة؛) التكنولوجيا التي تترجم & compliles php إلى c ++ وستقوم بالذهاب مفتوح المصدر. أتوقع أن يتم اختبارها جيدا حقا.

نصائح أخرى

ربما لا أفعل ذلك تماما سياق السبب في أنك تعتقد أنك بحاجة إلى القيام بذلك، لكنني لا أعتقد أن الأسباب التي نشرتها هي مقنعة بشكل خاص.

  1. ليس العديد من تطبيقات الويب هي وحدة المعالجة المركزية، لذلك لا أعتقد أنك سوف تكون معجبا بالزيادة في الأداء. تجميعها إلى التعليمات البرمجية الأصلية لن تجعل I / O الخاص بك أو DB ينتظر أي أقصر. هناك طرق أفضل لتوسيع نطاق تطبيق ويب أكثر من الانتقال إلى C ++، ويشمل معظمها تقليل الوقت الذي ينتظره البرنامج النصي الخاص بك في انتظار البيانات من DB أو القرص (مثل Sharding DB أو نقل البيانات في ذاكرة التخزين المؤقت ل RAM).

  2. هل تبعيات المكتبات حقا الكثير من القضية؟ يتم تجميع العديد من المكتبات الأكثر شعبية مع PHP Core الآن، بالإضافة إلى أي منها مصنوعات إضافية بشكل عام للتثبيت. بمجرد أن تكون لديك "م، لا تلمس"، لذلك لست متأكدا من السبب في أن هذا سبب مقنع بشكل خاص للانتقال إلى C ++.

  3. هذا هو في الواقع سبب سيء للغاية للانتقال إلى C ++. ستتيح لك معظم بيئات الاستضافة المشتركة تشغيل البرامج النصية في بيئة PHP، ولكن عددا قليلا جدا من لا شيء (ما لم تكن تبحث في VPS) سوف تتيح لك تشغيل ثنائي تعسفي مثل سيكون لديك تطبيق C ++. هناك طرق أفضل للسيطرة على قابلية القراءة من المصدر في البيئات المشتركة، مثل استخدام أذونات الملف بشكل صحيح. إذا كنت قلقا بشأن العملاء الذين يسرقون رمز PHP الخاص بك، جيدا، سيئا للغاية. يمكنك محاولة التبويع كل شيء تريده، ولكن من غير المجدي عموما في نهاية اليوم.

  4. ما هي ميزات C ++ الخاصة التي تحتاجها بشدة حتى لا تقدم PHP؟ أن نكون صادقين، فكرت فكرةك المبرمجة الخاصة بك في فب الخاص بك مع مؤشرات وتخصيص الذاكرة يخيفوا مني. هناك أطر جيدة جدا متوفرة ل PHP، وأنا أقترح عليك استنفادها بالكامل جميع هذه الخيارات قبل أن تتحول إلى تغيير لغة قاعدة التعليمات البرمجية بأكملها فقط للحصول على بعض الميزات التي تريدها في إطار معين.

  5. لقد ذكرت التوافق عبر النظام الأساسي في تعليقك ... PHP سيكون بصراحة جعل هذا أسهل من C ++ هو. يعد تطبيق PHP موحدا نسبيا عبر المنصات (باستثناء عدد قليل من الوظائف المنخفضة المستوى) في حين أن تكون من المحتمل أن تستخدم مكالمات محورية ونظام مختلفة في C ++.

بعد الكثير من الأبحاث، وجدت http://www.phpcompiler.org/doc/maketea.pdf. و http://rosecompiler.org/rose_tutorial/roose-0.9.4a-Tutorial.pdf. وبعد نظرا لأن شفرة مصدر PHP يمكن تحليلها ثم تم تتبعها إلى XML، فإن تحويله إلى C ++ هو مجرد مسألة XSLT. علاوة على ذلك، يدعم PhpCompiler أيضا الإضافات وتحويلات مختلفة من التعليمات البرمجية المصدر (بناء على تحويلات AST). أعتقد أنه ينبغي أن يكون كافيا الآن.

بعض المراجع الإضافية:

  1. http://www.phpcompiler.org.
  2. http://www.phpcompiler.org/doc/latest/devintro.html.
  3. http://rosecompiler.org.
  4. http://rosecompiler.org/rose_usermanual/roose-usermanual.pdf.

شكرا للجميع للمشاركة في المناقشة!

يفتح Facebook Hiphop لفترة من الوقت الآن:https://github.com/facebook/hiphop-php/

1-3 يمكن أن يتحقق من قبل مترجم zend

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

4 هو غريب بعض الشيء، لأنه ليس QT C ++ إطار سطح المكتب UI؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top