>> Um beginnen zu überbrücken, was könnte Ihre einzige Erfahrung sein
mit Web-Programmierung, was ich dachte, ich hätte tun müssen, ist ein paar stehlen
von Beispielen, dass Sie kann in 50 gesehen haben
wenn Sie nahm es die Vergangenheit oder zwei oder auch nicht
wenn Sie es vor ein paar Jahren nahm
Baby, das sind Schritte in Richtung ein Pyridin wissen, wie MBC,
Model View Controller, und was bedeutet das?
Dies ist vielleicht sehen wir uns wieder sehen ist nur eine Möglichkeit von Ausgangs
zu bereinigen, das Design von einigen webbasierte Stück Software,
oder es könnte sein Client-Seite Basis als gut, aber wir werden es nutzen
im Zusammenhang mit PHP, so dass wir beginnen können,
um komplexere machen Projekte und Art
von separaten verschiedene Arten von Code innerhalb der Anwendung;
insbesondere dann, wenn wir haben mehrere Leute arbeiten
an einem Projekt, es ist eine Menge einfacher, Linien zu zeichnen.
Also zuerst Nehmen wir ein Blick auf eine suboptimale Weg
Umsetzung von etwas.
Angenommen, ich wollte ein Super machen Natürlich einfache Website für 50
oder jede andere Klasse und Klasse hat, dass Dinge
wie Vorlesungen und einem Lehrplan.
Ich könnte so etwas wie ein tun h1-Tag an der Spitze meiner Seite
und eine ungeordnete Liste mit li Listenelemente, um
um einfach nur eine Aufzählung von Menüoptionen, so super einfach.
Also, wie können wir das tun?
Nun, lassen Sie mich in meinem gehen Terminal-Fenster hier
und bemerken, dass ich eine Lese bekam mich, und wir werden an diesem Code verlinken
auf der Website der Kurs ein bisschen,
und bemerken, dass ich habe Indexpunkt htm - index php Punkt.
Also lassen Sie mich gehen Sie vor und öffnen das, und sicher genug, es ist eine Art
von dumm, dass diese rief sogar php
weil alles was ich habe ist ein PHP-Kommentar
und dann alles andere ist nur roh HTML-Code.
Aber auch dies ist Version Null,
so ein Schritt in Richtung etwas interessanter,
aber beachten, ich habe hart codiert CS50 wie der Titel, CS50 im h1,
und jetzt habe ich die Vorträge zu verknüpfen,
jetzt habe ich den Lehrplan Link.
Alles klar, so dass nicht scheint alles unvernünftig
bis Sie einen Link wie folgt Vorträge, und Sie erkennen,
dass alles in Ordnung ist es anders Inhalte, sondern es ist eine Art
von der gleichen Sache; es ist ein Titel der Seite und ungeordnete Liste.
Ich klicke Woche von Null letzten Jahr, und es ist eine Art
von der gleichen Sache, eine h1 -Tag und eine ungeordnete Liste
und schließlich ich auf , und ich bis zu einem gewissen Blatt zu bekommen,
welches sind die Folien aus ist dass insbesondere Vortrag.
So etwas sagt mir, Ich bin zu kriechen.
Wenn ich Vorträge eröffnen dot php Ankündigung
, dass es ziemlich viel Kopier-und Einfügen aus der vorherigen Datei;
Ich den Titel geändert, nur um h1, und was diese Links.
Schlimmer noch, wenn ich in Woche null Punkt php,
es ist die gleiche Kopie Paste Job
mit nur ein bisschen Inhalt gezwickt.
So sicher es gibt eine Gelegenheit hier, um zu verbessern,
und sicherlich sollte dies eine gute Faustregel;
wenn Sie das Gefühl, Kopieren Sie sich
und etwas einfügen vielleicht mehr als einmal,
roten Fahnen sollten hoffentlich anfangen zu gehen.
Aber wie gehen wir über die Verbesserung das?
Nun, es gibt ein paar Möglichkeiten, und die Techniken, die Sie verwenden können,
in php haben sich weiterentwickelt Zeit, aber wir versuchen, diese ein.
Lassen Sie mich in eine Version zu gehen, so dass die nächste Iteration dieses,
und lassen Sie mich versuchen, reinigen Sie es ein wenig.
Richtig, einer der PHP- einfachste Mechanismen
Zur Lösung dieses Problems ist die alten Schule erfordern Funktion,
denen ziemlich viel kostet eine Kopie und Einfügen der Inhalte
irgendeiner Datei genau hier, wie c ist scharf sind,
und andere Sprachen haben sehr ähnliche Konstrukte.
So sieht es ein wenig seltsam jetzt,
es ist definitiv nicht ein vervollständigen aussehende Web-Seite,
aber vermutlich, was Innenseite der Kopf dot PHP.
All die anderen Sachen, rechts, das HTML-Tag, der Kopf-Tag,
Der Titel-Tag, das ganze Zeug dass über der Hauptsache ging es
der Seite, die wohl nur die ungeordnete Liste,
und in der Fußzeile ist wahrscheinlich wie die geschlossene body-Tag,
Die geschlossenen html-Tag ist; ziemlich uninteressant
aber doppelte Zeug.
Alles klar, und sicher genug, wenn ich gehe
in Kopf dot php ist es nur Art der Orphan-Fragment
von oben, und wenn ich gehen in Fußzeile dot php,
es ist die verwaiste Fragment von unten,
und ich bin mit den gleichen Fragmente in meinem anderen Dateien,
wie Vorträge dot PHP.
Alles klar, so was ist besser darüber würden Sie sagen?
Ja?
>> Einfachheit.
>> Einfachheit?
Ich weiß nicht, diese Art von Aussehen viel erschreckender, mich jetzt, oder?
>> Wenn ich wollte, ändern Sie Ihre Header, würden Sie nicht
um es in alle ändern früheren wie Dateien.
Sie ändern es einfach in der Kopfzeile.
>> Genau, so vielleicht in Sinn, dass es einfacher ist,
vielleicht würde ich es gestalten, wie es ist nur, es ist einfacher, es zu aktualisieren.
Es ist vielleicht ein wenig sauberer
weil Sie aktualisieren es in nur einem Ort.
Also das ist ziemlich zwingenden; was ist ein Nachteil
dieses Ansatzes oder Welches Problem bleibt
dass wir nicht wirklich gelöst?
Ja?
[Aus Mic Kommentar]
Ja, genau, ich meine, ich bin noch kopieren und einfügen;
es ist ein wenig kleiner, aber nur ich gezogen zwei dieser Dateien,
und sie ziemlich viel sah immer noch identisch.
Es gab bei der ein erfordern Top, ein erfordern an der Unterseite,
und eine ungeordnete Liste in der Mitte
die selbst noch strukturell gleich.
Außerdem merkt das, wenn ich tatsächlich sehen diese beispielsweise
Lassen Sie mich auf die Version One jetzt gehen,
und beachten Sie, ich habe CS50 Vortrag Syllabus.
Uh oh, CS50 Woche Null Woche One und CS50 Mittwoch Freitag,
Ich habe eine Art geschnitten Ecke.
Was war - was waren diese Titel zuvor?
[Aus Mic Kommentar]
Sie waren wie Vorlesungen in Woche Zero, wie es war Art
von sexier, und es tatsächlich hatte etwas Dynamik zu ihm,
und dies ist eine Art - ich bin nur irgendwie jetzt stochern
und nur unter der Annahme, dass die gesamte Website ist CS50
und okay, es funktioniert, aber es ist sicherlich nicht so elegant
oder als eine Art gerade weiterzuleiten, wie es einmal war,
aber das macht Sinn, weil wenn Sie an der Indexpunkt php aussehen
und Vorträge dot php und Nullpunkt Woche php,
sie sind alle mit die gleiche Datei,
wie können wir verbessern das?
Was ist die nächste Iteration der dieser Code wahrscheinlich zu tun?
[Aus Mic Kommentar]
Ja, genau, also, wenn - und lassen Sie mich zusammenfassen
mit wollen wir im Wesentlichen , dass die Kopf parametrieren
so dass ja, es ist immer noch ein hart codiert h1-Tag, aber das Zeug
zwischen der offenen und die enge Tag,
Vermutlich dynamisch und aus etwas anderes.
Vielleicht ist das "get-String" oder die Sache nach der das Fragezeichen
in der URL die irgendwo sonst, so lassen Sie uns einen Blick.
Also, wenn ich in Version zwei zu gehen,
jetzt feststellen, dass ich habe bekam eine zusätzliche Datei,
es sieht aus wie Helfer dot PHP.
Ich weiß wirklich nicht, wo man beginnen, so werde ich nur starten
bei Index wie wie immer, und jetzt bemerken, dass es ein wenig anders,
so habe ich eine Linie erfordern bekam
an der Spitze erforderlich Helfer dot php,
aber ich kann es nennen was auch immer ich will,
aber jetzt bemerken Linie drei gibt es einen Funktionsaufruf
Header zu machen, das ist nur insofern interessant
als was wird übergeben offenbar, die eigenen Titel
für diese besondere Seite.
Inzwischen gibt es machen Fußzeile am unteren Rand,
und ich brauche keine Parametrierung gibt es nur
eine Fußzeile, aber jetzt scheint es
ein Schritt in Richtung einer besser sein Lösung, machen Kopf nimmt,
und was tun dem Platz Klammern geben für diejenigen,
php, die nicht gesehen haben überhaupt oder in eine Weile?
[Aus Mic Kommentar]
Ja, es ist ein Array.
Es ist ein assoziatives Array oder ein Hash-Schlüssel, die verbindet
mit Werten; es ist wie Java Scripts, Einspruch Notation
oder anderen Sprachen, ähnlich syntaxs.
Alles klar, so was ist Helfer in dot php?
In Helfer dot php es ist nur ein paar Funktionen,
render Kopf-und Fußzeile machen.
So ein paar Details wenn weniger vertraut,
so vor allem die Tatsache,
machen, dass Header findet ein Daten Argument, dass offenbar ist
die leere zugeordnet Array es bedeutet was?
Was bedeutet es, tun Gleichen Klammer auf Klammer geschlossen
als Parameter in php?
Es ist der Standardwert.
Also, wenn ich nicht an Array übergeben oder was auch immer ein Argument
an die Render Kopf-oder die Render-footer-Funktion,
Ich kann zumindest das Vertrauen als Autor dieser Funktionen
dass die Daten minimal sein, ein leeres Array;
es wird nicht undefinierte oder falsch, oder so ähnlich,
es wird genau das, was Ich habe es als Standard.
Nun, das ist ein bisschen eine Art von ein hackish Art der Beladung Symbole
in Ihren Namensraum sozusagen
aber es funktioniert recht auch zu diesem Zweck
der Umsetzung unserer eigenen Art Template-Engine des armen Mannes.
Na gut, es gibt eine Menge von Tools gibt für Python Ruby-
und PHP, die Ihnen Template-Funktionen
und das ist genau das, was wir wollen.
Wir wollen eine Vorlage, die eine hat h1-Tag offen, geschlossen ein h1-Tag,
und irgendwie ein Ort, Halter in der Mitte,
und wir diese Stelle besetzen wollen Aktionäre durch die Ausgabe von dieser Funktion
so dass diese Funktion extrahieren passiert einfach so,
Sie die folgende zu geben Funktionen.
Wenn Sie ein assoziatives haben von Array mit Schlüssel-Wert-Paare
wie foo bar entspricht, zu extrahieren wird eine lokale Variable erstellen
genannt effektiv Dollar-Zeichen foo und geben Sie ihm einen Wert von Bar
so kann es Ihre assoziative explodiert Array von Schlüssel-Wert-Paare
in neue Variablen mit die entsprechenden Werte.
Und dann benötigen Punkttitel Punkt PHP ist die gleiche wie zuvor,
so was werden wir wahrscheinlich innerhalb von Header-Punkt php sehen?
Es ist wahrscheinlich habe, dass die H1-Tag und die enge Tag; was ist los
innerhalb der es wahrscheinlich zwischen ihm?
[Aus Mic Kommentar]
Genau, es gibt wahrscheinlich einige Erwähnung von Dollarzeichen Titel
und sicher genug, wenn ich Bilder in dazu da ist mein Titel-Tag,
da ist mein h1-Tag, und im Inneren der ist es ein dynamisches Einfügen
von Dollar-Zeichen Titel, aber nur für eine gute Maßnahme,
Ich mache diesen HTML Sonder laden grausam benannt
Funktion, aber es ist nützlich; was tut sie
oder was hat es gegen zu schützen?
Dies ist tatsächlich eine Lösung zu einer Bedrohung werden Sie andeuten;
Sie würde uns geführt haben.
[Aus Mic Kommentar]
Genau, so dass, wenn ein böswilliger Benutzer oder ein ahnungsloses Opfer
von einem Phishing-Angriff auf einen Link geklickt
dass in der Selbst hatte ein Fragezeichen und so etwas wie foo entspricht,
und dann wird der Wert von foo war eigentlich
wie offene Klammer Skript, geschlossene Klammer,
und dann einige JavaScript-Code;
wenn man nicht nennen dies lange Hauptfunktion,
Sie tatsächlich infiziert werden raw html in Ihre Web-Seite,
das Ergebnis davon ist, dass Sie vielleicht ausgetrickst werden.
Vielleicht trickst den Benutzer in JavaScript-Code ausführen
dass er oder sie tat nicht wirklich wollen.
Und auch wenn in der Regel Sie nur sich selbst verletzen,
Sie wissen, wie es nur ein Idiot wird sich geben
in Klammer auf Skript, geschlossenen Klammer, und sagen Benachrichtigung
oder so ähnlich und tun sich selbst
Mit einem seltsamen Ergebnis, wenn Sie ausgetrickst zu bekommen
zum Klicken auf einen Link, der hat Roh JavaScript in sie eingebettet
als Wert dieses Attributs,
Sie können unter anderem jemand Cookies stehlen
weil es eine Eigenschaft genannte Dokument dot Cookie
in JavaScript, das Ihnen erlaubt um Session-Cookie eines Benutzers zu packen,
und wenn Sie sich erinnern, was für ein Session-Hijacking-Angriff ist,
Kurz gesagt, das ist einer, dass Weg tatsächlich jemand trickst
in Ihnen, dass die virtuelle Handstempel und dann mit
über ihre Facebook-Account oder eine andere Art von Konto.
Alles klar, so dass diese ist ein wenig lang,
aber es ist nur mit Roh-HTML-Code.
Dies entspricht Aufruf Echo
oder effektiv zu drucken, und wir im Wesentlichen Einsetzen
dass dynamisch.
Also, was bleibt mehr hier?
Nun, lassen Sie mich in zu gehen Drei Version hier
und wir werden sehen, ein etwas anders -
gleiche genaue Dateilayout aber Bekanntmachung
dass diese Zeit, die wir zu gehen verallgemeinern, die Kopf-und Fußzeile
als Vorlagen, so was meine ich damit?
Was ist die eine Sache, das ist hier anders?
Was hat sich seitdem geändert die letzte Version?
Subtil, aber es ist wohl nur eine bessere Reinigungs Design.
Ja?
[Aus Mic Kommentar]
Ja, es gibt nur eine Standard-Render-Funktion;
Ich habe nicht Sonderfall machen Kopf-oder Fußzeile zu machen,
die beide, wenn Sie Rückruf von Helfern dot php,
wir sind ziemlich identisch außer ihrem Namen
und sie die Vorlagen enthalten.
Warum nicht einfach parametrieren die Render-Funktion
und ein Argument, das ist den Namen der Vorlage,
und eine zweite optionale Argument dass die Schlüssel-Wert-Paare
dass Sie stecker wollen
Also, wenn ich nun einen Blick auf Helfer dot php Ankündigung
dass ich ein wenig schicker jetzt.
Ich bin eigentlich funktioniert die Überprüfung Datei vorhanden und wenn so gehen Sie vor
und es erfordern; für alle Fälle der Benutzer versehentlich Typen
in etwa einer gefälschten Templatenamen wollen nicht einen Fehler aus
im Programm, so können wir minimal tun sie dies
begünstigen hier.
In Ordnung, aber wir können nehmen einen Schritt weiter?
In dieser Version finden Sie hier beachten Sie die folgenden.
Ich habe gerade getippt ls und was springt sofort
Sie ist etwas anders.
Also gibt es zwei Verzeichnisse, rechts,
und so ist dies nun ein Schritt in Richtung , was schließlich eine mehr sein
geeigneten Rahmen.
Dies ist eine Art schlampig von mir, werden alle werfen
meiner Inhalte innerhalb von ein öffentlich zugänglichen Verzeichnis
wörtlich heißt Öffentlichkeit.
Und auch wenn leider eine Menge von Frameworks,
vor allem ältere, und sogar einige Web-Beiträge,
Traum-Host unter ihnen, Kräfte Sie alle Ihre Dateien ablegen
in das Äquivalent einer öffentlichen Verzeichnis selbst
wenn Ihre Dateien könnte sind Datenbank-Passwörter
und Benutzernamen oder andere solche Anmeldeinformationen,
das ist gar nicht gut Design.
Viel besser ist nur gestellt
im öffentlichen Verzeichnis was hat absolut
um Benutzer zugänglich sein, und alles andere
Sie sind auch wie Helfer dot php,
es gibt keinen Grund, dass sollte über ein Web zugänglich sein
Browser mit einer URL.
Es könnte ganz harmlos sein wenn der Benutzer vielleicht sehen will
die Paare, aber es ist nur das Prinzip ist,
und Gott bewahre es tatsächlich Benutzernamen oder Passwort;
Sie wollen nicht die Benutzer versehentlich
oder absichtlich sein auf ihn zugreifen.
Also sind wir nicht ganz auf eine perfekte Ansatz hier
aber beachten, jetzt die folgenden.
Im Indexpunkt php, feststellen, dass Ich bin immer noch Helfer benötigt,
aber ich mache es so, dass ich Art von Organisation aller
der Dateien, die werden eingeschlossen
in ein Unterverzeichnis namens herkömmlicherweise,
und dann rufe ich machen für Kopf-und Fußzeile wie zuvor.
Also das einzige, was Ich getan habe, ist eine Art
meine Verzeichnisse von reorganisieren ein wenig mehr sein anal
über die Datei-Struktur.
Aber wenn wir jetzt zu gehen Dieses fünfte Beispiel
hier bemerken, dass wir jetzt haben ein Trio von Ordnern,
und das ist ein bisschen irreführend vor
wegen der Einfachheit im Interesse der Klasse,
Ich habe gerade alles geworfen
in John Harvard Öffentliches Verzeichnis nur
so können wir es über navigieren ein Browser, aber Bekanntmachung -
diesen Teil ignorieren nur für einen Augenblick,
die Tatsache, dass ich dort.
Beachten Sie, dass ich drei haben Unterverzeichnisse: Öffentlichkeit,
Vorlagen und schließt.
Die Idee ist nun, dass in einem richtig konfiguriert Webserver I
Apache würde sagen, dass diese Webseite öffentlich zugänglich
Dateien hier und sonst nirgends.
Also, was denken Sie, Datei Ich werde nach innen zu sehen
der Öffentlichkeit, wenn ich ls?
Was ist mindestens eine Datei das ist wohl drin?
[Aus Mic Kommentar]
Okay, Indexpunkt php, und Welche Datei ist natürlich nicht
dort unter anderem?
Wie Helfer dot php, Kopf dot php, php footer Punkt;
alle Fragmente, alle Funktionen
das nicht wirklich brauchen öffentlich zugänglich sein sollen,
es braucht verwendbar zu sein von den Dateien
, die öffentlich zugänglich sind, aber sie selbst,
kein Benutzer muss sehen, oder erfordern eine URL für die Helfer dot PHP.
Beachten Sie, dass, wenn ich statt
in beinhaltet es Helfer dot php,
und wenn ich in Vorlagen zu gehen,
es gibt Fußzeile und php header Punkt.
Ehrlich gesagt, könnte ich haben sie in dem Verzeichnis,
aber ich versuche zu sein, auch mehr anal-Dateien über das Halten
, die einfach irgendwie sind statischen Templates verschiedenen
von Funktions Dateien wie Helfer dot php,
und ich bin nur einige anhaftende ziemlich häufig Konventionen
Aufruf der Verzeichnisse umfasst und Vorlagen.
So ist die einzige Sache, die verändert, dann ist wieder der Weg.
Wenn wir hier feststellen, dass ich jetzt nur noch
eine relative Verzeichnis gehören,
dot dot Schrägstrich beinhaltet Helfer dot php,
oder ich kann ein wenig mehr sein richtige und tatsächlich etwas tun,
wie diese, PHP und eine Menge
von Sprachen haben diese Sonderzeichen
dass die Betreiber Verzeichnis der aktuellen Datei,
so unterstreichen Strich dir streichen Strich repräsentiert
was auch immer-Verzeichnis ist dieser Datei
und so, wenn Sie gerade verketten mit dem Punkt-Operator, dass
das zu erreichen wäre das gleiche Ergebnis,
und neigt dazu, ein wenig mehr robust, weil man bekommen kann
in Situationen mit relativer Verzeichnisse wurden nur sagen dot
oder Punkt Punkt kann tatsächlich bringen Sie an der falschen Stelle,
so dass dieser tendenziell etwas robuster.
Alles klar, so was bleibt aber?
Was möchten Sie noch nicht, wie wäre es damit?
Was könnte verbessert werden, und Sie Sie kommentierte früheren Ich denke,
dass es noch einige Fragen?
[Aus Mic Kommentar]
Richtig, doch wir haben nicht Schreiben wie Websites, um zu starten
das aussehen, oder?
Das fühlt sich nicht dass alle viel besser,
es gibt noch kopieren und einfügen.
Ich habe immer noch die erfordern Linie an der Spitze.
Ich habe immer noch machen Header machen Fußzeile.
Es gibt eine Menge von Doppel.
Ja?
[Aus Mic Kommentar]
Ja, genau, so dass wir eine genommen haben Schritt zur Art der Spaltung
bis die "c" von der "v", so MVC ist Model View Controller;
Controller ist eine Art der Gehirne der Anwendung.
Modell dazu neigt, die Daten sein, oder eine gemeinsame Funktionalität,
Ansicht und neigt dazu, die sein Ästhetik, die Vorlage,
so haben wir einen Schritt in Richtung genommen Trennen der "c" aus der "v"
weil wir jetzt zumindest Verzeichnis dieses Template,
aber auch dort haben wir im Wesentlichen haben einen Controller pro Datei.
Es sieht nicht wie es ist viel Logik geht hier,
Indexpunkt aber php ist eine Steuerung wirksam.
Wenn Sie eine URL besuchen und endet in Indexpunkt php,
die gesamte Logik, die implementiert die Seite ist richtig
in Index-Punkt php, und elbe für Vorträge dot PHP.
Das gleiche gilt für Woche Null-Punkt-php.
Also haben wir unsere Art von strone Logik ganz über dem Platz,
und es fühlt sich an wie das wird nicht
einmal haben wir sehr gut skalieren haben nicht vier, sondern vierzig Seiten
wenn jede Seite beginnt mit Kopieren Sie mir eine ältere Version
der Datei und nur Tweaking einige
der Inhalt darin.
Also haben wir nur getroffen ein Schritt in Richtung dieses,
und eines der Werkzeuge wir einführen
am Mittwoch ist ein Framer genannte "Laravel"
und dies ist sehr beliebte PHP-Framework,
andere, die sind "Fuelphp."
Es ist ein älteres als "Codeigniter."
Es gibt sogenannte "Kuchen".
Es gibt sogenannte "Symphony".
Ich meine, wenn Sie Google PHP-Frameworks,
gibt es eine grauen Anzahl von Frameworks wie
dass die Menschen, die implementiert.
Laravel ist eine der mehr und Ecken;
es ist eines der Reinigungs Einsen, und du wirst finden
dass letztlich hilft es sparen Sie einiges
der Zeit, obwohl es ein bisschen eine Lernkurve,
aber, dass wir führen Sie über am Mittwoch.
Darüber hinaus werden wir einführen was heißt ein "ORM".
In diesem Fall werden wir nutzen etwas, das kommt
mit diesem Rahmen Laravel genannt.
Es heißt "Eloquent" und dies ist nur ein Codeschicht
, mit dem Sie unter anderem Dinge zu sprechen zu Datenbanken.
Und auch hier möchte ich stehlen ein Beispiel, das entweder den letzten ist
oder ein Rückschritt für die einige von euch ab 50.
Wenn Sie nehmen 50 und Sie taten "CS50 Finance"
Sie erinnern daran, dass möglicherweise Dateien Sie schreiben, oder umgeschrieben, die aussehen
wie diese, diese Login war dot php, und zu der Zeit,
zumal wir nicht viel Zeit damit verbringen,
auf PHP-Grundlagen früh,
dies könnte sich haben war ziemlich anspruchsvoll,
und so haben wir in der Tat, versuchen, um das Design zu vereinfachen.
Wir haben nicht wirklich trennen "M" von "V" von "C", dass alle viel
Bei Problemen, die "Sieben CS50 Finance"
aber beachten, die eine Sache, dass hoffentlich starten sollte
bald reiben Sie die falsche So etwas wie dieses.
Ich meine, nicht nur war dieser einloggen dot php einen Controller.
Es wurde auch direkt im Gespräch
einer Datenbank spezifisch mit Fortsetzung, die nicht geht
sehr gut skalieren, wenn Sie arbeiten mit einem Start
oder zwei oder drei Partnern.
Zum Beispiel, wenn eine der Partner ist verantwortlich
für die Erstellung Ihrer Datenbanktabellen und kommen
mit Ihrer Indizes und herauszufinden
Sie heraus, was der Schlüssel sein sollte, die Primärschlüssel, Fremdschlüssel,
und das alles, die Entscheidung über die Tabellennamen und das alles.
Jetzt können Sie die andere Person in die Gruppe muss alle wissen,
der Design-Entscheidungen, die er oder sie gemacht hat, und was Sie jetzt brauchen
hart zu codieren diese Entscheidungen in Ihre Datei, so dass er jetzt
oder sie hübsch ist sehr eingeschränkt
nie wieder ändern diese Tabellennamen.
Nie wieder ändern diese Feldnamen
ohne Sie zu informieren.
Darüber hinaus können Sie nicht wirklich leicht auf der gleichen Datei arbeiten
ohne Kollision miteinander, wenn er
oder sie ist ständig wechselnden Namen,
und Sie haben die alte Versionen usw.
so ist dies gerade einladend viele, viele Kopfschmerzen.
Darüber hinaus, wie wir sehen, bevor lang,
auch wenn Sie nicht brauchen
besonders zu tun anspruchsvolle Anfragen hier
sobald Sie beginnen, die mehrere Tabellen zwei Tabellen, drei, fünf,
zehn Tabellen in einer MySQL-oder Regel eine relationale Datenbank,
Sie haben die Tabellen verbinden oft, wenn vertraut, und Sie haben
Daten aus kombinieren eine mit dem anderen,
und ehrlich gesagt, Ihre Anfragen Fortsetzung beginnen mehr und mehr zu bekommen,
und mehr und mehr komplex, und es beginnt gerade
viel einfacher zu bekommen , Fehler zu machen
und viel schwieriger zu Dinge richtig.
Und so Tools wie Eloquent und ORM wird
uns zu helfen, unsere Daten zu modellieren und es ist auch effektiver gehen
, um den Code zu generieren, die wir brauchen, um die Abfrage von Datenbanken
in anspruchsvoller Weise.
Also, wenn Sie einen Primärschlüssel haben hier und ein Fremdschlüssel
hier alles, was Sie brauchen zu tun ist, lehren, dass ORM,
Objekt-Relation Mapper, was diese Beziehung
und es wird herausfinden, was Abfragen, um für Sie ausführen.
Und nur in seltenen Fällen brauchen Sie
unbedingt schreiben Fortsetzung Code selber.
Wenn Sie wirklich wollen, Feinabstimmung etwas,
aber in den meisten Fällen, können Sie starten Sie einfach die Behandlung von Personen
in Ihren Datenbanken als wahr Objekte und nicht diese flachen Reihen
dass Sie irgendwie müssen rekonstruieren und de normalisieren.