>> כדי להתחיל לגשר על מה יכול להיות הניסיון היחיד שלך
עם תכנות אינטרנט, מה שאני חשבתי שאני רוצה לעשות הוא לגנוב זוג
דוגמאות שאתה אולי ראה ב50
אם לקח את זה בעבר שנה או שנים או שאין לי
אם לקח את זה לפני כמה שנים
כי הם צעדי תינוק לכיוון פירידין יודע כמו MBC,
דגם תצוגת Controller, ומה זה אומר?
זה אנו רואים שוב אולי הוא פשוט דרך של התחלה
כדי לנקות את העיצוב של חלק פיסת התוכנה מבוססת אינטרנט,
או שזה יכול להיות בצד הלקוח המבוסס גם כן, אבל נצטרך להשתמש בו
בהקשר של PHP, כדי שנוכל להתחיל
לעשות יותר מורכב פרויקטים ומין
של סוגים שונים נפרדים של קוד בתוך היישום;
כך במיוחד שכאשר אנו יש מספר רב של אנשים שעובדים
בפרויקט זה הרבה קל יותר לצייר קווים.
אז קודם בואו לקחת מסתכל על הדרך הכי מוצלח
יישום משהו.
נניח שאני רוצה לעשות סופר אתר כמובן פשוט ל50
או כל מעמד אחר, ו יש כיתה שדברים
כמו הרצאות ולימודים.
אני יכול לעשות משהו כזה תג h1 בחלק העליון של הדף שלי
ורשימה לא מסודרת עם פריטי רשימת li כדי
רק כדי להיות ברשימה עם תבליטים של אפשרויות תפריט, כך סופר פשוט.
אז איך אנחנו יכולים לעשות את זה?
ובכן, תן לי להיכנס לשלי חלון מסוף כאן,
ושים לב שיש לי לקריאה לי ואנו מקושרים לקוד זה
באתר האינטרנט של הקורס בקצת,
ושים לב שיש לי htm נקודת מדד - PHP נקודת מדד.
אז תן לי ללכת קדימה ולפתוח כי, ואכן זה סוג
טיפשי שזה אפילו בשם PHP
כי כל שיש לי הוא תגובה php
ולאחר מכן כל דבר אחר רק קוד ה-HTML גלם.
אבל שוב זה הוא גרסה לאפס,
כך צעד לקראת משהו מעניין יותר,
אבל שמתי לב קשה אני כבר מקודד CS50 ככותרת, CS50 בh1,
ועכשיו יש לי הרצאות לקשר,
עכשיו יש לי את קישור תכנית הלימודים.
בסדר, אז שלא נראה כל כך בלתי סביר
עד שאתה לעקוב אחר קישור כמו הרצאות, ואתה מבין
זה בסדר זה שונה תוכן אבל זה סוג
של אותו הדבר; זה כותרת של הדף ורשימה לא מסודרת.
אני לוחץ בשבוע אפס מ בשנה שעברה, וזה סוג
של אותו הדבר, h1 תג ורשימה לא מסודרת
ואז סוף סוף אני לוחץ זה, ואני מקבל כמה עלה,
המהווה את השקופיות מ הרצאה מסוימת.
אז משהו אומר לי אני עומד להתכווץ.
אם אני פותח את ההרצאות הודעת php נקודה
שזה עותק ופחות או יותר להדביק מהקובץ הקודם;
אני רק שיניתי את הכותרת ל h1, ומה הם קישורים אלה.
גרוע מכך, אם אני הולך לתוך השבוע אפס נקודה PHP,
זה את אותה העבודה העתק ודבק
עם רק קצת תוכן צבט.
אז בוודאי שיש כאן הזדמנות לשיפור,
ובוודאי זה צריך להיות כלל אצבע טובה;
בכל עת שאתה מרגיש את עצמך העתקה
והדבקה של משהו יותר מ אולי פעם,
דגלים אדומים צריכים אני מקווה להתחיל ללכת.
אבל איך אנחנו הולכים על שיפור הזה?
ובכן, יש כמה דרכים, ו הטכניקות שאתה יכול להשתמש
ב-PHP התפתח לאורך זמן, אבל בואו ננסה את זה.
תן לי להיכנס לאחת גרסאות, כך איטרציה הבאה של זה,
ותן לי לנסות לנקות אותו קצת.
נכון, php של אחד מנגנונים פשוטים
לפתרון בעיה זו היא בית ספר ישן דורש פונקציה,
שפחות או יותר עושה עותק ודבק של התוכן
של כמה קבצים ממש כאן, כמו ג הוא חד כוללים,
ויש לי שפות אחרות מבנים דומים מאוד.
אז זה נראה קצת מוזר עכשיו,
זה בהחלט לא השלם את דף האינטרנט מחפש,
אבל יש להניח שמה בתוך php נקודת הכותרת.
כל הדברים האחרים, נכון, תג HTML, תג הראש,
תג הכותרת, את כל הדברים זה היה מעל למהות העיקרית
של הדף, שהוא ללא ספק רק הרשימה לא מסודרת,
ובכותרת התחתונה הוא כנראה כמו תג הגוף הסגור,
התג של ה-HTML הסגור; די לא מעניין
אבל דברים משוכפלים.
בסדר, ובטוח מספיק אם אני אלך
לphp נקודת כותרת זה רק סוג של שבר היתום
מהחלק העליון, ואם אני להיכנס לphp נקודה התחתונה,
זה יתום שבר מהחלק התחתון,
ואני משתמש באותה אלה שברים בקבצים האחרים שלי,
כמו הרצאות dot-PHP.
בסדר, אז מה טוב יותר על זה היית אומר?
כן?
>> פשטות.
>> פשטות?
אני לא יודע של מבטים מסוג זה הרבה יותר מפחיד לי עכשיו, נכון?
>> אם אני רוצה לשנות אותך כותרת, לא היה לך
כדי לשנות אותו בכל קודם כמו קבצים.
אתה פשוט לשנות אותו בכותרת שלך.
>> בדיוק, אז אולי ב מובן שזה פשוט יותר,
אולי הייתי למסגר את זה כמו שזה פשוט קל יותר לעדכן אותו.
זה אולי קצת נקי
בגלל שתעדכן זה במקום אחד בלבד.
אז זה די ; משכנע מה חיסרון
של גישה זו או אחרת מה בעיה שרידים
שאנחנו לא באמת פתרנו?
כן?
[הערה כבויה מיקרופון]
כן, בדיוק, אני מתכוון, אני עדיין העתקה והדבקה;
זה קצת פחות, אבל אני רק עצר שניים מקבצים אלה,
והם פחות או יותר עדיין נראה זהה.
היה דורש ב עליון, דורש בתחתית,
ולא מסודר רשימה באמצע
אשר עצמו היה עדיין מבני זהה.
יתר על כן, שים לב זה, אם אני למעשה להציג דוגמא זו,
תן לי ללכת לגרסה אחת עכשיו,
ושים לב שיש לי סילבוס הרצאת CS50.
אוי ואבוי, CS50 שבוע אפס שבוע אחד וCS50 יום רביעי יום שישי,
סוג של אני כבר לחתוך פינה.
מה היה - מה שהיו אלה כותרות בעבר?
[הערה כבויה מיקרופון]
הם היו כמו הרצאות ב בשבוע שאפס, כמו שזה היה סוג
של יותר סקסי, וזה ממש היה כמה הדינמיות אליו,
וזה סוג של - אני פשוט סוג של חתירה עכשיו
ורק בהנחה ש האתר כולו הוא CS50
ובסדר זה עובד, אבל זה בהחלט לא אלגנטי כמו
או כסוג של ישר קדימה כמו שזה היה פעם,
אבל זה הגיוני, כי אם אתה מסתכל על php נקודת מדד
והרצאות מנקדות php ובשבוע אפס php נקודה,
הם כולם כוללים את אותו הקובץ,
אז איך אנחנו יכולים לשפר את זה?
מה איטרציה הבאה של קוד זה כנראה הולך לעשות?
[הערה כבויה מיקרופון]
כן, בדיוק, כך שאם - ותן לי לסכם
עם אנחנו בעצם רוצים לparameterize כותרת ה
כך שכן יש עדיין תג h1 מקודד קשה, אבל החומר
בין לבין, הפתוח והתג הקרוב,
ככל הנראה הוא דינמי, ו מגיע ממשהו אחר.
אולי "מקבל מחרוזת" או דבר אחרי סימן השאלה
ב-URL היו איפשהו דבר אחר, אז בואו נסתכל.
אז אם אני נכנסתי לגרסה השנייה,
עכשיו שם לב שיש לי קיבלתי קובץ נוסף,
זה נראה כמו עוזרים dot-PHP.
אני לא ממש יודע איפה תתחיל אז אני הולך להתחיל רק
במדד כמו כמו תמיד, ועכשיו תשים לב שזה קצת שונה,
אז יש לי קו דורש
בראש הדורש עוזרים מנקדים PHP,
אבל אני יכול לקרוא לזה מה שאני רוצה,
אבל עכשיו שמתי לב שלשים יש קריאה לפונקציה
כדי להבהיר כותרת עליונה, שהוא מעניין רק במידה
כמו מה שעבר ב ככל הנראה, את הכותרת המותאמת אישית
לדף המסוים הזה.
בינתיים יש להבהיר כותרת תחתונה בתחתית,
ואני לא צריך שום parameterization שם זה רק
כותרת תחתונה, אבל עכשיו נראה
להיות צעד לקראת טוב יותר פתרון, לדקלם כותרת לוקחת,
ומה עושה בכיכר סוגריים מצביעים עבור אלה
שלא ראה את php אי פעם או בזמן?
[הערה כבויה מיקרופון]
כן, זה מערך.
זה מערך או אסוציאטיביים חשיש המשייך את המפתחות
עם ערכים; זה כמו ג'אווה תסריטים, סימון התנגדות,
או בשפות אחרות, syntaxs דומה.
בסדר, אז מה הוא בעוזרים מנקדים php?
בעוזרים מנקדים php זה רק כמה פונקציות,
לעבד כותרת ולעבד תחתונה.
אז כמה פרטים אם פחות מוכר,
אז קודם כל העובדה
כותרת להבהיר שלוקחת ויכוח נתונים זה, ככל הנראה,
הוקצה הריק מערך יש מה זה אומר?
מה זה אומר לעשות שווים סוגר פתוח סגור סוגריים
כפרמטר ב-PHP?
זהו ערך ברירת המחדל.
אז אם אני לא עובר במערך או כל טענה שהיא
לכותרת העליונה או לעבד לעבד פונקציה תחתונה,
לפחות אני יכול לסמוך עליו כמו מחבר של פונקציות אלה
נתונים שיהיו מינימאלי להיות מערך ריק;
זה לא יהיה בלתי מוגדר או שווא, או משהו כזה,
זה יהיה בדיוק מה נתתי אותו כברירת מחדל.
עכשיו זה קצת סוג של דרך hackish של סמלי טעינה
לשם שלך בחלל אם אפשר לומר כך,
אבל זה עובד יפה גם למטרה זו
של יישום מהסוג משלנו מנוע בניית התבנית של אדם עני.
בסדר, יש הרבה כלים בחוץ לפיתון אודם
וphp שנותנים לך יכולות בניית תבנית
וזה בדיוק מה שאנחנו רוצים.
אנחנו רוצים תבנית שיש תג h1 פתוח, h1 נסגר תג,
וסוג של מקום בעל באמצע,
ואנחנו רוצים למלא את המקום אלה בעלים בדרך של פונקציה זו,
ולכן פונקציה זו לחלץ פשוט כל כך קורה
כדי לתת לך את הדברים הבאים יכולות.
אם יש לך אסוציאטיבי של מערך עם זוגות ערך מפתח
כמו foo שווה הבר, תמצית ייצור משתנים מקומי
נקרא סימן יעילות דולר foo ולתת לו ערך של בר
כך הוא מתפוצץ אסוציאטיבי שלך מערך מזוגות ערך מפתח
למשתנים חדשים עם הערכים המקביל.
ולאחר מכן דורש כותרת נקודה php הנקודה הוא אותו הדבר כמו קודם,
אז מה אנחנו כנראה הולכים לראות בתוך php נקודת הכותרת?
זה כנראה יש לי שתג h1 והתג הקרוב; מה קורה
להיות בתוכו כנראה שבבינו?
[הערה כבויה מיקרופון]
בדיוק, יש כנראה כמה אזכור לכותרת סימן דולר
ואכן אם אני להתקרב על זה יש תג הכותרת שלי,
יש תג h1 שלי, ובתוך שלו היא החדרה דינמית
כותרת של סימן דולר, אבל רק למען סדר טוב,
אני עושה את זה מיוחד html לחייב בשם האכזרי
פונקציה, אבל זה ; שימושי מה הוא עושה
או מה זה להגן מפני?
זהו למעשה פתרון לאיום שאתה רומז;
היית הוביל אותנו אליו.
[הערה כבויה מיקרופון]
בדיוק, כך שאם זדוני משתמש או קורבן תמימים
של התקפת פישינג לחץ על קישור
כי בעצמי היה סימן שאלה ומשהו כמו foo שווה,
ולאחר מכן הערך של foo היה למעשה
כמו סוגר פתוח תסריט, סוגר סגור,
ועוד קצת קוד JavaScript;
אם אתה לא קורא לזה פונקציה העיקרית ארוכה,
היית באמת להיות הדבקה html גלם לדף האינטרנט שלך,
שהתוצאה שלה היא כי אתה עלול להיות מרומה.
ייתכן שאתה מרמה את המשתמש להפעלת קוד JavaScript
שהוא או היא עשתה לא מתכוון באמת.
ולמרות שבדרך כלל אתה פוגע בעצמך בלבד,
כמו שרק אתה יודע אידיוט הולך להקליד
בתסריט סוגר פתוח, סוגר סגור, ואומר התראה
או משהו כזה ולעשות אותו או את עצמה
בעם כמה תוצאות מוזרות, אם אתה מקבל מרומה
ללחיצה על קישור שיש לו JavaScript גלם מוטבע בו
כערך של תכונה ש,
אתה יכול בין השאר לגנוב את העוגיות של מישהו
כי יש רכוש נקרא עוגיית נקודת מסמך
ב-JavaScript, שמאפשר לך לתפוס עוגיית ההפעלה של משתמש,
ואם אתה זוכר מה פיגוע חטיפת הפעלה הוא,
סיפור ארוך קצר, זה אחד דרך של ממש הטעיית מישהו
לתוך נותן לך, כי וירטואלי יד חותמת ולאחר מכן לוקח
על חשבון הפייסבוק שלהם או סוג אחר של חשבון.
בסדר, אז זה הוא מעט ארוך,
אבל זה רק באמצעות קוד ה-HTML גלם.
זו מקבילה לקרוא הד
או להדפיס ביעילות, ו אנחנו בעצם אתה מכניסים
כי באופן דינמי.
אז מה יותר נשאר כאן?
ובכן, תן לי להיכנס גרסת שלוש כאן,
ואנו רואים מקצת שונה -
אותה פריסת קובץ מדויקת אבל הודעה
שהפעם אנחנו הולכים להכליל את הכותרת העליונה ותחתונה
כתבניות, אז מה אני מתכוון לעשות את זה?
מה הדבר אחד זה שונה כאן?
מה השתנה מאז את הגרסה האחרונה?
עדין, אבל זה ללא ספק רק עיצוב טוב יותר נקי יותר.
כן?
[הערה כבויה מיקרופון]
כן, יש רק אחד סטנדרטי לעבד פונקציה;
אני לא מקרה מיוחד לעבד כותרת עליונה או תחתונה לעבד,
שניהם אם זוכר מעוזרים מנקדים PHP,
אנחנו פחות או יותר זהים פרט לשמותיהם
והתבניות שהם כלולים.
למה לא פשוט parameterize הפונקציה לדקלם
ולקחת את הטיעון אחד, זה שמו של התבנית,
וטיעון אופציונלי שני כי הם זוגות ערך המפתח
שברצונך לחבר פנימה
אז אם אני עכשיו מסתכל עוזרים מנקדים הודעת php
שאני מתנהג מעט מהודר יותר עכשיו.
בעצם אני עושה בדיקה קובץ קיים ואם כן קדימה
ומחייב אותה; רק במקרה משתמש סוגי טעות
בחלק שם תבנית המזויפת לא רוצה לזרוק שגיאה
בתכנית, כך שאנחנו יכולים מינימאלי עושה להם את זה
מעדיף כאן.
בסדר, אבל אנחנו יכולים לקחת את זה צעד אחד קדימה?
בגרסה זו כאן שים לב לדברים הבאים.
אני פשוט הקלדתי ls, ו מה קופץ מייד
בחוץ הוא שונה במקצת.
אז יש שני מדריכים, נכון,
ואז זה עכשיו צעד לקראת מה יהיה סופו של דבר יהיה יותר
מסגרת נכונה.
זה סוג של מרושל שלי שזורק את כל
התוכן שלי בתוך ספרייה נגישה לציבור
כי ממש נקרא ציבור.
ואפילו אם כי למרבה הצער, הרבה מסגרות,
מבוגרים במיוחד, ואפילו כמה הודעות באינטרנט,
חלום מארח ביניהם, כוחות אתה לשים את כל הקבצים שלך
במקבילה של ספרייה ציבורית אפילו
אם אולי את הקבצים שלך כולל סיסמאות מסד נתונים
ושמות משתמשים או אישורים אחרים כגון,
זה בכלל לא עיצוב טוב.
הרבה יותר טוב הוא לשים רק
בספרייה הציבורית מה יש בהחלט
להיות משתמשים נגישים, וכל דבר אחר
שאתה כולל את כמו עוזרים מנקדים PHP,
אין שום סיבה שזה צריך להיות נגיש דרך האינטרנט
דפדפן עם כתובת אתר.
זה יכול להיות בלתי מזיק לחלוטין אם המשתמש רוצה לראות אולי
שזוגות, אבל זה רק עיקרון זה,
וחס וחלילה זה בעצם עושה יש שם משתמש או סיסמא;
אתה לא רוצה משתמשים בטעות
או להיות במכוון תוכל לגשת אליו.
אז אנחנו לא ממש ב גישה מושלמת כאן,
שלא להבחין הבא עכשיו.
ב-PHP נקודת מדד, יבחין כי אני עדיין דורש עוזרים,
אבל אני עושה את זה בצורה כזאת כי אני סוג של ארגון כל
מהתיקים ש ייכלל
לתוך תיקייה בשם כמקובל כולל,
ולאחר מכן אני קורא לגמול עבור הכותרת עליונה ותחתון כמו בעבר.
אז הדבר היחיד מה שעשיתי הוא מעין
מלארגן מחדש את הספריות שלי כדי להיות קצת יותר אנאלי
על מבנה הקובץ.
אבל אם אנחנו עכשיו ללכת הדוגמא החמישית זה,
שם לב כאן שאנחנו עכשיו יש שלישייה של תיקיות,
וזה קצת מטעה ברגע
כי לפשטות למען הכיתה,
אני פשוט זרקתי הכל
לג'ון הרווארד של מדריך ציבורי רק
כדי שנוכל לנווט אותו באמצעות דפדפן, אבל שים לב -
להתעלם מחלק זה רק לרגע,
העובדה שאני שם.
שים לב שיש לי שלוש ספריות משנה: ציבורית,
תבניות, וכולל.
הרעיון כרגע הוא שב אני שרת האינטרנט מוגדר כהלכה
היה אומר שזה אפצ'י יש אתר האינטרנט נגיש לציבור
קבצים כאן, ושום מקום אחר.
אז מה קובץ שאתה חושב אני הולך לראות בפנים
של הציבור אם אני מקליד ls?
מה לפחות קובץ אחד זה כנראה שם?
[הערה כבויה מיקרופון]
php נקודת מדד אוקיי, ו מה קובץ הוא כמובן לא
שם בין יתר?
כמו עוזרים מנקדים PHP, כותרת php נקודה, php נקודה התחתונה;
כל הברים, כל הפונקציונליות
שלא ממש צריך להיות נגיש לכולם,
זה צריך להיות שמיש על ידי הקבצים
כי הם נגישים לציבור, אבל הם עצמם,
אף משתמש לא צריך לראות או מקהלה URL עבור עוזרי dot-PHP.
שים לב שבמקום אם אני הולך
לכולל יש עוזרים מנקדים PHP,
ואם אני נכנסתי לתבניות,
יש תחתונה ו כותרת php נקודה.
בכנות, אני יכול לשים אותם באותה הספרייה,
אבל אני מנסה להיות אפילו יותר אנאלי על שמירת קבצים
כי הם פשוט סוג של תבניות סטטי שונה
מקבצים פונקציונליים כמו עוזרים מנקדים PHP,
ואני רק הקפדה על כמה מוסכמות נפוצות למדי
קורא ספריות כולל ותבניות.
אז הדבר היחיד ש שינה לאחר מכן הוא שוב בדרך.
אם תלכו עד כאן תבחין כי אני עכשיו רק צריך
לכלול ספרייה יחסי,
לוכסן נקודת נקודה כולל עוזרים מנקדים PHP,
או שאני יכול להיות קצת יותר ראוי ובאמת לעשות משהו
ככה, PHP והרבה
של שפות יש לי סימנים מיוחדים אלה
המייצג את הספרייה של הקובץ הנוכחי,
כך מדגיש dir התחתון מדגיש תחתון מייצג
כל ספרייה הוא על קובץ זה,
ולכן אם אתה רק לשרשר עם מפעיל הנקודה, ש,
שאשיג את אותה התוצאה,
ונוטה להיות קצת יותר חזק, כי אתה יכול לקבל
למצבים עם קרוב משפחה ספריות היו רק אומרים נקודה
או נקודת נקודה בעצם יכולה אביא אותך למקום הלא נכון,
אז זה נוטה להיות קצת יותר חזק.
בסדר, אז מה למרות ששרידים?
מה לעשות אתה עדיין לא אוהב בזה?
מה אפשר לשפר ולך העיר על זה קודם אני חושב
כי יש עדיין כמה בעיות?
[הערה כבויה מיקרופון]
נכון, אין ספק שאין לנו להתחיל לכתוב כמו אתרים
שנראה כמו זה, נכון?
זה לא מרגיש כל כך הרבה יותר טוב,
יש עדיין העתק ודבק.
עדיין יש לי דורש קו בחלק העליון.
עדיין יש לי להבהיר כותרת לעבד תחתונה.
יש הרבה כפילויות.
כן?
[הערה כבויה מיקרופון]
כן, בדיוק, ולכן אנחנו כבר לקחנו צעד לקראת סוג של פיצול
את "ג" מ" v ", כך MVC הוא דגם תצוגת בקר;
בקר הוא סוג של מוחם של היישום.
מודל נוטה להיות נתונים או חלק מהפונקציונליות משותפת,
ומבט נוטה להיות אסתטיקה, התבנית,
ולכן אנחנו צריכים לקחת צעד לקראת הפרדה "ג" מ" v "
כי עכשיו לפחות יש לנו הספרייה של תבנית זו,
אבל גם שם בעצם אנחנו יש בקר אחד לכל קובץ.
זה לא נראה כאילו יש הרבה היגיון קורה כאן,
אבל php נקודת מדד הוא יעילות הבקר.
כאשר אתה מבקר בכתובת אתר ו המסתיים ב-PHP נקודת מדד,
כל ההיגיון כי מיישם אותו דף נכון
ב-PHP נקודת מדד, ו אותו דבר עבור הרצאות dot-PHP.
אותו הדבר עבור שבוע אפס php נקודה.
אז יש לנו סוג של סטרוון היגיון בכל המקום,
וזה מרגיש כאילו זה לא הולך
קנה מידה טובה מאוד ברגע שאנחנו יש לא ארבעה אלא ארבעים עמודים
אם כל עמוד מתחיל עם שלי העתקה בגרסה ישנה יותר
של הקובץ ופשוט שחקתי עם כמה
התוכן הפנימי שלו.
אז יש לנו לקחת רק צעד לקראת זה,
ואחד הכלים אנחנו מציגים
ביום רביעי הוא ממסגר נקרא "Laravel"
וזה מאוד במסגרת PHP פופולרית,
האחרים כוללים "Fuelphp".
יש מבוגר אחד בשם "CodeIgniter."
יש אחד בשם "עוגה".
יש אחד שנקרא "סימפוניה".
אני מתכוון אם אתה גוגל מסגרות PHP,
יש זוועתי מספר המסגרות כמו
שאנשים שיישמו.
Laravel הוא אחד עוד מעלה פינות;
זה אחד של שואב אלה, ואתה תמצא
שסופו של דבר זה עוזר תחסוך לכם לא מעט
זמן למרות שיש קצת עקומה למידה,
אבל שאנחנו נדריך לך מעל ביום רביעי.
יתר על כן, אנחנו מציגים מה שנקרא "ORM".
במקרה זה, אנו נשתמש משהו שמגיע
עם מסגרת זו קרא Laravel.
זה נקרא "רהוט" ו זו רק שכבה של קוד
שמאפשר לך בין היתר דברים לדבר עם מסדי נתונים.
וגם כאן, תן לי לגנוב דוגמא שהוא גם האחרון
או נסיגה ל כמה מכם מ50.
אם אתה לא לוקח 50, ו שעשית "CS50 האוצר,"
אולי אתה זוכר את קבצים ש אתה כותב או שכתבת שנראה
ככה, זו הייתה התחברות php נקודה, ובזמן,
במיוחד לאור עובדה שאנו לא מבלה זמן רב
על יסודות php בשלב מוקדם,
אולי את עצמו יש את זה היה די מאתגר,
וכך עשינו, למעשה, אנסה לפשט את העיצוב.
אנחנו לא באמת נפרדים "M" מ" V "מ" C" כל כך הרבה
לבעיות ש "שבע CS50 האוצר,"
אבל שמתי לב דבר אחד שצריך בתקווה להתחיל
לשפשף אותך בקרוב הלא נכון אגב, משהו כזה.
אני מתכוון, לא רק שזה היכנס php נקודת הבקר.
הוא גם דיבר באופן ישיר
למסד נתונים ספציפי המשך שימוש, מה שלא הולך
קנה מידה טובה מאוד כש אתה מתחיל לעבוד עם אחד
או שתיים או שלושה שותפים.
לדוגמא, אם אחד השותפים אחראי
ליצירה שלך טבלאות מסד נתונים ובאים
עם האינדקסים שלך ולהבין
מה המפתח צריך להיות, מפתחות ראשיים, מפתחות הזרים,
וכל זה, להחליט על שמות טבלה וכל זה.
עכשיו אתה האדם האחר ב הקבוצה צריכה לדעת את כל
של החלטות העיצוב שהוא או היא עשתה, ועכשיו אתה צריך
לקוד קשה החלטות אלה לתוך הקובץ שלך, אז עכשיו הוא
או שהיא יפה הרבה מוגבל
אף פעם לא לשנות שוב אלה בטבלת שמות.
לעולם לא עוד לשנות שמות שהוגשו אלה
מבלי ליידע אותך.
יתר על כן, אתה לא יכול באמת בקלות לעבוד על אותו הקובץ
ללא התנגשות אחד עם השני אם הוא
או שהיא כל הזמן שינוי שמות,
ויש לך את הישן גרסאות וכן הלאה,
אז זה רק מזמין המון המון כאבי ראש.
יתר על כן, כפי שאנו יהיו רואה לפני זמן רב,
למרות שאתה לא צריך
לעשות במיוחד שאילתות מתוחכמות כאן,
ברגע שאתה מתחיל נתקלת במספר רב של שולחנות, שני שולחנות, שלוש, חמש,
עשרה שולחנות בMySql או בדרך כלל מסדי נתונים יחסיים,
יש לך להצטרף טבלאות אלה לעתים קרובות, אם מוכר, ויש לך
לשלב נתונים מ אחד עם השני,
ולמען אמת השאילתות בסרט ההמשך שלך מתחיל לקבל יותר ויותר,
ועוד ועוד מורכב, וזה רק מתחיל
כדי לקבל הרבה יותר קל לעשות טעויות
והרבה יותר קשה לקבל את הדברים הנכונים.
וכן כלים כמו רהוט וORM הולך
כדי לעזור לנו מודל הנתונים שלנו ו זה גם הולך בצורה יעילה
כדי ליצור את הקוד שאנחנו צריך להתחיל תשאול מסדי נתונים
בדרכים מתוחכמות יותר.
אז אם יש לך את מפתח ראשי כאן ומפתח זר
כאן, כל מה שאתה צריך לעשות הוא ללמד את ORM ש,
אובייקט Mapper יחס, מה מערכת יחסים שהן
וזה יהיה להבין מה שאילתות לביצוע עבורכם.
ורק בנדיר מקרים שאתה צריכים
לכתוב בהכרח קוד המשך בעצמך.
אם אתה באמת רוצה בסדר משהו מנגינה,
אבל על פי רוב, אתה יכול פשוט להתחיל טיפול בגופים
במסדי הנתונים שלך נכון אובייקטים ולא אלה שורות שטוחות
כי אתה איכשהו צריך לשחזר ולנרמל דה.