النتائج 1 إلى 15 من 15

الموضوع: مكتبة Error Talk للتحكم فى تقارير السيرفر PHP

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Feb 2008
    المشاركات
    62

    مكتبة Error Talk للتحكم فى تقارير السيرفر PHP



    السلام عليكم
    فى البداية ، أنا أحب مبدأ أسمعه باستمرار فى البرمجة يسمى (dry (Don’t repeat your self وهو لا تكرر نفسك ، والمقصود بها فى لا تكرر أكواد من الممكن الإستغناء عنها أو سخر الألات لفعل شىء تكرر فعله باستمرار فى يومك ، فدائما لنضمن أن الموقع يعمل جيدا نحتاج لعمل تجربة على الموقع بعد الإنتهاء منه لإكتشاف هل هنا أخطاء ؟ ، هل هناك شىء لا يعمل بشكل صحيح ؟ ، هل يوجد استخدام سىء للسكربتات بهدف غير الهدف الأساسى لها ، فكيف سنعرف كل هذه المعلومات فى موقع كبير كان أو صغير ، مكون من لوحة تحكم وواجهة مستخدم ، مكون من أكثر من 150 – 200 صفحة على الأقل ، فوفقنى الله أولا للتفكير فى حل لهذه الخطوة التى نقوم بها دائما فى كل سكربت نقوم بعمله ، والحمد لله ، فاض الله على من خزائنه بفكرة عمل مكتبة تقوم بعمل كل هذه الخطوات تلقائيا بتحكم كامل فى كل مستويات التقارير التى تخرج سواء كانت أخطاء برمجية أو أخطاء استخدام للسكربت أو ملاحظات تفيد بأن مثلا هناك دالة سيقوم محرك بى اتش بى بعمل تعطيل لها فى النسخة القادمة ، وبفضل الله بدأت فورا بالعمل على تنفيذ فكرة المكتبة بأسرع وقت ، وبفضل من الله نجحت الفكرة وتم عمل المكتبة وهى مرفقة مع هذه التدوينة ، وبعد الإنتهاء من العمل و مشاهدة ثمرة المكتبة ، كرمنى الله بفكرة أخرى وهو عبارة عن تطوير أسلوب العمل بحيث نقوم بالتعامل مع التجربة وتسليم المواقع بشكل منظم وعلى مراحل ، مثلا ، أول أسبوع من تسليم المشروع نقوم بتفعيل المكتبة داخل المشروع بأن ترسل التقارير على ملف تكست بدون إظهار أى شىء للعميل ، وبعد التأكد من أن كل شىء على ما يرام ، نقوم بإلغاء إرسال التقارير الى ملف ونقوم بتفعيل خاصية ارسال التقارير عبر الميلات ، بحيث أنها وقتها ستكون حجم الملاحظات فى التقارير أقل من أول أسبوع ، فهذه الطريقة ستوفر علينا الكثير من الوقت لمتابعة الموقع ، فبعد ذلك ان شاء الله سيكون بإمكان أى شخص من فريق العمل الدخول على الموقع و مشاهدة ملف يسمى erroTalkLogFile (يمكن إلغاء هذه الخاصية من إعدادات المكتبة) لنطلع على الحالة التى عليها الموقع الأن ، أو عن طريق الميل بمعنى أن المكتبة من الممكن أن تراسل ايميل معين بالتقارير أول بأول فى لحظة استخدام الموقع.

    وهذا فيديو قمت بعمله على اليوتيوب يوضح كيفية تسطيب المكتبة و كيفية التحكم فى الإعدادات الخاصة بها
    http://www.youtube.com/watch?v=9KH4ppFctEM

    تحميل المكتبة من المرفقات





    الملفات المرفقة الملفات المرفقة
    __________________
    محمد مهدى
    Senior PHP Developer
    Codeigniter Framework
    http://www.linkedin.com/pub/mohammed-mahdy/56/780/1b9


  2. #2
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    947


    مجهود رائع شكرا لك





    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير

  3. #3
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600

  4. #4


    المكتبة جميلة ما شاء الله عليك
    هناك فقط ملاحظة :
    عنصر المصفوفة بهذه الطريقة (بدون علامات تنصيص)
    كود PHP:
     $conf[E_COMPILE_ERROR
    يعتبر E_COMPILE_ERROR ثابت و لا يتم إيجاده و بالتالي يتم طباعة خطأ !!






  5. #5
    عضو نشيط
    تاريخ التسجيل
    Feb 2008
    المشاركات
    62


    بارك الله فيك وفي مجهودك

    اقتراح:
    يمكن ايضًا ان تطبع الاخطاء في اضافة firePHP
    http://firephp.org/
    جزاك الله خير جارى التنفيذ ...





    __________________
    محمد مهدى
    Senior PHP Developer
    Codeigniter Framework
    http://www.linkedin.com/pub/mohammed-mahdy/56/780/1b9

  6. #6
    عضو نشيط
    تاريخ التسجيل
    Feb 2008
    المشاركات
    62


    المكتبة جميلة ما شاء الله عليك
    هناك فقط ملاحظة :
    عنصر المصفوفة بهذه الطريقة (بدون علامات تنصيص)
    كود PHP:
     $conf[E_COMPILE_ERROR
    يعتبر E_COMPILE_ERROR ثابت و لا يتم إيجاده و بالتالي يتم طباعة خطأ !!
    جزاك الله خير ، على اهتمامك بتطوير المكتبة ،فقط أرجو التوضيح أكثر عن ملحوظتك و جزاك الله خيرا م.خالد





    __________________
    محمد مهدى
    Senior PHP Developer
    Codeigniter Framework
    http://www.linkedin.com/pub/mohammed-mahdy/56/780/1b9

  7. #7


    جزاك الله خير ، على اهتمامك بتطوير المكتبة ،فقط أرجو التوضيح أكثر عن ملحوظتك و جزاك الله خيرا م.خالد
    ما أقصده هو أن عناصر المصفوفة يجب أن تكون مثل :
    كود PHP:
    $array['item'
    و ليس مثل
    كود PHP:
    $array[item
    لأن العنصر item إذا لم تضعه بين علامات تنصيص فسيعتبر على أنه ثابت Define
    و سوف يظهر الخطأ
    كود PHP:
    Notice: Use of undefined constant item assumed 'item' in ... 
    أتمنى أن الفكرة واضحة أخي الكريم ، و أحييك مرة أخرى على هذا العمل .

    ينتابني الفضول للسؤال : هل الكلاس مفتوح المصدر ؟






  8. #8
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    هل استعملت دالة debug_backtrace
    لمعرفة مكان الخطأ؟
    http://php.net/manual/en/function.debug-backtrace.php

    اليوم وجدتها وانا ابرمج في سكربت لي

    هذه الدالة التي استعملها حاليًا:
    كود PHP:
    function print_error($data)
    {
    echo 
    "<h2>an error occured:($data)</h2>";
    foreach (
    debug_backtrace() as $d):
    print_r($d);
    echo 
    "<br/>";
    endforeach;
    die();

    وهذه الخاصة بال firephp:
    كود PHP:
    function debug($type,$data)
        {
            require_once(
    CMS_PATH.'external/firephp/fb.php');
            
    FB::log($type ." : " $data);
        } 
    طريقة نقل المعلومات من php لاضافة الفيرفوكس:عن طريق الهيدرز





    التعديل الأخير تم بواسطة ahmad sadiq ; 12-04-2011 الساعة 10:01 PM

  9. #9
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    ^^^
    طبعًا لا تطبع هذه المعلومات في النسخة التي ستنشرها
    انت لا تريد ان يعرف المستخدمون اسماء الملفات التي لديك

    لكن لأن هذا مريح لك وقت التطوير، يمكن ان تضعه في ملف كما تفعل انت
    او ان تستعمل متغير DEBUG_MODE
    او غيرها من الطرق






  10. #10
    عضو نشيط
    تاريخ التسجيل
    Feb 2008
    المشاركات
    62


    ما أقصده هو أن عناصر المصفوفة يجب أن تكون مثل :
    كود PHP:
    $array['item'
    و ليس مثل
    كود PHP:
    $array[item
    لأن العنصر item إذا لم تضعه بين علامات تنصيص فسيعتبر على أنه ثابت Define
    و سوف يظهر الخطأ
    كود PHP:
    Notice: Use of undefined constant item assumed 'item' in ... 
    أتمنى أن الفكرة واضحة أخي الكريم ، و أحييك مرة أخرى على هذا العمل .

    ينتابني الفضول للسؤال : هل الكلاس مفتوح المصدر ؟
    نعم هى مفتوحة المصدر وبالمناسبة (بفضل الله تم الموافقة عليها ونشرها على هذا الموقع phpclasses على هذا الرابط http://www.phpclasses.org/package/68...me-errors.html )





    التعديل الأخير تم بواسطة php_5 ; 14-04-2011 الساعة 04:25 PM
    __________________
    محمد مهدى
    Senior PHP Developer
    Codeigniter Framework
    http://www.linkedin.com/pub/mohammed-mahdy/56/780/1b9

  11. #11
    عضو نشيط
    تاريخ التسجيل
    Feb 2008
    المشاركات
    62

    Smile مشكوور



    هل استعملت دالة debug_backtrace
    لمعرفة مكان الخطأ؟
    http://php.net/manual/en/function.debug-backtrace.php

    اليوم وجدتها وانا ابرمج في سكربت لي

    هذه الدالة التي استعملها حاليًا:
    كود PHP:
    function print_error($data)
    {
    echo 
    "<h2>an error occured:($data)</h2>";
    foreach (
    debug_backtrace() as $d):
    print_r($d);
    echo 
    "<br/>";
    endforeach;
    die();

    وهذه الخاصة بال firephp:
    كود PHP:
    function debug($type,$data)
        {
            require_once(
    CMS_PATH.'external/firephp/fb.php');
            
    FB::log($type ." : " $data);
        } 
    طريقة نقل المعلومات من php لاضافة الفيرفوكس:عن طريق الهيدرز
    مشكووووور يا م.أحمد ، على روح التعاون و الإفادة الموجودة لديك ، إن شاء الله سأقوم بإدخال هذه الدوال بعد تجربتها فى النسخة القادمة من المكتبة إن شاء الله.





    __________________
    محمد مهدى
    Senior PHP Developer
    Codeigniter Framework
    http://www.linkedin.com/pub/mohammed-mahdy/56/780/1b9

  12. #12
    عضو نشيط
    تاريخ التسجيل
    Feb 2008
    المشاركات
    62

    Thumbs up



    ^^^
    طبعًا لا تطبع هذه المعلومات في النسخة التي ستنشرها
    انت لا تريد ان يعرف المستخدمون اسماء الملفات التي لديك

    لكن لأن هذا مريح لك وقت التطوير، يمكن ان تضعه في ملف كما تفعل انت
    او ان تستعمل متغير DEBUG_MODE
    او غيرها من الطرق
    مفهوم كلامك يا أخى ، و كلمة debug_mode ألهمتنى بفكرة رائعة لعمل أكثر نظام mode للمكتبة ، إن شاء الله سأقوم التفكير فى طريقة لإدخال نظام ال debug mode على المكتبة بحيث على حسب المود الذى أختاره تقوم المكتبة بتهيئة الإعدادات تلقائيا.





    __________________
    محمد مهدى
    Senior PHP Developer
    Codeigniter Framework
    http://www.linkedin.com/pub/mohammed-mahdy/56/780/1b9

  13. #13
    عضو نشيط
    تاريخ التسجيل
    Feb 2008
    المشاركات
    62


    للعلم المكتبة تعمل مع أى فريم وورك و أى نظام إدارة محتوى جيدا فهى تعمل ك third party فقط تقوم بعمل include لها فى ال master page الخاصة بك سواء كان فريم وورك أو نظام إدارة محتوى وهى ستقوم بعملها بدون أى مشاكل لمحتوى السكربتات الأخرى .





    __________________
    محمد مهدى
    Senior PHP Developer
    Codeigniter Framework
    http://www.linkedin.com/pub/mohammed-mahdy/56/780/1b9

  14. #14


    أنصحك بفكرة جميلة و هي إتاحة إمكانية تغيير شكل الخطأ ، فعوض الحدود بسطر من النجوم **********
    ضع إمكانية إدخال مصفوفة كبارامتر للدالة
    كود PHP:
    errorTalk_Open($array=array()) 
    بحيث تضع إمكانيةوضع حدود و تنسيق بالوسوم أو بال css
    يعني مثل :

    كود PHP:
       $array = array(
       
    'tag_open'=>'<div class="phperror">',
       
    'tag_close'=>'</div>',
       ); 
       
    errorTalk::errorTalk_Open($array); 
    هذه الطريقة مفضلة عندي حيث بها أعمل و أي مصمم يمكنه التحكم بشكل المخرجات ، لكن إذا لم تكن تريد إزعاج نفسك فيمكنك الإكتفاء بوضع كلاس css معين في ال div ، و المصمم يعدل على الكلاس .

    بالتوفيق .






  15. #15
    عضو نشيط
    تاريخ التسجيل
    Feb 2008
    المشاركات
    62


    أنصحك بفكرة جميلة و هي إتاحة إمكانية تغيير شكل الخطأ ، فعوض الحدود بسطر من النجوم **********
    ضع إمكانية إدخال مصفوفة كبارامتر للدالة
    كود PHP:
    errorTalk_Open($array=array()) 
    بحيث تضع إمكانيةوضع حدود و تنسيق بالوسوم أو بال css
    يعني مثل :

    كود PHP:
       $array = array(
       
    'tag_open'=>'<div class="phperror">',
       
    'tag_close'=>'</div>',
       ); 
       
    errorTalk::errorTalk_Open($array); 
    هذه الطريقة مفضلة عندي حيث بها أعمل و أي مصمم يمكنه التحكم بشكل المخرجات ، لكن إذا لم تكن تريد إزعاج نفسك فيمكنك الإكتفاء بوضع كلاس css معين في ال div ، و المصمم يعدل على الكلاس .

    بالتوفيق .
    ممتازة جدا فكرة عمل مصفوفة خارجية ، نضع بها كل الإعدادات ونرسلها للكلاس ، إن شاء الله فى النسخة القادمة 1.1





    __________________
    محمد مهدى
    Senior PHP Developer
    Codeigniter Framework
    http://www.linkedin.com/pub/mohammed-mahdy/56/780/1b9





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض