מה הדרך הנכונה לתקשורת באמצעות GET ב PHP
-
אני די מתחיל בכתיבה של PHP ותכנות בכלל
כרגע אני מפתח תוכנה שמתקשרת בGET לימות המשיח
בגדול ימות שולח GET לשרת שלי עם פרמטרים מסוימים
אני מעבד את הבקשה ומחזיר לו שישלח לי עוד פרמטרים והוא מצרף לי עוד פרמטרים בGET
העניין הוא שאני לא רוצה שכל פעם שהוא מצרף פרמטרים השרת יתחיל את החישוב מחדש גם על הפרמטרים הישנים, רק ימשיך מאיפה שעצר
השאלה מהי הדרך הנכונה לעשות את זה
עד עכשיו הייתי פותח תנאי שאם הפרמטר לא הגיע בGET אז הוא מתחיל מהתחלה כמו כאןif (!isset($_GET['call'])) { if (!isset($_GET['ar'])) { if (count($r1) == 1) { print "לקבלת צינטוק הקש"; print "=call,,1,1,,NO,yes,yes,,5,,,,,no"; }elseif(count($r1) == 0){ print "id_list_message=t-"; print "לא נמצאו תוצאות התואמות לחיפוש&"; }elseif(count($r1) >= 10){ print "id_list_message=t-"; print "יותר מידי תוצאות אנא מקד את החיפוש"; print "&"; } else{ print "read=t-"; print " נמצאו"; print count($r1); print "תוצאות"; $b = 0; $sum1 = count($r1); while ($sum1>$b) { $d = $b ; $b++; } print "=ar,,1,1,,N"; } } else { $idarry = $_GET['ar']; $idarry--; print "=call,,1,1,"; } } elseif (!isset($_GET['ar'])){ if($_GET['call'] == 5){ print "הצינתוק נשלח בהצלחה"; } }else { if ($_GET['call'] == 5){ $idarry = $_GET['ar']; $idarry--; print "הצינתוק נשלח בהצלחה"; } }
האינטואיציה שלי אומרת שזה לא הדרך הנכונה אבל אולי אני טועה
אשמח לעזרתכם -
באופן כללי HTTP הוא stateless שזה אומר שתמיד כל בקשה מתחילה הכל מחדש.
יש טריקים להימנע מזה, למשל "סשן" שזה בעצם "זוכר" את המצב הקודם על ידי שמירתו ושחזורו על פי מזהה בעוגיות,
אבל אתה חייב לעשות הכל מחדש.מה ש@חגי אמר מאוד יעזור לך, ללמוד לבודד ולתחום קטעי קוד בפונקציות כמה שיותר, ולהימנע משגרות קוד ארוכות ומייגעות.
ייתכן שאתה בשלב מוקדם מידי בשביל זה, אבל זה לא עצה קוסמטית בכלל אלא זה צוהר להתקדמות רבה בתכנות ומה שבהמשך יגדיר אותך כמתכנת אמיתי ולא סקריפטאי אומלל. -
@צדיק-תמים הפנה אותי למחלקה נהדרת שכתב @MusiCode + @צדיק-תמים (משהו שהתחיל בעקבות דיון פה),
שמטפלת בצורה מדהימה בזרימת השיחה, אלא שהיא בנוד ולא מתאימה לPHP (בעומק, כי בPHP בקשה אחרת היא טריד נפרד שלא יכול אפילו לומר שלום מרחוק לבקשה האחרת).אבל עצם האפשרות בנוד לעקוב אחרי שיחה גרמה לי להתבונן בפוסט הנ"ל של@MusiCode ושם ראיתי שיש מזהה שיחה בשם call_id. אז כנראה מפתחי PHP מול ימות משתמשים בו ושמורים מצב למסד או לקבצים.
-
@dovid כתב במה הדרך הנכונה לתקשורת באמצעות GET ב PHP:
@צדיק-תמים הפנה אותי למחלקה נהדרת שכתב @MusiCode + @צדיק-תמים (משהו שהתחיל בעקבות דיון פה)
רק שכחת להביא את הלינק לספריה... https://github.com/ShlomoCode/yemot-router2 (fork של הספריה המקורית של @MusiCode)
-
@aaron כתב במה הדרך הנכונה לתקשורת באמצעות GET ב PHP:
רק שאלה, למה לפרסם פורק ולא את המקור?
זה קצת עוול ליוצר המקוריכי הפורק מתוחזק, עם פיצ'רים חשובים שאין במקורי, פיצ'רים שתוקנו ובמקור לא עובדים, עבר שכתוב מקיף של הקוד שיהיה קריא יותר, שכתוב של התיעוד, ועוד המון השקעה. תסתכל ב-CHANGELOG (גרסאות 5-6) / השוואה.
נתתי לינק גם למקור וציינתי מפורש שזה פורק, באמת לא מבין איפה העוול.