اقرأ النسخة الإنجليزية من هذه الوثيقة: الإنجليزية
اقرأ هذه الوثيقة بلغات أخرى: الإنجليزية، الصينية المبسطة .
مع الصعود القوي لـ Go و NodeJS ، تآكلت حصة PHP في السوق تدريجيًا، لكن PHP لا تزال ملتزمة رسميًا بمجال برمجة Web . تصبح بعض الأشياء أكثر صعوبة في التمسك بها كلما حاولت التمسك بها. يعتمد polarphp على الميزات ذات الصلة بـ NodeJS و Go لإعادة تغليف zendVM ، وإزالة بعض ميزات PHP القديمة المهجورة وسمات Web القوية، وتنفيذ مجموعة جديدة من إطار عمل وقت التشغيل libpdk لبناء لغة PHP لتصبح لغة برمجة نصية عالمية حقًا، مما يتيح PHP مع برمجة غير متزامنة، وcoroutines، وخيوط، ودعم unicode مدمج، IO للملف القياسي وميزات أخرى، مما يسمح لمبرمجي PHP ليس فقط بتنفيذ تطبيقات web ، ولكن أيضًا بمواجهة التطبيقات الحقيقية من جانب الخادم بهدوء. polarphp ليست لغة جديدة، ولكنها مترجم ووقت تشغيل جديد للغة PHP بالإضافة إلى اللغة الرسمية.
PHP وإزالة ميزات اللغة القديمة unicode المضمنة نظراً لمحدودية موارد التطوير، تم وضع خطة التطوير مبدئياً على النحو التالي:
PHP الخاص بكlit لمشروع زرع LLVMpolarphp باستخدام إطار اختبار الانحدار phplitpolarvm وأكمل البنية التحتية للجهاز الظاهريpolarphp AST إلى مجموعة التعليمات، ولا تحدد طبقة IR في الوقت الحالي.phplit لاختبار جميع الوحدات المجمعة بدءًا من بنية اللغة وحتى مجموعة التعليماتGC المدمج في PHPPHP القياسية libpdk (جزء cpp )polarphp بأقل عدد من الخطوات.PHP قياسية كاملة الوظائف (يتم تنفيذها باستخدام كود PHP مع الدعم الأساسي لـ libpdk ) polarphp git clone https://github.com/polarphp/polarphp.git
cd polarphp
git submodule init
git submodule update
git checkout v0.0.1-alpha
./devtools/scripts/build_polarphp.sh
في هذا الوقت، يبدأ البرنامج النصي في تجميع الصور ذات الصلة، الأمر الذي يستغرق وقتًا طويلاً، يرجى الانتظار بصبر. انتظر حتى يكتمل التجميع وتقوم بتشغيل:
docker images
في هذا الوقت، يرجى التأكد من وجود الصورة التالية في الإخراج:
إذا لم تكن هناك مشكلة، نبدأ باختبار ما إذا كان polarphp يعمل بشكل طبيعي في المرآة.
docker run --rm -it polarphp_debug
بعد الدخول إلى الحاوية، أدخل برنامج سطر أوامر polarphp الخاص بنا
polar --version
إذا حصلت على الإخراج التالي:
polarphp 0.0.1-git (built: 2019-01-27 12:22)
Copyright (c) 2016-2018 The polarphp foundation (https://polar.foundation)
Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies
تهانينا، لقد نجحت في تجميع بيئة تشغيل polarphp . عند تجميع الصورة، قمنا بوضع برنامج نصي للاختبار في المجلد ~/temp/
if ( function_exists ( ' phpretrieve_version_str ' )) {
echo " version str: " . php retrieve_version_str () . "n" ;
}
if ( function_exists ( ' phpretrieve_major_version ' )) {
echo " major version: " . php retrieve_major_version () . "n" ;
}
if ( function_exists ( ' phpretrieve_minor_version ' )) {
echo " minor version: " . php retrieve_minor_version () . "n" ;
}
if ( function_exists ( ' phpretrieve_patch_version ' )) {
echo " patch version: " . php retrieve_patch_version () . "n" ;
}يمكنك تشغيل الأمر التالي:
polar ~/temp/main.php
إذا لم تكن هناك أخطاء، سوف تحصل على الإخراج التالي:
version str: polarphp 0.0.1-git
major version: 0
minor version: 0
patch version: 1
شكرًا لك على اختبار polarphp . إذا كانت لديك أي أسئلة، فيرجى مسح رمز الاستجابة السريعة WeChat أدناه للانضمام إلى التواصل الجماعي.
في الوقت الحالي، نستهدف المستخدمين في الصين فقط، لذلك نستخدم مجموعات WeChat و QQ للتواصل، ويمكن للطلاب المهتمين مسح الرمز ضوئيًا للانضمام:
ملاحظة: يرجى الإشارة إلى غرض زيارتك عند مسح رمز QR، على سبيل المثال: تعلم هواة
polarphpأوPHP
تجري polarphp تطويرًا ثانويًا بالإضافة إلى مشروع لغة php وتلتزم باتفاقية مشروع php لمزيد من التفاصيل، يرجى الاطلاع على: اتفاقية المشروع
======================================================