PHP 5.6 New Features بالعربي

Standard

في حاجات كتير بتتغير وبتتطور بشكل كبير وبصورة سريعة في الـ PHP خصوصاً في اخرنسختين 5.6 و 5.5 ودا راجع للتطور الكبير اللي بيحصل في مجال الـ Web عمتاً … وعشان كده حبيت اوضح شوية حاجات أتغيرت وأتطورت ( المهمة بالنسبالي على الأقل ) في اخر نسختين.

PHP 5.6 New Features

Expressions in Constants

عشان تعمل Constant في PHP عندك طريقتين define() أو const … الأخيرة اسرع لأنها بتعرف الـ Constant في الـ Compile Time عكس define() اللي بتعرفه في الـ Runtime بس مشكلة const أن مينفعش تعرفه بـ dynamic value ولا تعرف تعمل اي نوع من أنواع الـ Operations على الـ value وانت بتعرف الـ Constant وده بالظبط اللي اتعالج في PHP 5.6 وتقدر دلوقتي تعمل Reference لـ Constant تاني وتعمل Basic Operations عادي.


Arguments Unpacking, splat operator

صعب شرحها بكلام عربي … هحاول والكود هيوضح اكتر … قبل PHP 5.6 عشان تجيب الـ Arguments اللي اتبعتت لـ function كان ممكن تجيهم بـ func_get_args() … بس مكنتش تقدر تجيب جزىء معين بس … لازم تجيب كله وعشان كده اتعمل الـ splat operator اللي بيخليك تخصص من أول argument معين إن اي حاجة تتبعت بعديه يبقة جوه الـ Array اللي عرفتها بالأسم اللي انت عاوزله … من غير ما تستخدم func_get_args() خالص.


Namespace functions importing

عشان تستخم function في Namespace غير اللي تعرفه فيه كنت لازم تعمل import للـ Namespace بالكامل اللي فيه الـ function دي ومينفعش تعمل Import للـ function بس … ودا اللي اتعالج في PHP 5.6 … بالنسبة للـ functions و الـ Constants

 


حاجات تانية كويسة اتضافت واتظبطت

  • الـ Performance بقة احسن بكتير جدا من اول PHP 5.4 وفي 5.6 على أتحسن اكتر بشكل ملحوظ.
  • قبل كده PHP 5.6 مكنتش بتسمح يأي File Uploading اكبر من 2 جيجا … دلوقتي تقدر.
  • POST Data بقت بتستهلك memory اقل مرتين تقريباً. وتقدر تقرا من file_get_contents("php://input") اكتر من مرة مش مرة واحدة بس.
  • PHPDBG Debugger بقة موجود built-in … ساعات بيفيد
  • للتفاصيل اكتر عن الجديد PHP 5.6 new features Official List

PHP 5.5 New Features

Generators

في الاول لو مش عارف يعني ايه Generators هو مفهوم صعب شرحه في شكل كلمات فا اعتقد ان مثال هو اكتر حاجة تشرحه فا هنفترض إني محتاج اعمل loop على Array عبارة عن ارقام متسلسلة عشان استخدمها لأي سبب، قبل PHP 5.5 كنا مضطرين نستخم range() عشان تولد الارقام ونعمل loop عليها … مشكلة الطريقة دي انها بتستهلك Memory كتر خصوصاً لو الارقام كتير زي مليون رقم مثلاً وكده هيتحطوا في Array وهيبقة في variable مسحته كبيرة جدا … عشان كده اتضاف Generators عشان الموضوع ده يتحل عن طريق yeild keyword … الكود اللي جاي هيوضح الدنيا أكتر


Password hashing

من الحاجات المهمة جدا ان ال passwords لازم تبقة encrypted ومن ضمن الـ Hashing algorithms اللي بينصح بيها هي bcrypt ومكنتش مدعمه وكان لازم نستخدم external library زي phpass مثلا … من اول PHP 5.5 بقت موجودة built-in وكمان الـ API اللي معمولة بتدعم كذا algorithm وممكن تضيف الـ algorithm اللي انت عاوزها.


Finally keyword

من زمان و finally keyword كانت ناقصة في PHP … أخيراً اتضافت في PHP 5.5 … اللي اشتغل لغات تانية هيعرف قيمة البتاعة دي اللي كانت مبهدلة الدنيا وكانت بتخلي الواحد يلف حولين نفسه عشان يشوف حل … اعتقد ان عدم وجدها في الاول ساعد الواحد على انه يبتكر حلول بس برده وجودها بيريح ويخلي الواحد يركز على الـ logic اكتر … المهم المثال ده هيوضح المرونة اللي بتوفرها


Array and String Literal Dereferencing

شكلها كده حاجة مجعلصة ومعقدة بس هي تفهة جدا واللي بيشتغل javascript هيعجبه الحتة دي قوي … الفكرة انك تقدر Access اي String or Array على طول من غير تعمله Assign لـ variable … المثال هيوضح المقصود

Leave a Reply

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