نصائح php الجزء الثاني
هل قرأت الجزء الأول من نصائح php؟
7- ضع حد الحلقات التكرارية (for) قبل الدخول بالحلقة ولاتحسبها داخلها، لاحظ الفرق بين الحلقة الأولى والثانية:
$pages = array('Homepage', 'about', 'contact');
// Slow loop, each time will calculate the count of $pages
for ($i = 0; $i < count($pages); $i++) {
echo $pages[$i];
echo '<br/>';
}
// Faster loop
$pages_size = count($pages);
for ($i = 0; $i < $pages_size; $i++) {
echo $pages[$i];
echo '<br/>';
}
8- باستخدام الرمز @ قبل استدعاء التوابع أو الملفات تستطيع التخلص من الكثير من الأخطاء (أزل @ لترى أننا نتجاوز عناصر المصفوفة عند الطباعة (<=) وباستخدام @ نخفي رسالة التحذير):
$pages = array('Homepage', 'about', 'contact');
@printArray($pages);
function printArray($array) {
$array_count = count($array);
for ($i = 0; $i <= $array_count; $i++) {
echo $array[$i];
echo '<br/>';
}
}
9- لاتستخدم البرمجة الكائناتية دوماً، أحياناً تكون بنية بعض الأشياء بسيطة جداً فلاتتعب نفسك بوضعهم في صنف لأن الأصناف تكلف وقتاً ومعالجة أكثر.
10- استخدم التوابع بحكمة فلاتضع كل شيء في تابع بل ضع الأجزاء المكررة (التي تريد إعادة استخدامها) في توابع.
















واصل فنحن متابعين إبداعك أخوي خالد , فعلاً نصائحه بكل صراحه عظيمه ومفيده جداً بارك الله فيك
واستفدت من كل تلميحه أضفتها
اطيب تحياتي لك
شكرا اخي خالد على النصائح جعلها الله في ميزان حسناتك
عندي سؤال مارأيك في استعمال foreach او while بدل for ?
شكرا
@عبد الملك: يامرحباً لك.
@عادل: استخدام foreach مريح جداً في التعامل مع المصفوفات والأصناف.
السلام عليكم ورحمة الله تعالى وبركاته..
بارك الله فيك أخي الحبيب خالد..
بصراحة بودي لو أعرف كل التلميحات المهمة عن لغة PHP بحكم أنني أعتبر نفسي مبتدئا فيها، كما أتمنى لو يكون هناك تطبيق عملي في بناء أهم الأمور التي يحتاجها مطور الويب بلغة php (يبدو أنني أكثرت من الأماني ^_^)
كما لا تنس يا رجل أن تخبرنا بين الحين والحين عن بعض من أسرار الدروبال ^_^
(ثرثرت كثيرا حتى أترك لك تذكيرا في هذا التعليق، فإذا لم تعرف يوما ما تدون ارجع إلى ثرثرتي هذه ^_^)
جزاك الله عنا كل خير أخي..
موفق ومني لك أرق تحية..
وعليكم السلام ورحمة الله وبركاته
يوجد تلميحات كثيرة سأحاول المرور على معظمها بهذه النصائح المتفرقة، الدروبال لم يحن وقتها بعد فأمهلني بعض الوقت
ولكن ماذا تقصد بالضبط بتطبيق عملي؟
هههه ولاكتير ولاحاجة أسعدني جداً تعليقك
من أكبر عيوب البرمجة كائنية التوجه في php هو البطء في التنفيذ وأعتقد بأن هذه المشكلة ستختفي إما بسبب التطوير في لغة PHP أو بسبب التطور في السيرفرات وسرعات الإتصال نفسها.
كم حزنت عندما قرأت هذه المعلومة في أحد الكتب.
استفدت من النصيحة رقم 7
شكراً لك
تحياتي، نبيل
صحيح ولهذا السبب يجري تطوير هذه البنية بشكل كبير حالياً
شكراً خالد ^^،
، هل ترى أن المبرمجين الأحبة إقتنعوا بضرورتها وعمليتها؟؟
نحتاج دوماً لمثل هذه النصائح!
9، 10 .. كلامك فيهم خطير ^^. يعني أتوقع هذا ينفع بعد إقتناع الناس بضرورة إستخدام functions, oop عند الحاجة
مع نظافة الكود المكتوب هنا لكن توجد طريقة أخرى لكتابته وهي:
for ($i = 0, $pages_size = count($pages); $i < $pages_size; $i++) {
echo $pages[$i];
echo '';
}
“من كتاب php الرسمي
أول مرة اسمع بها! شكراً لك ولكن تبقى نفس الشيء واختلف مكان إسناد المتغير فقط. لكن مفيدة
البرمجة كائنية التوجه في PHP 5 أصبحت سريعه بفضل التطويرات العديده في محرك زند
وشكرأ أستاذ خالد
بارك الله فيك مدونة قيمة وسأتباعها عن كثب بإذن الله
شكرا استاذ خالد لاتحرمنا من جديدك.
بارك الله فيك اخي خالد
ولكني اخالفك في النقطة التاسعة
صحيح اخي قد تكون العبارات البرمجية في بعض الاحيان جدا تافه ولكنك اذا اردنا ان نكون مبرمجين محترفين فيجب ان نلتزم بمعاير كائنية التوجه وان نجعل من كل العبارات البرمجية التي تؤدي امر وان كانت صغير ضمن كائن مختص تنطوي تحته ليكون الكود نظيف ومؤسساتي .
اما بالنسبة لكونها تستهلك وقت نعم فانها تستهلك وقت ولكنه غير مهم ازاء الترتيب فلغة الجافا اذا قرات عنها يوما او قلبت منهاجها فانها لغة لاتقبل غير الفئات ولاتستطيع انجاز اي برنامج وان صغر حجمه الا ضمن فئة حتى ولو على حساب التاخير البسيط المعروف على برامج لغة الجافا ولكنها اصبحت من اللغات الاولى في عالم الكائنية واصبحت الخيار الامثل لكثير من شركات البرمجة .
ووما يجول في ذاكرتي الان هو اثناء تحضيري لامتحان زند الخاص بالبي اتش بي كان هناك سؤال يقول ما المهم في تطبيقك الاداء ام امكانية الصيانة – والمقصود بها ترتيب الكود بشكل جيد بحيث يسهل تتبع الاخطاء – فكانت اجابتي لخبرتي في عالم البرمجة هي امكانية الصيانة وكانت هي الاجابة الصحيححة !
ارايت اخي فيجب اولا اتباع اساليب البرمجة الصحيحة وضمنها يجب ان نفكر في الاداء
أولاً ساءني ماسمعت عن أنك تقدمت لشهادة الزيند، لن أتقدم لها طالما حييت أبداً والأسباب معروفة. (من ترك شيئاً لله عوضه الله خيراً منه).
لم أقل كل شيء ولكن أحياناً يكون هناك بنية صغيرة ببنائها داخل صنف ستعقد الأمور لماذا؟ لأنها عبارة عن عدة أسطر لاتتجاوز العشرة فهي لن تقدم ولن تؤخر بترتيب ونظافة الكود.
رائع أخي خالد..
تمنيت لو ذكرت السبب في النصيحة 7 وهو واضح بالنسبة لي إلا أني أحببت تأكيدك على صحة اعتقادي. كما أظن أنه سيفيد من لا يعرف.
والله روعة سجلني من اليوم كضيف دائم
أهلاً بالأستاذ الكبير وخبير php عبد العزيز العريج.
لأنه في كل مرة سيقوم بإعادة حساب طول المصفوفة وهذا أمر مكلف خاصة إذا كانت المصفوفة كبيرة. أما بإسناد القيمة قبل الدخول للحلقة فلن يقوم بذلك إلا عند الإسناد وبعدها سيقرأ قيمة المتحول فقط.
حللت أهلاً ونزلت سهلاً وشرف كبير لي أن تزور هذه المدونة المتواضعة.
أهلا بك أخي الكريم خالد من جديد..
عذرا على تأخري الكبير هذا عن الرد على سؤالك..
بالنسبة لما قصدته بتطبيق عملي وهو محاولة برمجة سكربت مثلا بكل مراحله تشرح كل مراحل تطبيقه ونحن معك يا بطل (طبعا تشرح لنا حسب الطريقة التي تتبعها أنت حتى نعرف سرك) ^_^
أعتقد أن مثل هذه التطبيقات العملية تجيب عن الكثير من الاستفسارات التي قد تبقى عالقة في أذهاننا بلا جواب أحيانا..
أكيد الأمر يحتاج إلى وقت وجهد، ولا يسعنا إلا أن نتمنى لك التوفيق والنجاح، وجزاك الله عنا كل خير..
إن شاء الله سأحاول جهدي
كعادتي دائما سوف أكلم ولكن متأخرا لكن التعليق يستحق نوعا ما
البرمجة الكائنية مع PHP5 ليس بطيئة وأيضا بالنظر الى عدد زوار التطبيقات فإن البرمجة الكائنية لن تؤثر كثيرا فى اداء التطبيق بشكل ملحوظ واعتقد انها سوف تظهر مع الاحمال المرتفعه جدا جدا وهذا نادرا مايتواجد
الجزء الثانى : استخدم @ او الاسم الرسمى لها ( The Error Controller ) غير محبب على الاطلاق , اولا لأنك فى بعض الاوقات سوف تحتاج الى عمل trace او تتبع للخطأ وقد يحدث ان تكون احد تلك @ فى الطريق ,ساعتها سوف تشد فى شعرك كما يقال ولكنى ارى ان الطريقة المثلى هى استخدام error_reporting بحيث تظهر كل الاخطاء (او تلغى Notice كما يفعل الكثيرون ) وتلغى ظهور الاخطاء نهائيا فى اماكن استخدام التطبيق النهائى productive
اما الباقى فأنا معك 100%
بارك الله فيك كلامك صحيح فأنا لااحبذها أيضاً ولكن ذكرتها من باب العلم بالشيء ولكن استخدام صنف خاص للأخطاء أو إلغاؤهم عن طريق متحول واحد بحيث تفعله عند التطوير وتوقفه عند الانتهاء من الموقع ورفعه.
السلام عليكم ورحمة الله وبركاته..
أشكرك اخي العزيز، خالد، وأشكر جميع المتواجدون هنا…
معلومات قيّمة، رغم ان معلوماتي في لغة الـPHP لم تتجاوز 5%
^_^
وبما أنني بفضل الله [رسام و شاعر و مصمم] إلا انني لا اريد ان اقف
عند حدٍ معيّن؟
وأحاول أن ارتقي بمعلوماتي ومهاراتي وأفكاري الى الافضل…
ولكن مجال التصميم، اخذ من وقتي الكثير.. لذلك!
لا أدري هل تعلم لغة البي اتش بي من خلال الانترنت، يفي بالغرض!
أم أنه لا بد من شروح مباشرة، وتطبيقات ايضاً…
أتمنى ان اجد التوجيه منكم
فطموحي أعلى من ذلك بكثير…
..
فائق احترامي وتقديري لكم
ودمتم بودّ الى الابدّ
أخوكم: عبدالمحسن الشراري
الشرح + التطبيق هو طريق الاحتراف بإذن الله
تحية تقدير لك يا أخ خالد
هذه أول مره أدخل فيها إلى مدونتك و أقرأ ما بها، و أريد أن أقول لك أننى وجدتها من أفضل المدونات العربية المهتمة بالتقنية، و أنا أكتب لك تعليقى الآن و قد أمضيت أتصفح مواضيعها منذ ما يزيد عن الساعة و النصف الآن, و أنوى أن أتصفحها كلها -إن شاء الله- لما بها من فائدة و منفعة حقيقية.
و أدعو الله أن تجد الوقت دائما لتكتب فيها و تفيد الآخرين بما تكتبه، و خصوصا أنك تكتب فى أمور متخصصة بشكل واضح و سلس و يوصل المعلومة بسهوله للقارئ، و هى ميزة لا تتوافر لدى الكثيرين.
أستفدت كثيرا مما قرأته لك حتى الآن، و أدعو لك بالتوفيق فى كل ما ستنوى كتابته مستقبلا، و أعدك بأننى سأكون من زوار مدونتك الدائمين إن شاء الله.
أمر أخير جاء فى هذه التدوينة و أريد أن أعلق عليه، و هو قولك فى الرد على الأخ محمد العانى: ”ساءني ماسمعت عن أنك تقدمت لشهادة الزيند، لن أتقدم لها طالما حييت أبداً والأسباب معروفة. (من ترك شيئاً لله عوضه الله خيراً منه)”. فهل كنت تفصد بالـ (الأسباب المعروفة) أن مؤسسى شركة زند هما أسرائيليان؟ أم كنت تقصد شيئا آخر؟
فإذا كنت تقصد لأنهما إسرائيليان كما أستنتجت، فأسمح لى بأن أختلف معك هنا من ناحية المبدأ، لأن العلم ليس له وطن أو جنسية معينة، و لا يجوز أن نرفض علما أو معرفة أو أداة ترقى لمجرد أن القائمين على أمرها من أعدائنا، و إلا لما كنا تعلمنا لغة البى أتش بى من الأساس طالما أن أصحاب شركة زند (الأسرائيليين) هما اللذان أعادا كتابة اللغة بالكامل تقريبا و وضعا المبادئ لشكلها الحالى.
و فى النهاية لك منى كل التحية و التقدير
شكراً لك ونعم الشركة ليست إسرائيلية فقط بل موجودة وتعمل في إسرائيل بشكل كامل لذلك هي إسرائيلية صرفة، الشيء الآخر المهم أن هذه الشهادة أهميتها قليلة بالنسبة للشركات أمام الخبرة العملية ﻷنها بالنهاية تعلمك المبادىء فقط.