السبت , يوليو 4 2020
الرئيسية / تدوينات برمجية / دروس PHP / 5 أشياء يجب ان تعرفها عن PHP

5 أشياء يجب ان تعرفها عن PHP

في الحقيقة أنا من عشاق لغة PHP و حتى ان عالم الأنترنت متشبع من تطبيقات PHP بحيث لو نظرنا الى الانترنت لنجد أن بين كل ٥ مواقع على الانترنت هناك موقعين على الاقل يعملون بـ PHP رغم كثرة الإنقادات على اللغة على انها لغة غير مصممة بشكل جيد كما جاء في هذ االسؤال (مرفق١) ولكن تبقى هذه اللغة المسطيرة تقريبا بنسبة ٦٥٪ على المواقع في الانترنت ربما النسبة تقل او تزيد هذا فقط من خلال تصوري ليس إلا , بطبيعة الحال لغة PHP لغة جميلة و يحبها المطوّرين لسهولة تعلمها و أيضاً لا تحتاج الى شهادة بكلاريوس لتكون خبير بها او لتجد عملاً كـ مطور تطبيقات انترنت

يكفيك ان تدرس هذه اللغة السهله , هناك تناقضات كثيرة فيما يخص هذه اللغة هل هي مصممة  بشكل جداً قوي يضاهي باقي اللغات ان تفتقر بعض الاشياء . في هذه التدونية ان شاء الله سوف اناقش و إياكم خمسة محاور يجب ان تعرفها في لغة PHP  والتي من شأنها تجعل لغة PHP لغة جميلة و عملية اكثر ,

أولاً : Array dereferencing

هذا اختصار جميل جداً و أعجبني تم اضافته في PHP 5.4  هذا الاختصار يمكنك من الوصول الى محتويات المصفوفة بدون إنشاء متغير مؤقت , على سبيل المثال سابقا عندما ترغب في الحصول على معلومات صورة معينه مثلا الحصول على طولها و عرضها لوضعها في تاج <img> كنت تستخدم الدالة getimagesize() وتمرر لها مكان الصورة وسوف تعود هذه الدالة بـ ٧ مفاتيح تحتوي على معلومات الصورة وبعد ذلك تستخدم هذه الطريقة

 

بحيث تقوم بتخزين المصفوفة في متغير مؤقت لإستخدامه لاحقهاٌ و الحصول على الحجم الحقيقي للصورة , هذا كان في السابق أما الآن لدينا اختصار رائع تستطيع ان تفعلها هكذا

هل رأيت هذه الجمالية في الكود ! حقاً أعجبني . بالطبع تستطيع استخدام هذه الطريقة في مختلف الجوانب مثل date , simplexml والخ من دوال تعود بمصفوفات .

ثانيا : Password hashing 

بالطبع اذا كنت من المبرمجين المهتمين بالحماية , سابقاً كنت تستخدم دوال لتشفير كلمات المرور مثل md5 sha1 والخ من دوال اخرى بالطبع هذه الدوال جميلة و سريعة ولكن كان لها عيب واحد , وهو انها عرضة لهجمات التخمين ! او مايسمى بـ susceptible to brute force attacks , عندما تم إصدار PHP 5.5 تم إصدار API مخصص لـ hashing password  تستطيع الوصول له من خلال هذا الرابط The password hashing API  في الحقيقة أعجبني كثيراً , حيث انهُ اتى بحلول من مطورين PHP قد تكون عملية جداً و جميلة , من هذه الحلول وجول دالة وظيفتها تشفير كلمة السر وهي الدالة password_hash()  هذه الدالة تقوم بعملية التشفير من خلال خوارزمية معينه , تستقبل الدالة بارمترين أساسيات وهما كلمة السر المراد تشفيرها و رمز ثابت من خلاله يتم توليد HASH طبعاً هذا يمنع عملية التخمين لأن كما قرأت في دليل اللغة ان هذه الخوارزمية معقدة جداً في الحقيقة الى هذه اللحظة التي اكتب فيها التدوينة هذا التشفير دعوم من قبل PASSWORD_DEFAULT و أيضاً PASSWORD_BCRYPT الاثنين لهم نفس الناتج , ابحث عنهم وسوف تجد مايعجبك ان شاء الله . 🙂 , أما طريقة استخدامها فهي كالتالي

 

طبعاً كما اسلفت سابقاً PASSWORD_DEFAULT و PASSWORD_BCRYPT هما عبارة عن constant بمعنى اخر يجب ان تكتبهم كما هما , الاثنين لهم خوارزميات مختلفة ولكن قوة التشفير متوافقة او متوازية ان صح التعبير , لذلك استخدم اي واحد فيهم لا تفرق منطقياً اذا كنت تريد تخزين ناتج التشفير في قاعدة البيانات يجب ان يكون طول الحقل على الأقل 60  ولكن كما جاء في دليل استخدام اللغة يفضل ان يكون 255  وذلك احتياطا لمعادلة التشفير او الخوارزمية عن الزيادة .

حسناً ماذا لو أردنا أن نتأكد من قيمتين مشفرات بهذا التشفير ؟ بسيطة جداً سوف تكون كالتالي :

 

طبعاً storepwd يحمل القيمة في قاعدة البيانات او اسم الحقل بعد الاستعلام , اما inputPOST يحمل القيمة المرسلة من اليوزر .

اذا كنت لا تستخدم اصدار  PHP 5.5 يمكنك الحصول على هذا النوع من التشفير من خلال المكتبة التالية

password_compat

ولكن انا شخصياً افضل ان تقوم بالترقية .

ثالثا : SLP
أنا متأكد انك تسال عن معنى SLP , لا تجهد نفسك بالتفكير معناها Standard PHP Library  في الحقيقة ان SLP متوفر منذ 2004 ولكن كان يعتبر مثل السر في PHP في الحقيقة هذا الشيء يستخدم لفلترة البيانات في اللغة او فلترة اجزاء معينة مثل json , xml والخ , باستخدام اكواد بسيطة , سابقاً كان يسند الى مكتبة خارجية اما الآن اصبح من نواة PHP 5 اي اصبح من ضمن Core

رابعاً : PSR-4 autoloader

هذا المفهوم اختصار لعبارة  PHP Standard Recommendation حيث ظهر في فريم وورك PHP Framework Interoperability Group (PHP-FIG) ودعم من خلال الكثير من اطارات العمل مثل laravel وغيرها ولكن بالتأكيد لم يكن رسمياً من PHP حيث انها فكرة استخدمها المطورين هذا المفهوم ان القانون يرتكز في كيفية تسمية ملفات الكلاسات و مجالات namespace تستطيع استخدام هذا لكلاس عندما تتعامل مع مختلف الكلاسات و مختلف المجلدات حيث يوفر لك مراجعة الاخطاء و يقلل حدوثها , ابحث عنه انهُ جميل .

خامساً : Composer

أتذكر عندما أمبرمج تطبيقاً لهواتف IOS كنت استخدم مكتبة pod لتختصر عليي سحب الحزم , هذا المفهوم يعتمد على , أن هناك مطورين آخرين قاموا بتطوير مكتبات جميلة يمكنك استخدامها في مشاريعك من خلال سحبها للمشروع , هذا المشروع موجود سابقاً في مجالات غير PHP  ولكن الآن الحمدلله تم اضافته وهذه اضافة جميلة جداً اعجبتني هذه الفكرة تسمى dependency manager تستطيع البحث عن طريقة استخدامها انا فالحقيقة استخدمها مع اطار العمل Laravel .

 

المرفقات

مرفق (١) Is PHP a badly designed programming language?

الخاتمة

الحمدلله رب العالمين انتهيت من هذه التدوينة اتمنى لكم الاستفادة و اتمنى فعلاً ان تحطوا بعين الاعتبار النقاط التي ذكرتها لانها مهمه جداً , تحياتي لكم أخيكم X2coder .

عن كودر

[ كـودر ] مهندس برمجة , أحب التقنية , مُطوّر انظمة و تطبيقات , مهووس بالتقنية وكل جديد في عالم الإنترنت , أحب الكتابة عن التقنية عندما تسمح لي الفرصة .

شاهد أيضاً

ارسال الملفات باستخدام cURL في لغة PHP

في هذه التدوينة سوف نتعرف على طريقة استخدام مكتبة CURL لإرسال ملف باستخدام لغة PHP

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

*