JPHP - تطبيق PHP
JPHP هو تطبيق جديد لـ PHP يستخدم Java VM. وهو يدعم العديد من ميزات لغة PHP (7.1+).
كيف يعمل؟ JPHP هو مترجم مثل javac
، فهو يجمع مصادر php إلى كود JVM الفرعي ومن ثم يمكنه تنفيذ النتيجة على Java VM.
- الموقع الرسمي: jphp.develnext.org
- رهيبة جي بي إتش بي
في الإنتاج
نقوم بتطوير بيئة تطوير متكاملة (IDE) جديدة للمبتدئين مثل Game Maker
أو Scirra Construct
. إنه يعتمد على JPHP وJavaFX وJava 8 وGradle ويسمح بإنشاء ألعاب وتطبيقات سطح المكتب لأنظمة Linux وWindows وMac (وربما Android ومنصات أخرى في المستقبل). اسم المشروع هو DevelNext
(https://github.com/jphp-group/develnext-ide)، والحالة الحالية للمشروع وإصداره هو BETA. لم تتم ترجمة المشروع بعد إلى اللغة الإنجليزية.
الأهداف
JPHP ليس بديلاً لمحرك Zend PHP أو Facebook HHVM. نحن لا نخطط لتنفيذ مكتبات وقت التشغيل zend (مثل Curl وPRCE وما إلى ذلك) لـ JPHP.
بدأ مشروعنا في أكتوبر 2013. وكانت هناك عدة أسباب لذلك:
- القدرة على استخدام مكتبات جافا في PHP (الامتدادات الخاصة + أخرى)
- استبدال مكتبة وقت التشغيل القبيحة لـ Zend PHP بمكتبة وقت تشغيل أفضل.
- استخدام لغة PHP ليس فقط على الويب
- تعدد مؤشرات الترابط كما هو الحال في Java وC#.
- سلاسل Unicode (الدعم الكامل لـ UTF-8، UTF-16).
- إنشاء تطبيقات GUI Android وDesktop على لغة PHP.
سمات
- PHP 7.1+ (والعديد من ميزات اللغة من PHP 7.2، 7.3، 7.4).
- JIT (أسرع بنحو 2.5 مرة في PHP 5.6، وأسرع بنحو 1.1 مرة في PHP 7.0، وأبطأ بنسبة 13% تقريبًا من PHP 7.4، البدلاء).
- استخدام مكتبات وفئات جافا في كود PHP.
- Unicode للسلاسل (UTF-16، كما هو الحال في Java)
- الخيوط والمقابس وهندسة البيئة (مثل كائنات وضع الحماية في ملحق runkit zend).
- واجهة المستخدم الرسومية (JavaFX أو SWT)
- نظام ذاكرة التخزين المؤقت المضمن للفئات والوظائف
- إعادة التحميل السريع الاختياري للفئات والوظائف
- القدرة على الاستخدام على نظام التشغيل Android : jphp-android
ما الذي يدعمه JPHP من PHP 7.2؟
- كافة الميزات باستثناء RFC: توسيع نوع المعلمة
ما الذي يدعمه JPHP من PHP 7.3؟
- جميع الميزات باستثناء RFC: تركيبات Heredoc وNowdoc المرنة
ما الذي يدعمه JPHP من PHP 7.4؟
- الخصائص المكتوبة 2.0 (المراجع غير مدعومة جزئيًا)
- مراجع ضعيفة
- وظائف السهم 2.0 (+ بناء جملة متعدد الأسطر)
- السماح بطرح الاستثناءات من __toString()
- عامل تعيين الدمج الفارغ
- numeric_literal_separator
- عامل الانتشار في تعبير الصفيف
الامتدادات الخاصة
- المكتبة القياسية - المكتبة القياسية الخاصة بوقت التشغيل
- خادم Http (+مقابس الويب +مؤشرات متعددة)
- واجهة المستخدم الرسومية (JavaFX أو SWT)
- جيت (استنادًا إلى JGit)
- JSoup - لتحليل HTML بأسلوب jQuery.
- SQL (يدعم MySQL، PostgreSQL، SQLite، Firebird).
- SSH - للعمل مع بروتوكول ssh.
- Yaml - لتحليل وتنسيق yaml.
- الضغط - للعمل مع أرشيفات tar وgz وbz2 وlz4 وzip.
- HttpClient - عميل http مع الوعود.
- SemVer - لتحليل الإصدارات في معيار SemVer.
- البريد - لإرسال رسائل البريد الإلكتروني عبر خوادم SMTP.
- MongoDB - برنامج تشغيل Mongo DB 3.0+.
التوثيق
- يمكنك العثور على أحدث وثائق واجهة برمجة التطبيقات هنا: jphp-runtime/api-docs
- ويكي هنا: اقرأ
البدء (مرحبا بالعالم)
- تثبيت مدير الحزم jphp (jppm)، كيفية التثبيت.
- بدء مشروع جديد (حزمة jppm) بالقيم الافتراضية:
- تشغيل في وحدة التحكم
jppm start
.
سترى Hello World
في وحدة التحكم الخاصة بك، وستكون مصادر هذا البرنامج في src/index.php
.
- (اختياري) لتحديث إصدار jphp لمشروعك القديم:
كيفية تشغيل المعايير؟
// via jphp
./gradlew bench
// via php
php -f bench/src/bench.php
بناء لقطة من المصادر
استخدم gradle install
لإنشاء وتثبيت وحدات ومكتبات jphp في مستودع mavel المحلي. بعد ذلك، يمكنك استخدام jphp في مشاريعك باعتباره تابعًا مخضرمًا.
org.develnext.jphp:jphp-<module>:<version>-SNAPSHOT