What’s New in PHP 7: Things You Should Know بالعربي

Standard

PHP 7.0 على الأبواب خلاص ومخطط نزول النسخة النهائية Stable Release في شهر نوفمبر 2015 ومعاه بقة شوية حاجات جامدة جدا وهتفرق بشكل ملحوظ في الشغل وفي المقال دي هحاول أجمع الحاجات المهمة اللي محتاج تعرفها.

هو مش أخر حاجة PHP 5.6 ! نطوا لـ 7 مرة واحدة كده ؟!!!

دي أول حاجة هتلاحظها إن أخر نسخة Stable شغالة هي 5.6 والنسخة الجديدة اللي هتنزل هي 7.0 !!! الحقيقة إن PHP 6.0 بقالها كذا سنة تحت التطوير وبسبب كمية الحاجات اللي إتضافت والتعديدلات الضخمة، طولت مدة التطوير ودا اللي خلى فريق التطوير يقرر ينط لـ 7.0 مرة واحدة … عديها وخلاص هي جت على مايكروسوفت يعني 😀

Windows 64-bit Support … أخيييييرا

يااااااااااااه أخيرا … من زمان وفي نسخة رسمي 64-bit للـ Unix-like Systems زي Linux و Mac OS وبعد طول إنتظار هيبقة في دعم رسمي وكامل لنسخة Windows 64-bit ودي كانت نقطة ضعف للناس اللي شغالة على سيرفرات Windows … كان في إجتهادات من ناس عملت Fork وطلعت نخسة 64-bit بس مكنتش Stable وتقدر تعتمد عليها قوي يعني … بس دي حلاوة الـ Open Source اتعمل كمية Contributions عشان الموضوع ده.

كل الـ Deprecated Functions and Extensions أتشالت خلاص

كان في كمية functions و Extensions متعلم عليهم أنهم بقت Deprecated وفي النسخة دي أتشالوا خلاص ولو انت مكنت واخد بالك من الحاجات دي وواخد في الإعتبار الـ Best Practices وكنت بتستخدم حاجات زي mysql extension مثلا يبقة لو عملت Upgrade هتلبس يا معلم وشغلك كله هيقف … دي لستة بالحاجات اللي اتشالت :
APIs, Extensions
deprecated functionalities

Big Performance Boost

فرق الـ Performance اللي حتى أتجرب على النسخ الـ Beta مبشرة جدا … حوالي 2 : 3 أضعاف السرعة ودا حتى في حاجات أسرع من HHVM اللي بيستخدمه الـ Facebook نفسه
PHP7 Performance

Zend Engine جديد

النسخ الحالية بتستخدم Zend Engine 2 إنما PHP 7.0 هيبقة شغال بـ Zend Engine 3 ودا بيتضمن تحسينات كبيرة في الـ Memory & Resources Management و الـ Object Models وحاجات تانية هتساعد في عمل Extensions بطريقة أفضل وبكفاءة أعلى.

Abstract Syntax Tree

هي طريقة جديدة في عملية الـ Compile بحيث تتيح Syntax جديد عن طريق انه مبيستناش الكود يعدي على الـ Parser عشان يطلع الـ Opcode منه إنما بيتعامل معاه مباشر وبيعمله Representation على طول .. ودا تغيير جذري مهم جدا.

Return Type Declarations

اللي بيشتغل بلغات Strong Typed هيعجبه الحتة دي … هي بتيح أنك تحدد ايه Data Type اللي بترجعها الـ Function بحيث لو انت عاوز اللي بيستخدم الكود بتاعك يلتزم بحاجات انت حاططتها عشان الدنيا تمشي مظبوط … انا عن نفسي مبحبش الطريقة دي بس في ناس كتير مفتقدة النقطة دي.

Combined Comparison Operator

الـ Operator “< =>” ده حلو جدا بيساعد على اختصار العمليات لإنه بيقارن بين رقمين ونتيحة الـ “Evaluation” بيرجه “1” أو “0” أو “-1” دا بيبقة نتيجة المقارنة زي ما في المثال ده:
PHP RFC: Combined Comparison “Spaceship” Operator

Combined Comparison "Spaceship" Operator

Null Coalesce Operator

اللي بيشتغل Javascript هيعجبه الحتة دي قوي لإنها موجودة في الـ Javascript ومفيدة جدا وهي عبارة عن انك بتقرا قيمة variable في احتمال انه مبيبقاش موجود وبتحطله Default Value لو هو مش متعرف او مش موجود ودي طبعا بتحصل كتير

Bind Closure on Call

دي طريقة عشان تنده على function متعرفة لواحدها وكإنها Method من Object أو كأنك بتحطها جوه الـ Scope بتاع الـ Object ودي عملية بتقال عليها Closure Binding

Shared Parent Class in Exception Handling

في النسخة الجديدة هيبقة في طريقة جديدة للـ Exception Handling وهي PHP RFC: Exceptions in the Engine وهو بإختصار بيقدم Base Class جديدة بإمكانيات أحسن تساعد في الـ Debugging والـ traceback. الحاجات القديمة موجود زي ما هية عشان الـ Applications الي معمولة على نسخة أقدم من 7.0 تشتغل من غير مشكلة.

Unicode Codepoint Escape Syntax

وهي طريقة عشان تكتب حروف اللغات الغير الإنجليزية بشكل الـ Unicode بتعها عشان تضمن أنها تبقة شغالة كويس من غير ما تشغل بالك بالـ Character Encoding بتاع الـ File اللي بتكتب فيه وده كمان لإن ممكن نفس الحرف يتكتب بكذا طريقة بالـ Unicode وده عن طريق Escape Character جديد اتضاف وهو “u\”

Uniform Variable Syntax

هي طريقة في كتابة الـ variables جديدة أتحطت مع القديمة عادي بتتيح مثلا أنك تعمل على Nested Static Methods Calls و Nested Functions Calls و ممكن تعمل Self-Executed Anonymous Function زي اللي موجودة في الـ Javascript بالظبط.

Anonymous Classes

زي ما فيه Anonymous Functions فيه برده Anonymous Class دي فايدتها زي فايدة الـ Anonymous Functions بالظبط … بتخليك تقدر تعمل Class ملهاش أسم عشان تباصيها كـ Parameter لـ Function مثلا. ده طبعا بإفتراض انك مش هتبقة محتاج الـ Class دي بعد كده في حتة تانية غير جوا الـ Function بس.

Group Use Declarations

هي عبارة عن إختصار لعملية الـ use اللي بتتعمل لحاجات في النفس الـ Namespace في سطر واحد بدل كذا سطر.

كل النقط دي موجود بالتفصيل في الـ RFC على موقع PHP نفسه لو حابب تعرف الحاجة بتفاصيل زيادة
PHP RFC: Implemented in PHP 7.0

2 thoughts on “What’s New in PHP 7: Things You Should Know بالعربي

Leave a Reply

Your email address will not be published. Required fields are marked *