סקר: איך אתם מדבגים PHP?

amitayh

New member
סקר: איך אתם מדבגים PHP?

אני יודע שהרבה מפתחי PHP זורקים הרבה echo/var_dump בתוכנית וגם הורגים אותה עם die כנראה זה קשור לעובדה שאנשים שמתחילים ללמוד PHP לומדים בצורה קצת פיראטית ולא בהכרח בצורה נכונה (יש דבר כזה בכלל?) וגם בגלל שלקנפג דיבאגר יכול להיראות קצת מאיים למתחיל ואז זה כבר הופך להרגל... אתוודה שגם אני עבדתי כך רוב התקופה שבה אני כותב PHP ורק בשנה האחרונה התחלתי לעבוד עם דיבאגר (ובעקבות כך גם עברתי לדבג JS עם דיבאגר) ואני מרגיש כאילו גיליתי את האור... אז מה איתכם?
 

koler

New member
אני מדבג בצורה הישנה.

מדפיס שגיאות בעיקר. איך אתה מדבג?
 

gilmad

New member


 
אני אמנם עם ide + xDebuger אבל...

אבל הכי פשוט זה רק להתקין את ה xDebuger.dll ולהגדיר ב php.ini 3 שורות בלבד
zend_extension=xDebuger.dll המיקום בדיסק של xdebug.show_local_vars=1 xdebug.collect_params=4 ==> להצגת כל המשתנים והפונקציות עם האלמנטים שקיימים בסקופ בעת ההתרסקות​
 
בא וכמובן שצריך להפעיל את הדיבגר...

xdebug.remote_enable=1 xdebug.remote_host="127.0.0.1" xdebug.remote_port=9000 xdebug.remote_handler="dbgp" ==> זה הפרוטוקול לכן זה סופר חשוב xdebug.remote_mode=req xdebug.profiler_enable = 1 xdebug.profiler_output_dir = "c:/tmp/"​
וכמובן שאח"כ צריך לאתחל את השרת...
 

TotalCommnader

New member
כתבתי פעם תוכנית של 30 שורות בלי דיבוג והיא ע

בדה אבל זה באמת בגדר נס. הדיבאגר לא עבד משום מה ולא התחשק לי לעשות ריסטרט כי כבר שתיתי קפה/עשיתי פיפי. :) PHP אני מדבג בכתיבה למסך/קובץ ואני אעבור לדיבגר מיד אחרי המשימות שלי... הזמן הזה אף פעם לא מגיע אז כנראה שאני צריך ליזום את זה כמו שאני אומר לעצמי כבר שנתיים בערך...
 

Shai Mishali

New member
האמת שאני לא מתבייש להגיד ש..

אני עובד בשיטה הישנה - var_dump / var_export במקרה הצורך , Exception Handling כמו שצריך ושרת פיתוח נוח , וDebugger הוא לא תמיד דבר נחוץ . אני לא יודע מאיזה בחינה "גילית את האור", אבל לי תמיד יהיה איכשהו מוזר לעבוד עם Debugger לשפה כזו איכשהו :)
 

amitayh

New member
גם אני הייתי בגישה הזאת

אבל מהר מאוד מתרגלים... ואז אתה רואה כמה זה נוח לעקוב אחרי תוכנית שורה אחרי שורה במקום לדחוף die בכל מקום, ולהעריך ביטויים תוך כדי ריצה
 

Shai Mishali

New member
זה בדיוק חלק ממה שמפריע לי

בעיניי PHP היא לא שפה ש"מתקפלת" היא שפת Runtime - שזה בדיוק מה שמוזר לי בנסיון "לדבג אותה" . אני עובד גם על כל מיני שפות אחרות ואני יכול להבין את הצורך בDebuging שכל פעם שאתה צריך להריץ מחדש את האפליקציה זה חצי דקה קימפול, אבל שהתוצאה מופיעה מיידית על המסך אני באמת לא רואה בזה את הצורך. עם מה אתה עובד? XDebug+Netbeans?
 
היי, למה התגובה המרושעת? :/

חשבתי שמה שאמרתי היה מאוד ברור - שמעתי משהו על זה שלינוקס מספק כלי דיבוג מוצלח כלשהו, ושאלתי האם מישהו יודע במה בדיוק מדובר.. למה הגבת כמו שהגבת? :/
 

N i X

New member
לינוקס היא מערכת הפעלה...

לא ברור למה התכוונת. אולי תרחיב?
 
זה בערך כל מה שהבנתי מהשיחה..

מישהו אמר משהו על זה שבלינוקס תהיה לי אפשרות לדבג מבלי שהלקוח יראה את הדיבוגים.. היו בשיחה הרבה מושגים שאני לא מכירה אז אני לא זוכרת שום דבר ספציפי.. טוב, לא יודעת.. קיוויתי שאולי זה משהו שכולם מכירים ומשתמשים ואז תדעו לכוון אותי.. אם זה לא ככה אני אשאל אותו ואחזור אליכם עם תשובה מדויקת יותר.. :)
 

N i X

New member
לקוח == גולש?

1. לא מדבגים ב production, אולי רק במקרים נדירים. 2. ניסית את xdebug? זה "פלאגין" ל PHP שנותן אפשרות לסביבת עבודה שלך "לדבר" עם PHP בשרת (לוקאלי או מרוחק) וכך לדבג. כמובן גם הסביבת עבודה שלך צריכה לדעת "לדבר" את ה"שפה" של xdebug. http://devzone.zend.com/1147/debugging-php-applications-with-xdebug/
 
למעלה