نصائح PHP الجزء الأول
بسم الله الرحمن الرحيم،
سلسلة من النصائح لمبرمجي PHP لا أعلم كم جزء ولكن أعدكم بأنها ستكون نصائح مفيدة!
1- طباعة مصفوفة للتحقق من عناصرها عن طريق تعليمة print_r:
$pages = array('Homepage', 'About', 'Contact');
//dump array
print("<pre>");
print_r($pages);
print("</pre>\n");
2- استعمل علامة الاقتباس المفردة ‘ بدل المزدوجة ” فهي اسرع، الفرق بينهم أن المفردة لاتعالج المتحولات التي تضعها بداخلها بينما المزدوجة تقوم بذلك، استخدام لايقتصر على الطباعة بل تستخدم مع المصفوفات والكائنات، شاهد المثال لتتضح الصورة:
$name = 'PHP Tips'; echo 'Post name: $name'; // shows: 'Post name: $name' will not handle variables echo '<br/>'; echo 'Post name: ' . $name; // shows: 'Post name: PHP Tips' you have to write $name outside single quotes domain echo '<br/>'; echo "Post name: $name"; // shows: 'Post name: PHP Tips' will handle variables inside double quotes domain, but it's slower
3- عند طباعة عنصر من مصفوفة عن طريق رقم موقعه، ضع الرقم داخل علامة اقتباس فهي أسرع:
$pages = array('Homepage', 'About', 'Contact');
echo $pages['0']; // Faster
echo '<br/>';
echo $pages[0]; // Slower
4- هل تعلم أن سكربتات PHP يتم ترجمتهم في كل مرة يطلب مستخدم الصفحة؟ إذا كنت تعاني من مشاكل الأداء فاستخدم الكاش لتسريع الموقع بنسبة بين 30% إلى 100% فعند استعمال الكاش يتم حفظ نسخ مترجمة من الصفحات وتقديمها للزوار.
5- استعمال unset لتدمير المتحولات بعد استعمالها أمر جيد لذاكرة المخدم خاصة المتحولات الكبيرة مثل المصفوفات والكائنات.
6- أغلق الاتصال مع قاعدة البيانات بعد الانتهاء من جلب المعلومات، وأيضاً اغلق socket مع الملفات بعد الانتهاء من القراءة أو الكتابة عليهم.












نصائح رائعة أعجبتني كثيراً واستفدت من بعضها
شكراً لك أيها مبدع خالد ومتابع باقي الأجزاء
ياهلا بك أستاذنا عبد الملك
شكرا على النصائح
لدي سؤال ماذا تقصد بالكاش في النصيحة 4
الكاش تقنية لحفظ الصفحات بشكل مؤقت (مثلاً أسبوع) تستعمل في المواقع التي لديها ضغط زوار كبير لتخفيف الحمل على المخدم، فصفحات الكاش تكون مترجمة ولاتحتاج سوى عرضها للمستخدم أي لاتحتاج لترجمة الأكواد فيها مثل الصفحات العادية (بدون كاش).
للمزيد إقرأ هذه المقالة
بوركت يا أخي
نصائح رائعة لكن ما لم أفهمه حقاً هو لم:
أتوقع أن التفسير الوحيد لها أن php ليس لها مصفوفات بمفاتيح رقمية! أليس كذلك؟ بل كلها نصية بشكل أو بآخر.
“6- أغلق الاتصال مع قاعدة البيانات بعد الانتهاء من جلب المعلومات، وأيضاً اغلق socket مع الملفات بعد الانتهاء من القراءة أو الكتابة عليهم.”
لماذا؟
socket أعتقد أنها تترجم مقبس
@عمر: بشكل افتراضي إذا لم تزود المصفوفة باسم للموقع ستكون بشكل رقمي
@الصادق: نعم، المهم إغلاق الاتصال بتعليمة mysql_close
السلام عليكم ورحمة الله وبركاته..
فكرة جيدة منك أخي الكريم خالد بأن تتحفنا بين الفينة والأخرى ببعض من دررك الثمينة ^_^
جزاك الله عنا كل خير أخي..
مني لك أرق تحية..
أهلاً بأستاذنا، شكراً لك على الكلمات الطيبة
موضوع جميل
شكرا على المعلومات.
هناك كذالك var_dump تقوم عمل print_r مع اعطاء نوعية كل متغير او كائن داخل المصفوفة و لمعرفة الكود المستعمل الذي ثم به انشاء متغير ما نستعمل var_export
دمتم بود والسلام.
بارك الله فيك على المعلومات القيمة
شكراً لك على هذه النصائح
سأكون من المتابعين
يا أهلاً بك، أرى أنك أنشأت نظامك التدويني الخاص، شيء جميل
السلام عليكم
أولا لمن يهتم بمعرفة تفاصيل أكثر حول الكاش فهذا مقال جميل بالأمثلة
درس : نظام تخزين المخرجات ( Cache Output ) بالشرح المفصل والامثلة العملية
ثانيا أخي خالد لك عندي كام سؤال بخصوص تحسين معدل الأداء، تراودني كلما كتبت كود جديد
1-هل يجب استخدام unset داخل الدوال؟ بمعنى ألا يتم التخلص من المتغيرات المستخدمة داخل الدوال بمجرد الخروج من الدالة؟
2-عادة ما تحتوي الصفحة الواحدة على أكثر من استعلام SQL فهل انهي الاتصال بقاعدة البيانات بعد كل استعلام وأعيد الاتصال من جديد مع كل استعلام تالي؟
أم أكتفى بانهاء الاتصال مرة واحدة فى نهايةالصفحة؟
وعليكم السلام ورحمة الله وبركاته
ماشاء الله عليك مقالة ممتعة ومفيدة جداً
1- مفيدة في التوابع الكبيرة ولكن ليس لدرجة كبيرة بسبب وجود garbage collector في لغة PHP
2- الأفضل عندها وضع كود الاتصال في صنف (كلاس) لوحده والتعامل معه بدل كتابته عدة مرات ونعم اغلق الاتصال في كل مرة.
السلام عليكم
جميل الفكرة … تابع المزيد
عمرو فهمي : النسبة لعمل unset لكل متغير داخل الدالة فأكيد لا ! لأن الدوالت تمسح متغيرتها بمجرد انهاء وظائفها
اما بالنسبة لأغلاق الأتصال بقاعدة البيانات فإن بكل بساطة بمجرد عمل أتصل فهذا يفتح لك أتصال من جهة ال mysql مثلاً او قاعدة البيانات التي تستخدمها وينتظر منك الاوامر ولا يغلقها بعد ما تنهي برنامجك وبالتالي يظل الأتصال مفتوح ومنتظر أوامرك له حتى بعد أنتهاء تنفيز متطلباتك بها، وتغلق بعد الوقت المحدد بها من أعدادات قاعدة البيانات إن لم تتفاعل معاها
أما عن فتح واغلاق الأتصال أكثر من مرة في نفس الصفحة ففي كل مرة يتم عمل معالجة لما تطلب وعند الأغلاق هذه معالجة أخرى فلما تفتح وتغلق الأتصال أكثر من مرة ؟
أعتقد كائن لقاعد البيانات ويتم التعالمل معه وعمل descractor يتم فيه أغلاق الأتصال أفضل بكثير للتعامل معه
إذا كان اتصالك بقاعدة البيانات non-persistent فلايهم إغلاق الاتصال أما إذا كان persistent فمن الضروري إغلاقه منعاً للمشاكل.
الله يجازيكم خير على الإفادة
حاااااااااااااازم.. كيفك يا راجل
وحشني كتير يا أخي
فى انتظار لقائك فى ال ICT باذن الله
وشكرا على التوضيح و الافادة
[...] هل قرأت الجزء الأول من نصائح php؟ 7- ضع حد الحلقات التكرارية (for) قبل الدخول بالحلقة ولاتحسبها داخلها، لاحظ الفرق بين الحلقة الأولى والثانية: [...]
أنت رجل رائع =)
شكراً لك