1 00:00:00,000 --> 00:00:02,150 >> [Seminar] [Kohana: Ein Leichtgewicht PHP Framework] 2 00:00:02,150 --> 00:00:04,000 [Brandon Liu] [Harvard University] 3 00:00:04,000 --> 00:00:07,270 [Dies ist CS50.] [CS50.TV] 4 00:00:07,270 --> 00:00:09,130 >> Hallo allerseits. Mein Name ist Brandon. 5 00:00:09,130 --> 00:00:11,000 Ich bin hier in der Junior-College Informatik, und heute werden wir, darüber zu sprechen 6 00:00:11,000 --> 00:00:14,460 Kohana, die ein PHP-Web-Entwicklungs-Framework ist. 7 00:00:14,460 --> 00:00:17,260 Heute wird ein Live-Codierung Seminar sein, 8 00:00:17,260 --> 00:00:21,000 so bin ich im Grunde geht auf 5-10 Minuten Zeit zu erklären, was Kohana ist, 9 00:00:21,000 --> 00:00:25,000 und dann bin ich buchstäblich werde ein super einfaches Blog bauen 10 00:00:25,000 --> 00:00:28,570 für Sie gleich hier buchstäblich von Grund auf. 11 00:00:28,570 --> 00:00:32,229 Wir werden den Code aus dem Kohana Website herunterladen, 12 00:00:32,229 --> 00:00:35,000 und wir werden beginnen, eine Blog, und hoffentlich ist das dann sehr aufschlussreich sein, 13 00:00:35,000 --> 00:00:37,000 vielleicht, weil Sie vielleicht sehen, werde ich einige Fehler machen, 14 00:00:37,000 --> 00:00:39,000 und Sie werden sehen, mich von ihnen zu erholen, 15 00:00:39,000 --> 00:00:42,040 oder du wirst mein Gedankengang zu sehen, wie baue ich durch diesen Blog, 16 00:00:42,040 --> 00:00:44,000 und in der Zwischenzeit, dann erhalten Sie auch mit dem Framework selbst vertraut. 17 00:00:44,000 --> 00:00:48,000 Hoffentlich wird es ein sehr lehr Übung sein. 18 00:00:48,000 --> 00:00:51,370 >> Erstens, was genau ist ein Framework? 19 00:00:51,370 --> 00:00:54,000 Wenn du genommen hast CS50 so weit, du nicht wirklich mit jedem gearbeitet haben 20 00:00:54,000 --> 00:00:56,000 Rahmenbedingungen noch nicht, und die Sache ist diese. 21 00:00:56,000 --> 00:01:00,000 Sie haben wahrscheinlich ein Web-Entwicklung getan pset bereits, 22 00:01:00,000 --> 00:01:03,000 und sagen wir, Sie auch weiterhin um Websites zu bauen und halten den Aufbau von Webseiten. 23 00:01:03,000 --> 00:01:05,000 Sie beginnen, ein paar Dinge zu bemerken. 24 00:01:05,000 --> 00:01:07,000 Das erste, was Sie bemerken ist, dass Sie wahrscheinlich die gleichen Dinge tun 25 00:01:07,000 --> 00:01:09,150 immer wieder die ganze Zeit, 26 00:01:09,150 --> 00:01:13,000 Dinge wie Reinigungsbenutzereingabedaten, 27 00:01:13,000 --> 00:01:17,250 Dinge wie die Organisation Ihrer Dateien in einer bestimmten Weise. 28 00:01:17,250 --> 00:01:19,000 Die andere Sache, die Sie wahrscheinlich auch auffällt, ist, dass der Code 29 00:01:19,000 --> 00:01:21,000 kann beginnen, sehr, sehr chaotisch, 30 00:01:21,000 --> 00:01:24,000 und Sie können es zu verlassen chaotisch und nur noch eine sehr harte Zeit Aufrechterhaltung es, 31 00:01:24,000 --> 00:01:26,000 oder Sie können beginnen, Ihren Code zu strukturieren und es modular 32 00:01:26,000 --> 00:01:28,510 in gewisser Weise es besser verwaltbar zu machen. 33 00:01:28,510 --> 00:01:31,020 >> Dies ist, wo Web-Frameworks im Grunde kam herein 34 00:01:31,020 --> 00:01:33,680 Diese Leute, die eine Vielzahl von Websites gebaut hatte, sagten sie, 35 00:01:33,680 --> 00:01:35,820 "Wir brauchen nicht diese wiederholen jedes einzelne Mal, wenn wir eine Website zu bauen." 36 00:01:35,820 --> 00:01:39,050 "Warum gehen wir nicht einfach ein Paket, das alle diese Dinge für Sie macht 37 00:01:39,050 --> 00:01:41,250 jedes einzelne Mal, wenn Sie wollen, eine Website zu bauen? " 38 00:01:41,250 --> 00:01:43,030 Und so, dass, wenn Sie eine neue Website zu machen, 39 00:01:43,030 --> 00:01:45,880 Sie nur darauf konzentrieren, was genau diese besondere Website geht. 40 00:01:45,880 --> 00:01:48,630 Sie brauchen nicht, um alle verschiedenen Konfigurations wiederholen 41 00:01:48,630 --> 00:01:53,070 und die Trennung von Codes und Code neu zu schreiben 42 00:01:53,070 --> 00:01:56,180 Sie haben oft zu tun, wenn Sie die Erstellung von Webseiten sind. 43 00:01:56,180 --> 00:01:59,410 Die Idee ist, dass ein Rahmen können Sie einen übergeordneten Code schreiben 44 00:01:59,410 --> 00:02:01,030 ohne sich um untergeordnete Details kümmern. 45 00:02:01,030 --> 00:02:03,670 Ein niedrigerer Ebene Detail könnte so etwas wie sein 46 00:02:03,670 --> 00:02:07,250 Umgang mit Reinigungsbenutzereingabedaten. 47 00:02:07,250 --> 00:02:09,320 Das ist etwas, dass Sie nicht wirklich brauchen, zu kümmern. 48 00:02:09,320 --> 00:02:12,370 Sie sollten auf das, was Ihre Web-Allokation ist tatsächlich etwa zu konzentrieren. 49 00:02:12,370 --> 00:02:14,790 Es beseitigt eine Menge Standardcode. 50 00:02:14,790 --> 00:02:16,640 Es ist eine Architektur für Ihr Projekt. 51 00:02:16,640 --> 00:02:18,680 >> Die beliebteste man Model-View-Controller sein 52 00:02:18,680 --> 00:02:20,380 die werde ich über in einem zweiten, zu sprechen. 53 00:02:20,380 --> 00:02:22,790 Und viele Male diese Rahmenbedingungen verkörpern eine Reihe von Verfahren, 54 00:02:22,790 --> 00:02:25,750 Regeln und Best Practices für Sie zu nutzen 55 00:02:25,750 --> 00:02:28,190 so dass, wenn Sie das Web-Framework übernehmen 56 00:02:28,190 --> 00:02:30,050 müssen Sie Ihren Code in einer bestimmten Art und Weise zu schreiben, 57 00:02:30,050 --> 00:02:32,430 und es ist in der Regel eine Reihe von Grundsätzen, nach vereinbarten 58 00:02:32,430 --> 00:02:34,290 von der Gemeinde, die allgemein akzeptiert wird, zu sein 59 00:02:34,290 --> 00:02:36,230 eine gute Möglichkeit, das Schreiben von Code. 60 00:02:36,230 --> 00:02:38,260 Es macht den Code wartbar mehr nutzbar, 61 00:02:38,260 --> 00:02:40,030 so weiter und so fort. 62 00:02:40,030 --> 00:02:42,740 Und schließlich ist das, was ich möchte über Rahmenbedingungen betonen 63 00:02:42,740 --> 00:02:45,980 gegenüber Bibliotheken ist diese Idee über Inversion of Control, und die Sache ist diese. 64 00:02:45,980 --> 00:02:48,430 Der Unterschied zwischen einer Bibliothek und einem Rahmen ist, dass mit einer Bibliothek 65 00:02:48,430 --> 00:02:51,990 Sie schreibt immer noch das Hauptprogramm, 66 00:02:51,990 --> 00:02:54,460 und du bist Art von Aufrufen der Bibliothek 67 00:02:54,460 --> 00:02:56,810 und der Aufforderung an die Bibliothek, um etwas für Sie zu tun. 68 00:02:56,810 --> 00:02:58,180 Der Unterschied zwischen einer Bibliothek und einer Rahmen 69 00:02:58,180 --> 00:03:01,620 ist, dass der Rahmen beginnt mit der Steuerung, 70 00:03:01,620 --> 00:03:03,260 und es Ihren Code aufruft, 71 00:03:03,260 --> 00:03:06,190 so dass Sie es als denken können - das ist, warum es heißt ein Rahmen - 72 00:03:06,190 --> 00:03:09,700 das Framework diesen Rahmen und Struktur für den Code, 73 00:03:09,700 --> 00:03:11,320 und Sie in die Löcher zu füllen, 74 00:03:11,320 --> 00:03:13,990 und dies wird sich in einem zweiten deutlicher 75 00:03:13,990 --> 00:03:16,670 wenn Sie sehen mich beginnen, um Code im Kontext des Rahmen schreiben. 76 00:03:16,670 --> 00:03:19,130 Du wirst sehen, dass ich in die Lücken füllt, 77 00:03:19,130 --> 00:03:22,450 und der Rahmen Art von Steuerung aller beweglichen Teile, 78 00:03:22,450 --> 00:03:27,420 und ich habe die Stücke an den richtigen Stellen setzen. 79 00:03:27,420 --> 00:03:29,360 >> Heute werden wir über Kohana zu sprechen, 80 00:03:29,360 --> 00:03:31,610 Das ist eine von vielen PHP-Frameworks. 81 00:03:31,610 --> 00:03:34,550 Es gibt Web-Frameworks, und es gibt diejenigen, in praktisch jeder einzelnen Sprache, 82 00:03:34,550 --> 00:03:38,330 und ich bin Kommissionierung Kohana weil Kohana ist wohl 83 00:03:38,330 --> 00:03:43,250 und in der Regel als die einfachste PHP-Framework zu holen anerkannt. 84 00:03:43,250 --> 00:03:45,940 Es ist das leicht. 85 00:03:45,940 --> 00:03:48,470 Es gibt andere, die da draußen, die mit vielen, vielen mehr Features kommen, 86 00:03:48,470 --> 00:03:51,590 aber sie sind eher schwer zu holen. 87 00:03:51,590 --> 00:03:54,920 Und schließlich nutzt Kohana das MVC-Architektur. 88 00:03:54,920 --> 00:03:57,780 Es ist leicht genug, dass wir buchstäblich ein Projekt erstellen 89 00:03:57,780 --> 00:03:59,620 hier direkt vor deinen Augen, und man kann ziemlich viel 90 00:03:59,620 --> 00:04:02,780 folgen ziemlich leicht. 91 00:04:02,780 --> 00:04:04,420 >> Was ist der MVC-Architektur? 92 00:04:04,420 --> 00:04:06,540 Es steht für Model-View-Controller 93 00:04:06,540 --> 00:04:09,560 und vielleicht, wenn Sie über den Code denken, Sie haben bisher schriftlich 94 00:04:09,560 --> 00:04:11,280 für einige Ihrer Web-Entwicklung psets 95 00:04:11,280 --> 00:04:14,710 Sie kann in der Lage, einige davon zu sehen sein, aber in der Regel, wenn Sie mit dem Schreiben beginnen 96 00:04:14,710 --> 00:04:16,500 eine komplexe Web-Anwendung, 97 00:04:16,500 --> 00:04:21,209 die Teilung zwischen den Segmenten 3 wird mehr und mehr offensichtlich. 98 00:04:21,209 --> 00:04:26,740 Ich legte hier das MVC-Art als Stapel, 99 00:04:26,740 --> 00:04:29,920 und oft werden Sie hören die Menschen über Stapel sprechen in Web-Entwicklung, 100 00:04:29,920 --> 00:04:33,760 und dies ist die Idee verdeutlichen, dass 101 00:04:33,760 --> 00:04:37,510 jede Schicht, jedes Bauteil wirklich versucht, nur zu kommunizieren 102 00:04:37,510 --> 00:04:40,750 zwischen zwei anderen Komponenten. 103 00:04:40,750 --> 00:04:44,550 Jemand greift auf Ihre Website als Client oder einem Browser. 104 00:04:44,550 --> 00:04:48,870 Sie interagieren mit Ihrem Programm über die Sicht-Code. 105 00:04:48,870 --> 00:04:50,500 Die Aussicht Code interagiert mit dem Controller. 106 00:04:50,500 --> 00:04:52,400 Der Controller mit dem Modell, 107 00:04:52,400 --> 00:04:55,090 und das Modell interagiert mit der SQL-Datenbank. 108 00:04:55,090 --> 00:04:59,670 Und es gibt keine Hopping zwischen, wenn Sie Ihren Code richtig schreiben. 109 00:04:59,670 --> 00:05:01,670 >> Was haben diese Dinge zu tun? 110 00:05:01,670 --> 00:05:06,020 Das Modell ist im Wesentlichen das Stück Code, mit Ihren Daten befasst. 111 00:05:06,020 --> 00:05:09,100 Alles, was mit der Datenbank beschäftigt, mit den Objekten, die Sie speichern, 112 00:05:09,100 --> 00:05:11,280 oder Abrufen dieser Objekte in der Datenbank, 113 00:05:11,280 --> 00:05:13,450 das ist alles durch das Modell abgewickelt. 114 00:05:13,450 --> 00:05:15,290 Vielleicht haben Sie Objekte in der Datenbank. 115 00:05:15,290 --> 00:05:17,700 Wir werden ein Modell mit, um mit zu tun Beiträge zu erstellen, 116 00:05:17,700 --> 00:05:19,760 so ein Post kann einige Attribute, die es haben. 117 00:05:19,760 --> 00:05:23,900 Sie können Funktionen rund um die Speicherung dieser Beiträge oder Abrufen Beiträge haben 118 00:05:23,900 --> 00:05:26,270 oder Filtern der Beiträge und so weiter und so fort, 119 00:05:26,270 --> 00:05:28,880 und das ist alles, der Code, der durch das Modell behandelt ist. 120 00:05:28,880 --> 00:05:31,780 Der Controller ist eine Art der Anwendungslogik, 121 00:05:31,780 --> 00:05:37,910 und eine Menge verschiedener Dinge können in der Anwendungslogik zu gehen. 122 00:05:37,910 --> 00:05:39,790 Wenn Sie zu einer anderen API sprechen, 123 00:05:39,790 --> 00:05:42,310 das sein kann, wo man mit der Anwendungslogik zu tun. 124 00:05:42,310 --> 00:05:47,990 Wenn Sie versuchen, Daten aus mehreren verschiedenen Modellen bringen zu haben sind 125 00:05:47,990 --> 00:05:51,540 und müssen sie in irgendeiner Weise zu kombinieren, dass häufig durch die Steuereinrichtung verarbeitet werden. 126 00:05:51,540 --> 00:05:53,820 Zum Beispiel auf Facebook, wenn Sie Freund jemand, 127 00:05:53,820 --> 00:05:58,500 dann vielleicht, dass Akt der Gründung diese Beziehung 128 00:05:58,500 --> 00:06:00,490 kann durch die Steuerung erfolgen. 129 00:06:00,490 --> 00:06:04,350 >> Und schließlich, ist die Ansicht der Code, der Erzeugung ist, was Sie wirklich sehen. 130 00:06:04,350 --> 00:06:07,410 Eine Menge Zeit, ich denke, in den CS50 psets 131 00:06:07,410 --> 00:06:10,050 sie nicht wirklich ermutigen euch, diese drei Dinge zu trennen. 132 00:06:10,050 --> 00:06:12,430 Sie werden wahrscheinlich haben diese große, lange Datei, in der an der Spitze 133 00:06:12,430 --> 00:06:15,130 Sie einige SQL-Abfrage machen und vielleicht tun einige Verarbeitungs 134 00:06:15,130 --> 00:06:17,020 auf die Daten aus der Datenbank abgerufen, 135 00:06:17,020 --> 00:06:19,370 und dann haben Sie alle Ihre HTML an der Unterseite. 136 00:06:19,370 --> 00:06:22,840 Und Sie können feststellen, dass Sie mehr und mehr Seiten zu erstellen 137 00:06:22,840 --> 00:06:25,790 dass Sie gehen, um etwas Code Wiederholung zu haben, und auch, 138 00:06:25,790 --> 00:06:29,600 die Sache ist, die Datei wird wirklich große und lange 139 00:06:29,600 --> 00:06:32,370 und unhandlich zu verwalten. 140 00:06:32,370 --> 00:06:34,500 Der Grund, warum MVC ist so gut angesehen 141 00:06:34,500 --> 00:06:36,120 ist für eine Reihe von Gründen. 142 00:06:36,120 --> 00:06:38,110 Das erste, was ist die so genannte Trennung von Bedenken 143 00:06:38,110 --> 00:06:40,370 welche die Idee, dass, wenn Sie haben, ist - 144 00:06:40,370 --> 00:06:43,520 idealerweise ein Stück Code sollte 1, was zu tun und es ist wirklich gut, 145 00:06:43,520 --> 00:06:47,210 und Sie sollten nicht Teile des Codes, unterschiedliche Dinge zu tun, zu kombinieren. 146 00:06:47,210 --> 00:06:49,230 Zum Beispiel sehen Code und Modellcode, 147 00:06:49,230 --> 00:06:51,040 sie haben nicht wirklich verwandt werden. 148 00:06:51,040 --> 00:06:53,290 Sie müssen nicht in den gleichen Dateien sein, damit Sie, wenn Sie möchten, trennen Sie sie 149 00:06:53,290 --> 00:06:55,300 so ist es leicht zu pflegen. 150 00:06:55,300 --> 00:06:57,130 >> Die andere Sache ist die Wiederverwendung von Code. 151 00:06:57,130 --> 00:06:59,770 Vielleicht finden Sie das Schreiben der gleichen SQL-Abfrage oder tun 152 00:06:59,770 --> 00:07:03,060 ähnliche Abfragen, die in 1-Funktion abstrahiert werden könnte, 153 00:07:03,060 --> 00:07:05,440 und das ist die Idee hinter Modelle und Controller 154 00:07:05,440 --> 00:07:09,690 , es in eine separate Funktion, die Sie in verschiedenen Orten in Ihrem Projekt wiederverwenden können. 155 00:07:09,690 --> 00:07:12,420 Und schließlich, das ist, um das Trocknen der Code gebunden, 156 00:07:12,420 --> 00:07:14,700 oder sich nicht wiederholen, Sie sich nicht zu wiederholen. 157 00:07:14,700 --> 00:07:18,090 Das ist sehr verständlich in der Entwicklung. 158 00:07:18,090 --> 00:07:20,110 Wann immer Sie können, Sie wollen nicht, sich zu wiederholen, denn wenn man sich zu wiederholen, 159 00:07:20,760 --> 00:07:23,400  es ist viel teurer zu erhalten. 160 00:07:23,400 --> 00:07:26,040 Wenn Sie ein etwas ändern wollen, müssen Sie es überall zu ändern, 161 00:07:26,040 --> 00:07:30,230 und das führt zu Fehlern, und es ist schrecklich. 162 00:07:30,230 --> 00:07:32,010 >> Alles klar. 163 00:07:32,010 --> 00:07:37,270 Alle Fragen, die bisher über Kohana überhaupt? 164 00:07:37,270 --> 00:07:39,200 Große. 165 00:07:39,200 --> 00:07:42,300 Jetzt werden wir in den Live-Codierung Sitzung tauchen, 166 00:07:42,300 --> 00:07:48,050 und hoffentlich alles gut geht. 167 00:07:57,200 --> 00:08:00,050 Ich werde im Grunde bauen diese Website 168 00:08:00,050 --> 00:08:03,910 auf einem meiner Remote-Servern, und auf diese Weise ihr Jungs können auch 169 00:08:03,910 --> 00:08:06,310 finden Sie auf der Website und auf die Website zugreifen, 170 00:08:06,310 --> 00:08:10,990 und auch die Umwelt ist besser als meine konfigurierten Remote-Maschine, 171 00:08:10,990 --> 00:08:14,580 weil es läuft Linux anstelle von OS X. 172 00:08:14,580 --> 00:08:16,260 Wir gehen buchstäblich zu starten. 173 00:08:16,260 --> 00:08:18,110 KohanaFramework.org. 174 00:08:18,110 --> 00:08:21,350 Ich werde den Code von der Website herunterladen. 175 00:08:21,350 --> 00:08:24,610 Ich werde die Link-Adresse kopieren, 176 00:08:24,610 --> 00:08:29,770 gehen, um meine Server, laden Sie es, 177 00:08:29,770 --> 00:08:33,000 und ich werde sie zu extrahieren. 178 00:08:38,330 --> 00:08:45,710 >> [Student] Was ist die größte können Sie den Text zu machen? 179 00:08:45,710 --> 00:08:47,330 [Brandon Liu] Ist das besser? 180 00:08:47,330 --> 00:08:50,070 [Schüler] Ist das machbar? >> [Brandon Liu] Ja, das ist in Ordnung. 181 00:08:50,070 --> 00:08:54,500 Ich habe einen ZIP-Datei entpackt und dass in ein Verzeichnis namens Kohana, 182 00:08:54,500 --> 00:08:58,820 und wir werden diese CS50-Kohana umbenennen, 183 00:08:58,820 --> 00:09:01,140 und wir gehen in. 184 00:09:01,140 --> 00:09:03,610 Ehrfürchtig. 185 00:09:03,610 --> 00:09:06,870 Hier sehen Sie eine Reihe von verschiedenen Dateien. 186 00:09:06,870 --> 00:09:10,140 Die meisten können Sie ignorieren - We werden nicht gehen, um durch jede einzelne Datei, die in hier gehen 187 00:09:10,140 --> 00:09:13,130 wegen unserer Zeitgründen 188 00:09:13,130 --> 00:09:16,310 aber in der Regel, wenn Sie Kohana, das erste, was Sie tun, installieren 189 00:09:16,310 --> 00:09:23,210 Sie wird in das Verzeichnis, 190 00:09:23,210 --> 00:09:26,050 und Sie werden im Grunde tun einige Umgebungstests und so weiter 191 00:09:26,050 --> 00:09:28,640 um sicherzustellen, dass Ihre Umgebung richtig eingestellt zu Kohana laufen 192 00:09:28,640 --> 00:09:31,450 und stellen Sie sicher, dass alles in Ordnung ist. 193 00:09:31,450 --> 00:09:35,510 Sie können sehen, die meisten Dinge passiert, aber in der Regel immer in diese ein Problem stoßen 194 00:09:35,510 --> 00:09:38,180 wo er beklagt, dass einige Verzeichnis ist nicht beschreibbar, 195 00:09:38,180 --> 00:09:40,410 und das ist, weil einige Berechtigungen. 196 00:09:40,410 --> 00:09:43,080 Ich weiß nicht, wie viel Sie Jungs haben über die Dateiberechtigungen in CS50 gelernt, 197 00:09:43,080 --> 00:09:47,920 aber wenn Sie Web-Entwicklung zu tun, sind Sie werde in dieser Frage viel laufen. 198 00:09:47,920 --> 00:09:58,340 Ich werde es beschreibbar zu machen 199 00:09:58,340 --> 00:10:03,390 und ich denke, ich muss auch - da gehen wir. 200 00:10:03,390 --> 00:10:07,040 >> Okay, jetzt können Sie sehen, alles, was passiert, 201 00:10:07,040 --> 00:10:10,000 und jetzt wird es Ihnen sagen, die install.php Datei umzubenennen. 202 00:10:10,000 --> 00:10:15,630 Ich werde die install.php Datei zu bewegen, um installed.php, 203 00:10:15,630 --> 00:10:19,610 und jetzt, wenn ich zu aktualisieren, 204 00:10:19,610 --> 00:10:22,810 es gibt mir einige Fehler, und das ist, wo das Debugging kommt in. 205 00:10:22,810 --> 00:10:25,610 Dies ist, wo man sehen kann, was tatsächlich passieren wird. 206 00:10:25,610 --> 00:10:28,460 Die Sache ist, standardmäßig wird davon ausgegangen, dass Kohana 207 00:10:28,460 --> 00:10:31,480 Ihr Projekt ist das Stammverzeichnis Ihrer Domain, 208 00:10:31,480 --> 00:10:35,920 so dass es erwartet, dass Sie bei demo.brandonkliu.com sein. 209 00:10:35,920 --> 00:10:37,540 Wir müssen es sagen, dass es eigentlich in einem Unterordner. 210 00:10:37,540 --> 00:10:39,820 Es ist in einem Unterordner namens CS50 Kohana. 211 00:10:39,820 --> 00:10:42,640 Die Sache ist, es ist falsch interpretiert CS50-Kohana 212 00:10:42,640 --> 00:10:45,680 als etwas anderes, das werde ich Ihnen in einem zweiten zu erklären. 213 00:10:45,680 --> 00:10:49,910 Aber ich muss Ihnen sagen, dass ist etwas, was zu erwarten ist. 214 00:10:49,910 --> 00:10:53,700 Was wir tun werden, ist, wir werden in diesem Ordner namens bootstrap.php gehen, 215 00:10:53,700 --> 00:10:59,260 Das ist die Konfiguration ein Ordner, in dem viele verschiedene Dinge sind eingerichtet. 216 00:10:59,260 --> 00:11:01,570 Ich öffne das auf. 217 00:11:01,570 --> 00:11:09,790 Dann vielleicht eines der ersten Dinge, die ich tun werde, ist die Zeitzone ändern. 218 00:11:09,790 --> 00:11:13,910 >> Und dann wollen wir mal sehen. 219 00:11:13,910 --> 00:11:15,180 Aha! Genau hier. 220 00:11:15,180 --> 00:11:18,690 Es gibt eine Reihe von verschiedenen Konfigurations Sprüche hier, 221 00:11:18,690 --> 00:11:21,700 aber die, die ich bin auf der Suche nach ist dieses Ding namens Basis-URL, 222 00:11:21,700 --> 00:11:24,570 und standardmäßig ich es zu Kohana gesetzt, 223 00:11:24,570 --> 00:11:29,020 aber ich werde das auf CS50-Kohana zu ändern, 224 00:11:29,020 --> 00:11:32,880 und ich denke, das sollte es zu beheben. 225 00:11:32,880 --> 00:11:34,150 Ja, toll. 226 00:11:34,150 --> 00:11:39,530 Standardmäßig ist zu sehen, dass es funktioniert, heißt es, "Hallo Welt". 227 00:11:39,530 --> 00:11:42,930 Wo kommt das her? Wie sind wir zu Hallo Welt zu bekommen? 228 00:11:42,930 --> 00:11:47,640 Wo genau ist der Code, tatsächlich hat das geschrieben? 229 00:11:47,640 --> 00:11:50,240 Um das zu verstehen, werde ich dieses Konzept namens Routing einzuführen. 230 00:11:50,240 --> 00:11:52,590 So gut wie alle Web-Frameworks haben das Konzept namens Routing, 231 00:11:52,590 --> 00:11:57,230 die das Stück von der Software, die eine bestimmte URL-Karte wird, ist 232 00:11:57,230 --> 00:12:01,550 bis zu einem gewissen Stück Code in Ihrem Rahmen. 233 00:12:01,550 --> 00:12:07,510 Zum Beispiel, wenn Sie einige URL und Sie zu einem gewissen URL wie foo.com / Blog / alle gehen 234 00:12:07,510 --> 00:12:11,170 was der Rahmen tun wird dann - oder zumindest das, was Kohana tun wird - 235 00:12:11,170 --> 00:12:15,540 wird, es wird eine Klasse namens Controller Blog zu finden, 236 00:12:15,540 --> 00:12:18,720 und es geht um die Funktion benannte Aktion laufen alle. 237 00:12:18,720 --> 00:12:20,160 Ich weiß, ich bin über Klasse und Funktionen sprechen, 238 00:12:20,160 --> 00:12:23,860 und ich weiß, ihr Jungs haben nicht abgedeckt Klassen und Funktionen 239 00:12:23,860 --> 00:12:26,470 in noch CS50, aber für jetzt, 240 00:12:26,470 --> 00:12:29,800 Sie von Klassen als nur eine Gruppe von Funktionen denken kann, 241 00:12:29,800 --> 00:12:32,900 eine Möglichkeit der Gruppierung von Funktionen zusammen. 242 00:12:32,900 --> 00:12:37,690 Das ist wirklich alles, was Sie wissen müssen. 243 00:12:37,690 --> 00:12:43,120 >> Nun, wenn wir auf unsere Ordnerstruktur, 244 00:12:43,120 --> 00:12:47,110 innerhalb des Ordners gibt es eine weitere Ordner namens Klassen, 245 00:12:47,110 --> 00:12:49,200 und die anderen Ordner sind Steuerung und Modell genannt. 246 00:12:49,200 --> 00:12:52,530 Wenn Sie in das Controller-Ordner schauen, 247 00:12:52,530 --> 00:12:56,330 wir sehen, dass es eine Datei namens Willkommen, 248 00:12:56,330 --> 00:13:00,370 und die Sie hier sehen können, ist ein Controller-Klasse namens Willkommen, 249 00:13:00,370 --> 00:13:02,340 und es gibt eine Funktion, die aufgerufen Aktionsindex, 250 00:13:02,340 --> 00:13:06,360 und was es tut, ist es, den Körper Ihrer Antwort auf Hallo Welt setzt. 251 00:13:06,360 --> 00:13:08,730 Das ist, wo der Code geschrieben wird. 252 00:13:08,730 --> 00:13:11,610 Die andere Frage ist, gut, ich habe nicht zu gehen 253 00:13:11,610 --> 00:13:13,680 blah, blah, blah, / welcome / index. 254 00:13:13,680 --> 00:13:16,250 Wie bin ich hier gelandet? 255 00:13:16,250 --> 00:13:20,410 Nun, das ist einfach, weil 256 00:13:20,410 --> 00:13:22,410 hier an der Unterseite unserer Bootstrap-Datei 257 00:13:22,410 --> 00:13:24,550 wo wir unsere Routen 258 00:13:24,550 --> 00:13:26,570 Sie sehen, dass sie für Sie ein paar Standardwerte. 259 00:13:26,570 --> 00:13:28,990 Die Standard-Controller ist Willkommen. Die Standardaktion ist Index. 260 00:13:28,990 --> 00:13:31,600 Das ist, warum, wenn wir nichts drin ging es automatisch auf die Willkommen-Controller 261 00:13:31,600 --> 00:13:33,940 und der Index-Aktion. 262 00:13:33,940 --> 00:13:37,460 Alles >> Sinn so weit? 263 00:13:37,460 --> 00:13:40,850 Jetzt können Sie mehr als nur um Steuer gehen tun können 264 00:13:40,850 --> 00:13:43,670 und eine bestimmte Aktion. 265 00:13:43,670 --> 00:13:48,480 Sie können auch in den Parametern an die Steuerung übergeben. 266 00:13:48,480 --> 00:13:56,390 Nur als Beispiel, 267 00:13:56,390 --> 00:14:04,070 Ich werde eine andere Aktion an diesen Controller hinzufügen, um Ihnen zu zeigen. 268 00:14:04,070 --> 00:14:09,130 Nennen wir diese Aktion Echo, denn es wird Ihnen sagen, was Sie ihm geben, 269 00:14:09,130 --> 00:14:17,510 und so bin ich im Grunde geht zu greifen 270 00:14:17,510 --> 00:14:20,960 ein Parameter, der geht, um durch mich zu der Routing-Programm gesendet werden, 271 00:14:20,960 --> 00:14:24,440 und wie Sie hier sehen können, 272 00:14:24,440 --> 00:14:28,440 diese Linie hier, können Sie sehen, dass 273 00:14:28,440 --> 00:14:31,270 dies bedeutet im Grunde haben Sie Controller, und Sie haben einen / haben, 274 00:14:31,270 --> 00:14:33,480 und Sie haben Handlung, und Sie haben eine andere /, 275 00:14:33,480 --> 00:14:39,140 und das wird, um Parameter zu sein, und weil wir diesen Namen ID 276 00:14:39,140 --> 00:14:42,450 in spitzen Klammern, bedeutet das, dass wir die Benennung dieser Parameter ID. 277 00:14:42,450 --> 00:14:45,490 Später in meinem Controller-Code, wenn ich einen Einfluß dieser Parameter zu packen, 278 00:14:45,490 --> 00:14:51,790 Ich kann den Code schrieb ich verwenden, finden Sie die Parameter namens ID. 279 00:14:51,790 --> 00:14:59,290 Das ist, was ich hier tat, und ich werde zurückkehren und sagen, 280 00:14:59,290 --> 00:15:07,090 "Du hast gesagt," dass. 281 00:15:07,090 --> 00:15:10,760 Und jetzt, wenn ich Sie auf unserer Website, 282 00:15:10,760 --> 00:15:19,550 Ich gehe in cs50-kohana/welcome/echo/Helloooo-- 283 00:15:19,550 --> 00:15:21,420 oh, das ist richtig. 284 00:15:21,420 --> 00:15:23,930 Es ist ein Schritt, den ich ausgelassen. 285 00:15:23,930 --> 00:15:27,020 Dies ist Teil der Live-Codierung Idee. 286 00:15:27,020 --> 00:15:36,100 >> Hier ist ein Ding. Mal sehen. 287 00:15:36,100 --> 00:15:38,870 Also normalerweise standardmäßig mit einer Menge von diesen Web-Anwendungen 288 00:15:38,870 --> 00:15:42,820 Sie müssen diese Sache index.php in der URL enthalten, 289 00:15:42,820 --> 00:15:46,410 denn die Idee ist index.php ist eine Art Einstiegspunkt 290 00:15:46,410 --> 00:15:48,250 der Anwendung, aber natürlich, 291 00:15:48,250 --> 00:15:50,110 dass ist irgendwie ärgerlich, haben. 292 00:15:50,110 --> 00:15:53,790 Sie wollen nicht index.php in der URL zu haben scheinen, 293 00:15:53,790 --> 00:15:56,080 und so ziemlich jeder Web-Framework aus der Box 294 00:15:56,080 --> 00:15:58,440 hat diese index.php Problem, 295 00:15:58,440 --> 00:16:03,370 und so müssen Sie einige Maßnahmen, um der Lage, das zu entfernen, zu nehmen. 296 00:16:03,370 --> 00:16:07,540 Und so dass in diesem Fall, 297 00:16:07,540 --> 00:16:11,450 was wir zu tun ist, werden wir eine Datei namens. htaccess zu verwenden, 298 00:16:11,450 --> 00:16:13,900 und das ist etwas, das spezifisch für den Apache Web-Server ist, 299 00:16:13,900 --> 00:16:16,290 und es können Dinge wie Rewrite-URLs machen 300 00:16:16,290 --> 00:16:19,350 und Weiterleitungs-URLs und so weiter und so fort, 301 00:16:19,350 --> 00:16:24,280 und Kohana ist schön genug, um eine Vorlage. htaccess-Datei, die wir verwenden können. 302 00:16:24,280 --> 00:16:28,300 >> Wie Sie sehen können, gibt es eine Datei namens example.htaccess es, 303 00:16:28,300 --> 00:16:33,410 und wir werden, dass zu. htaccess kopieren. 304 00:16:33,410 --> 00:16:36,950 Ich werde diese zu öffnen und zu bearbeiten, 305 00:16:36,950 --> 00:16:40,840 und im Grunde ist es tut ein paar verschiedene Dinge. 306 00:16:40,840 --> 00:16:45,320 Der Schlüssel Linie möchten Sie vielleicht zu sehen ist hier richtig. 307 00:16:45,320 --> 00:16:49,840 Die Idee ist, dass dadurch eine Regel, die sagt, 308 00:16:49,840 --> 00:16:56,400 "Okay, was auch immer Sie eingeben, prepend index.php darauf." 309 00:16:56,400 --> 00:16:58,710 Sie können das sehen. 310 00:16:58,710 --> 00:17:00,370 Die. * Steht für alles, alles passen, 311 00:17:00,370 --> 00:17:03,300 und dann der zweite Teil ist index.php / $ 0, 312 00:17:03,300 --> 00:17:07,410 und $ 0 bezieht sich auch immer vorher abgestimmt wurde. 313 00:17:07,410 --> 00:17:09,500 Heißt das Sinn? 314 00:17:09,500 --> 00:17:12,190 Aber die wirklich wichtige Sache, die ich ändern will, ist dieses zu ändern Rewrite Basis, 315 00:17:12,190 --> 00:17:14,300 die URL der Basis ist. 316 00:17:14,300 --> 00:17:17,780 Es Art übernimmt, wo Sie gerade arbeiten. 317 00:17:17,780 --> 00:17:22,560 Ich werde CS50 Kohana hinzufügen, dass 318 00:17:22,560 --> 00:17:26,530 und auf diese Weise jetzt, wenn ich den index.php, 319 00:17:26,530 --> 00:17:32,110 es sollte funktionieren, und ich werde ein paar Zahlen zu addieren 320 00:17:32,110 --> 00:17:36,380 um Ihnen zu zeigen, dass es tatsächlich funktioniert hat. 321 00:17:36,380 --> 00:17:38,130 Klingt gut. 322 00:17:38,130 --> 00:17:40,260 Haben Sie Fragen >> so weit? 323 00:17:40,260 --> 00:17:42,300 [Schüler] Wie ist es zu wissen, die 123 zu machen? 324 00:17:42,300 --> 00:17:44,120 Ist das ein Argument? 325 00:17:44,120 --> 00:17:46,560 Genau. Sie können es wie ein Argument zu denken. 326 00:17:46,560 --> 00:17:52,410 Aber die seltsame Sache ist jedoch, dass der Weg Kohana tut es 327 00:17:52,410 --> 00:17:54,910 wird sie nicht tun, genau wie es ein Argument. 328 00:17:54,910 --> 00:17:56,930 Sie müssen es so zu greifen. 329 00:17:56,930 --> 00:18:01,030 Sie müssen das Request-Objekt zu greifen und fragen Sie nach dem Parameter mit dem Namen ID ist, 330 00:18:01,030 --> 00:18:03,240 und dieser Name ID, kommt aus dieser Bootstrap-Datei 331 00:18:03,240 --> 00:18:06,990 zeigte, dass ich früher, und der Name ID war in diesen spitzen Klammern, 332 00:18:06,990 --> 00:18:11,580 und das ist, wie Sie die Parameter greifen. 333 00:18:11,580 --> 00:18:14,010 Ehrfürchtig. 334 00:18:14,010 --> 00:18:17,550 Noch Fragen? 335 00:18:17,550 --> 00:18:20,500 Wie ich schon sagte, Controller, behandeln sie die Anwendungslogik, 336 00:18:20,500 --> 00:18:22,980 so das ist ein Beispiel, wo man sehen that - 337 00:18:22,980 --> 00:18:24,830 es ist sehr einfach, aber es ist immer noch die Anwendungslogik, 338 00:18:24,830 --> 00:18:27,980 die Idee, packte die Parameter und die Schaffung eines neuen String 339 00:18:27,980 --> 00:18:31,920 die sagt: "Du hast gesagt, blah" und dann spucken, dass an Sie zurück. 340 00:18:31,920 --> 00:18:34,030 Und in der Regel, was Sie tun, ist, dass Sie verschiedene Controller erstellen. 341 00:18:34,030 --> 00:18:36,450 Sie erstellen getrennte Regler für verschiedene Teile Ihrer Website. 342 00:18:36,450 --> 00:18:38,160 >> Heute werden wir eine sehr einfache Website zu machen, 343 00:18:38,160 --> 00:18:40,420 und es geht um ein sehr einfaches Blog. 344 00:18:40,420 --> 00:18:43,780 Wir werden einen neuen Controller nur für die Beiträge in einem Blog zu machen. 345 00:18:43,780 --> 00:18:47,060 Aber dann, wenn ich auch Kommentare zu den Blog-Post hinzuzufügen, 346 00:18:47,060 --> 00:18:50,140 dann würde ich wahrscheinlich wollen einen neuen Controller für die Anmerkungen machen. 347 00:18:50,140 --> 00:18:53,380 Wenn ich wollte, um Benutzer hinzuzufügen, würde ich wahrscheinlich einen neuen Controller für die Benutzer, 348 00:18:53,380 --> 00:18:57,000 und im allgemeinen, ist die Idee, dass, wenn Sie ein neues Modell haben, 349 00:18:57,000 --> 00:18:59,630 ein neues Datenobjekt, das Sie zu tun haben, 350 00:18:59,630 --> 00:19:02,970 Sie haben einen einzigen Controller dieses Datenobjekt. 351 00:19:02,970 --> 00:19:04,370 Heute sind wir nur gehen, um mit ein Datenobjekt arbeiten, 352 00:19:04,370 --> 00:19:06,250 und das wird sein, Beiträge, 353 00:19:06,250 --> 00:19:08,710 und auch Sie von Datenobjekten, wie die entsprechenden Tabellen denken können. 354 00:19:08,710 --> 00:19:12,160 Generell jede Tabelle entspricht 1 Typ des Datenobjekts, 355 00:19:12,160 --> 00:19:15,160 so die Post Tabelle 1 post Modell haben, 356 00:19:15,160 --> 00:19:18,230 haben wird, die ein Post Controller entspricht, dass 357 00:19:18,230 --> 00:19:22,190 und die gleichen Kommentare, die gleiche für die Benutzer, und so weiter und so fort. 358 00:19:22,190 --> 00:19:24,070 Und das ist eine Faustregel. 359 00:19:24,070 --> 00:19:27,460 Es gehen auf Sonderfälle, wo man kann sich von der unterscheiden können, 360 00:19:27,460 --> 00:19:29,300 aber 90% der Zeit, die ist, was wirst du tun, 361 00:19:29,300 --> 00:19:32,810 und ich werde Ihnen zeigen, das ist, was wir zu tun heute. 362 00:19:32,810 --> 00:19:35,490 1 mehr Konzept, bevor wir wieder in den Code einzutauchen, 363 00:19:35,490 --> 00:19:37,710 diese Idee der objektrelationale Mapping. 364 00:19:37,710 --> 00:19:41,200 Jungs >> Sie haben bereits eine Web-Entwicklung pset getan, 365 00:19:41,200 --> 00:19:43,820 und haben Sie gesehen, dass Sie eine SQL-Abfrage zu machen, 366 00:19:43,820 --> 00:19:46,510 und was es für Sie gibt es Zeilen. 367 00:19:46,510 --> 00:19:50,040 Sie erhalten diese Zeilen, und Sie indizieren sie durch einige Namen, 368 00:19:50,040 --> 00:19:55,480 den Namen der Spalte und dem Tisch, 369 00:19:55,480 --> 00:19:57,630 und das ist, wie Sie mit ihm arbeiten, 370 00:19:57,630 --> 00:19:59,290 und es kann ein wenig umständlich. 371 00:19:59,290 --> 00:20:01,810 Aber darüber hinaus, wenn man die Beziehungen innerhalb der Datenbank, 372 00:20:01,810 --> 00:20:05,280 wie zum Beispiel, wenn ich Kommentare und Beiträge, 373 00:20:05,280 --> 00:20:11,240 dann vielleicht möchte ich die Eltern Post von einem Kommentar zu greifen. 374 00:20:11,240 --> 00:20:14,350 Wenn ich nur Zeilen in SQL, dann alles, was ich bekommen kann, ist die ID 375 00:20:14,350 --> 00:20:19,310 der Mutter Post und nicht die tatsächliche Beitrag selber. 376 00:20:19,310 --> 00:20:21,680 Aber wenn wir Codierung, was wir eigentlich wollen, ist tatsächlich greifen 377 00:20:21,680 --> 00:20:23,550  die Eltern sich manchmal von selbst zu schreiben. 378 00:20:23,550 --> 00:20:25,730 Welche objektrelationale Mapping tut, ist 379 00:20:25,730 --> 00:20:29,480 es nimmt die Ergebnisse der Datenbankabfrage 380 00:20:29,480 --> 00:20:32,420 und legt sie in Objekte für Sie, das viel schöner, mit zu arbeiten 381 00:20:32,420 --> 00:20:34,770 als einfache Arrays und-Zeilen. 382 00:20:34,770 --> 00:20:37,550 >> Zum Beispiel jetzt, wenn ich einen Kommentar vielleicht 383 00:20:37,550 --> 00:20:40,900 und ich möchte an ihre Mutter Beitrag zu packen, 384 00:20:40,900 --> 00:20:43,440 und ich weiß vielleicht Kommentar Pfeil Post, 385 00:20:43,440 --> 00:20:45,230 dann wird es tatsächlich geben mir die Post-Objekt 386 00:20:45,230 --> 00:20:47,940 entsprechend der tatsächlichen Mutter Post, nicht nur einige ID, 387 00:20:47,940 --> 00:20:52,210 was ich sonst verwenden müssen und einen anderen SQL-Abfrage, um die Post zu packen, 388 00:20:52,210 --> 00:20:57,430 was umständlich und unnötig ist. 389 00:20:57,430 --> 00:21:01,840 Und ferner durch Abbilden alle diese Datenzeilen in Objekte, 390 00:21:01,840 --> 00:21:03,760 Sie können auch mehr Funktionen, um Objekte anzuhängen, 391 00:21:03,760 --> 00:21:09,700 so zum Beispiel, habe ich darüber gesprochen, wie Klassen sind im Wesentlichen Gruppierungen von Funktionen. 392 00:21:09,700 --> 00:21:11,620 Man kann sich das so denken. 393 00:21:11,620 --> 00:21:15,290 Zum Beispiel, vielleicht habe ich diesen Post Objekt, 394 00:21:15,290 --> 00:21:17,830 und vielleicht möchte ich eine Funktion auf, um sie angebracht haben 395 00:21:17,830 --> 00:21:20,300 dass im Grunde sagt mir wurde vor kurzem gepostet? 396 00:21:20,300 --> 00:21:23,570 War es geschrieben in der letzten Woche, wahr oder falsch? 397 00:21:23,570 --> 00:21:27,320 Und das ist eine Funktion, die ich kann, auf dieses Objekt zu befestigen, 398 00:21:27,320 --> 00:21:31,300 und es ist wirklich praktisch, um es an der gleichen Stelle zu haben, 399 00:21:31,300 --> 00:21:33,820 und es gibt eine Vielzahl von verschiedenen Funktionen, die Sie erstellen können 400 00:21:33,820 --> 00:21:37,990 für diese Objekte, und es ist wirklich schön zu können, um es in einer Klasse anschließen zu können, 401 00:21:37,990 --> 00:21:41,700 auf ein Objekt, während, wenn Sie gerade Zeilen aus der Datenbank, 402 00:21:41,700 --> 00:21:43,790 dann kann man nicht wirklich keine Funktionalität legen zu. 403 00:21:43,790 --> 00:21:47,850 Es ist buchstäblich nur Daten. 404 00:21:47,850 --> 00:21:50,550 Haben Sie Fragen zu, dass überhaupt? 405 00:21:50,550 --> 00:21:52,710 ORMs sind sehr häufig, Web-Entwicklung, 406 00:21:52,710 --> 00:21:56,330 und es gibt viele verschiedene Arten von ORMs, 407 00:21:56,330 --> 00:21:58,450 Kohana und hat seine eigene ORM. 408 00:21:58,450 --> 00:22:05,050 Es ist sehr einfach, aber Sie werden einen Vorgeschmack, wie es aussieht bekommen. 409 00:22:05,050 --> 00:22:08,780 >> Lassen Sie uns ein Vorbild für unsere Blog-Einträge, 410 00:22:08,780 --> 00:22:12,350 und das erste, was wir natürlich tun müssen, ist, um eine tatsächliche Tabelle erstellen 411 00:22:12,350 --> 00:22:16,680 in unserer Datenbank, um tatsächlich unsere Daten für die Beiträge zu speichern. 412 00:22:16,680 --> 00:22:19,260 Das erste, was ich zu tun ist, gehen Sie zu phpMyAdmin. 413 00:22:19,260 --> 00:22:21,410 Habt ihr verwendet phpMyAdmin vor? 414 00:22:21,410 --> 00:22:23,400 Okay, super, so euch bereits wissen, was das ist, 415 00:22:23,400 --> 00:22:32,200 und ich werde eine neue Tabelle namens Kohana Beiträge zu erstellen, 416 00:22:32,200 --> 00:22:37,820 und es wird wirklich einfach zu sein. 417 00:22:37,820 --> 00:22:40,190 Ich werde in. melden Sie sich wieder haben 418 00:23:02,620 --> 00:23:04,640 Alles, was wir heute tun ist einen Autor und einen Körper, 419 00:23:04,640 --> 00:23:11,930 nur halten sie einfach. 420 00:23:11,930 --> 00:23:15,620 Ich werde diese Tabelle zu erstellen, 421 00:23:15,620 --> 00:23:19,620 und jetzt müssen wir nur eine Tabelle, die unsere Beiträge 422 00:23:19,620 --> 00:23:23,370 mit 2 Felder für unser Autor und unser Körper. 423 00:23:23,370 --> 00:23:26,290 Die andere Sache, ich werde jetzt zu tun ist 424 00:23:26,290 --> 00:23:29,820 meine Web-Anwendung zu konfigurieren, damit sie weiß, wie man die Verbindung zur Datenbank, 425 00:23:29,820 --> 00:23:31,950 und dies wiederum ist etwas, das Sie mit allen Web-Anwendungen zu tun haben. 426 00:23:31,950 --> 00:23:34,790 Man muss es sagen, den Benutzernamen und das Passwort 427 00:23:34,790 --> 00:23:36,990 und der Name der Datenbank, und so weiter und so fort 428 00:23:36,990 --> 00:23:40,000 um herauszufinden, wie man tatsächlich auf Ihre Datenbank zu verbinden. 429 00:23:40,000 --> 00:23:58,710 >> In Kohana, haben wir so etwas wie eine Datenbankmodul, 430 00:23:58,710 --> 00:24:02,690 und in der Konfigurationsordner haben wir diesen Ordner Database, 431 00:24:02,690 --> 00:24:07,330 und wie Sie sehen können, gibt es eine Reihe von Einstellungen, die Sie hier eingestellt haben 432 00:24:07,330 --> 00:24:09,860 um es zu sagen, was den Benutzernamen und das Passwort 433 00:24:09,860 --> 00:24:13,110 für die Datenbank, so kann ich tatsächlich eine Verbindung zu ihm. 434 00:24:13,110 --> 00:24:15,010 Und da will ich nicht euch tatsächlich zu wissen, 435 00:24:15,010 --> 00:24:17,190 der Benutzername und das Passwort meiner Datenbank, 436 00:24:17,190 --> 00:24:23,840 Ich habe eine Datei, in der ich schon legen Sie sie alle, und ich werde zu kopieren und es ist vorbei. 437 00:24:33,080 --> 00:24:36,870 Ehrfürchtig. 438 00:24:36,870 --> 00:24:39,880 Okay. Ich denke, das ist alles, die Konfiguration, die ich tun müssen, 439 00:24:39,880 --> 00:24:41,070 aber mal sehen. 440 00:24:41,070 --> 00:24:43,720 Wir halten es in der Arbeit, und wenn etwas abstürzt, 441 00:24:43,720 --> 00:24:47,490 dann werden wir es beheben können. 442 00:24:47,490 --> 00:24:51,830 Nun, was ich zu tun ist, werde ich einen neuen Controller zu erstellen. 443 00:24:51,830 --> 00:24:53,190 Oder eigentlich, sorry. 444 00:24:53,190 --> 00:24:55,080 Zuerst muss ich ein neues Modell zu erstellen. 445 00:24:55,080 --> 00:25:01,620 Ich werde ein neues Modell namens Post.php zu erstellen, 446 00:25:01,620 --> 00:25:12,440 und was wir zu tun ist, werden wir es nennen Klasse Model_Post. 447 00:25:12,440 --> 00:25:15,390 Holen Sie sich einige Syntax-Hervorhebung auf, 448 00:25:15,390 --> 00:25:19,750 und so, wenn ich sage: "erstreckt ORM", das ist im Grunde 449 00:25:19,750 --> 00:25:21,210 einige weitere objektorientierte Programmierung, 450 00:25:21,210 --> 00:25:23,340 die leider euch nicht in CS50 noch nicht gelernt, 451 00:25:23,340 --> 00:25:25,290 aber es ist ziemlich leicht zu erlernen. 452 00:25:25,290 --> 00:25:27,950 Es gibt mir all diese zusätzliche Funktionalität, die in dieser ORM-Paket kommt, 453 00:25:27,950 --> 00:25:31,120 und so bekomme ich eine Reihe von zusätzlichen Funktionen und was nicht alles kostenlos, 454 00:25:31,120 --> 00:25:34,810 Sie finden das ein bisschen in einem zweiten zu sehen. 455 00:25:34,810 --> 00:25:37,670 >> Gerade jetzt eigentlich alles, was ich tun müssen, ist diese Klasse zu erstellen. 456 00:25:37,670 --> 00:25:39,160 Ich weiß gar nicht brauchen, um jede Funktion oder irgendetwas zu machen, 457 00:25:39,160 --> 00:25:41,770 aber ich habe eine Klasse, die die Tabelle darstellt erstellt, 458 00:25:41,770 --> 00:25:44,140 und weil ich diese ORM-Klasse erweitert, 459 00:25:44,140 --> 00:25:51,080 Ich bekomme einen Haufen Dinge kostenlos, so jetzt müssen Sie nicht haben, etwas mehr aufgebaut. 460 00:25:51,080 --> 00:25:53,530 Und jetzt, was ich zu tun ist, werde ich einen neuen Controller zu erstellen, 461 00:25:53,530 --> 00:25:58,480 das werde ich nennen blog.php, 462 00:25:58,480 --> 00:26:04,350 und ich werde über das Willkommen-Controller kopieren 463 00:26:04,350 --> 00:26:11,950 so dass ich nicht haben, um ein paar Sachen neu eingeben, 464 00:26:11,950 --> 00:26:20,720 und jetzt habe ich, dies zu benennen. 465 00:26:20,720 --> 00:26:24,710 Nun, was ich tun werde, um zu testen, um sicherzustellen, dass alles der Arbeit aus, 466 00:26:24,710 --> 00:26:27,820 Ich werde den ersten Beitrag aus meiner Datenbank zu packen 467 00:26:27,820 --> 00:26:32,680 und drucken Sie den Körper von der Post auf dem Bildschirm. 468 00:26:32,680 --> 00:26:37,920 Um das zu tun, was ich zuerst tun ist werde ich die Beiträge sparen 469 00:26:37,920 --> 00:26:48,770 auf eine Variable so, was wir zu tun ist - 470 00:26:48,770 --> 00:26:52,090 in Kohana, was Sie tun, ist, den Posten Objekt greifen 471 00:26:52,090 --> 00:26:55,380 es ist irgendwie umständlich, aber man muss dieses Ding namens ORM :: factory zu tun haben, 472 00:26:55,380 --> 00:26:57,750 und dann auf den Namen des gewünschten Modell übergeben, 473 00:26:57,750 --> 00:27:00,490 und es hat die ORM-Objekt, das das Modell repräsentiert zurück. 474 00:27:00,490 --> 00:27:04,860 Und dann, wie ich schon sagte, wenn wir die ORM-Objekt zu erweitern, 475 00:27:04,860 --> 00:27:07,320 wir alle diese Methoden für frei, so zum Beispiel 476 00:27:07,320 --> 00:27:09,200 bekommen wir diese neue Funktion namens "finden alle", 477 00:27:09,200 --> 00:27:12,160 die jeden einzelnen Beitrag in der Datenbank automatisch zurückkehrt, 478 00:27:12,160 --> 00:27:14,850 das ist ziemlich praktisch. 479 00:27:14,850 --> 00:27:17,480 >> Und jetzt in den Körper werde ich zurückkehren 480 00:27:17,480 --> 00:27:24,860 der erste Post-und Rück seinen Körper. 481 00:27:24,860 --> 00:27:27,930 Und natürlich muss ich einen Beitrag erstellen, 482 00:27:27,930 --> 00:27:31,880 also lasst uns einen neuen Beitrag einfügen. 483 00:27:31,880 --> 00:27:37,870 Ich werde sagen, "Brandon, mein erster Beitrag." 484 00:27:37,870 --> 00:27:40,010 Ehrfürchtig. 485 00:27:40,010 --> 00:27:45,910 Und jetzt werden wir auf Blogs gehen 486 00:27:45,910 --> 00:27:50,960 und wenn alles gut funktioniert - oh, das ist wieder eine andere Sache dumm Dateiberechtigung. 487 00:27:50,960 --> 00:27:56,090 Halten Sie auf 1 Sekunde. Es ist irgendwie absurd. 488 00:28:06,700 --> 00:28:08,490 Dort gehen wir. Okay. 489 00:28:08,490 --> 00:28:10,040 Ich reparierte diese Berechtigung Problem. 490 00:28:10,040 --> 00:28:12,040 Es wurde versucht, einige Dateien und einige Protokoll erstellen, 491 00:28:12,040 --> 00:28:15,400 und die Berechtigungen wieder wurden nicht richtig eingestellt, so dass ich es gemacht 492 00:28:15,400 --> 00:28:18,320 so waren diese Dateien schreibbar und ausführbar 493 00:28:18,320 --> 00:28:21,090 so ist es tatsächlich, die Dinge einloggen konnte. 494 00:28:21,090 --> 00:28:24,220 Jetzt ist es, mir eine weitere Ausnahme Sprichwort, "Klasse ORM nicht gefunden" 495 00:28:24,220 --> 00:28:26,960 und das ist, weil ich noch einen Schritt vergessen. 496 00:28:26,960 --> 00:28:37,010 Das ist schade. 497 00:28:37,010 --> 00:28:40,270 In der Bootstrap-Ordner-Datei gibt es diese Module hier 498 00:28:40,270 --> 00:28:42,480 die Sie wählen können, zu aktivieren oder zu deaktivieren. 499 00:28:42,480 --> 00:28:44,340 Diese sind eine Reihe von verschiedenen Funktionen, die Sie wählen, zu verwenden 500 00:28:44,340 --> 00:28:46,180 innerhalb Kohana, die Art schön. 501 00:28:46,180 --> 00:28:49,090 >> Beispielsweise ein Authentifizierungsmodul müssen sie 502 00:28:49,090 --> 00:28:51,170 der Sie zur Authentifizierung von Benutzern verwenden können. 503 00:28:51,170 --> 00:28:53,390 Sie haben eine Caching-Modul, wenn Sie implementieren möchten 504 00:28:53,390 --> 00:28:57,870 eine Art von Caching-Backend, um die Anwendung schneller arbeiten und so weiter zu machen. 505 00:28:57,870 --> 00:29:02,140 Wir müssen die Datenbank und die ORM-Modul zu aktivieren, 506 00:29:02,140 --> 00:29:04,280 denn wie ich schon sagte, sind wir mit Hilfe der Datenbank, natürlich, 507 00:29:04,280 --> 00:29:08,200 und wir müssen auch die ORM-Modul zu aktivieren, 508 00:29:08,200 --> 00:29:12,220 weil wir möchten, dass die zusätzliche Funktionalität, die schön zu haben, ist zu haben. 509 00:29:12,220 --> 00:29:14,240 Alles, was ich zu tun ist, kommentieren Sie diese 2 Zeilen 510 00:29:14,240 --> 00:29:18,760 und jetzt, wenn ich aktualisieren, es gab mir einen anderen Fehler. 511 00:29:18,760 --> 00:29:22,100 Es sagt, "Klasse Model_Post nicht gefunden." 512 00:29:22,100 --> 00:29:30,210 Nun, das ist ein gutes Problem zu haben. 513 00:29:30,210 --> 00:29:37,660 Mal sehen. 514 00:29:37,660 --> 00:29:42,200 Machen Sie es öffentlich. 515 00:29:42,200 --> 00:29:46,450 Nr. Halt. 516 00:30:11,610 --> 00:30:13,160 Oh, meine Liebe. 517 00:30:13,160 --> 00:30:18,590 Ich weiß nicht, warum es nicht in der Lage, das zu finden. 518 00:30:18,590 --> 00:30:21,030 Das ist wirklich seltsam. 519 00:30:21,030 --> 00:30:23,820 Ich habe diese Klasse hier richtig. 520 00:30:23,820 --> 00:30:28,650 Ich glaube, ich könnte zu haben - oh. 521 00:30:28,650 --> 00:30:32,010 Ich bin so dumm. Ich habe vergessen, eine PHP-Tag hinzuzufügen. 522 00:30:32,010 --> 00:30:34,670 Das ist, warum. 523 00:30:34,670 --> 00:30:41,260 Jetzt habe ich rückgängig zu machen, dass ein Änderung, die ich gerade getan. 524 00:30:41,260 --> 00:30:44,270 >> Ok. Dort gehen wir. 525 00:30:44,270 --> 00:30:47,500 Das war wirklich dumm. Ich hatte nicht eine Öffnung PHP-Tag. 526 00:30:47,500 --> 00:30:49,900 Aber wie Sie sehen können, jetzt ist es richtig funktioniert, oder? 527 00:30:49,900 --> 00:30:51,240 Wir haben 1 Post. 528 00:30:51,240 --> 00:30:54,730 Wir holten uns den ersten Beitrag, und jetzt ausgedruckt wir seinen Körper. 529 00:30:54,730 --> 00:30:58,010 Große. Fantastic. 530 00:30:58,010 --> 00:31:01,470 Haben Sie Fragen so weit? 531 00:31:01,470 --> 00:31:04,100 Nö? Haben Sie Fragen? 532 00:31:04,100 --> 00:31:08,340 Okay, so dass wir gerade erstellt die Post-Modell, sehr einfach, 533 00:31:08,340 --> 00:31:10,930 und wir werden einige Funktionen später hinzufügen. 534 00:31:10,930 --> 00:31:13,600 Wir können Validierungen und Filtern hinzufügen. 535 00:31:13,600 --> 00:31:15,650 Validierungen sind eines der Dinge 536 00:31:15,650 --> 00:31:18,150 dass Frameworks lösen für Sie wirklich, wirklich gut, 537 00:31:18,150 --> 00:31:21,310 und ich glaube nicht, dass euch diese für Ihre CS50 pset zu tun hatte, 538 00:31:21,310 --> 00:31:24,000 aber wenn Sie Web-Entwicklung für das endgültige Projekt zu tun, 539 00:31:24,000 --> 00:31:26,280 Sie wahrscheinlich werde eine Art von Validierung zu wollen, 540 00:31:26,280 --> 00:31:28,290 wie nicht mit leeren Benutzernamen, 541 00:31:28,290 --> 00:31:31,950 vielleicht mit ein Passwort mit mindestens etwas Länge, solche Dinge. 542 00:31:31,950 --> 00:31:34,750 Und es ist wirklich umständlich, diese Dinge von uns selbst zu implementieren, 543 00:31:34,750 --> 00:31:37,390 und so ziemlich jede einzelne Web-Framework bedeutet es für Sie 544 00:31:37,390 --> 00:31:41,140 und Sie können es in einem sehr saubere Art und Weise zu tun. 545 00:31:41,140 --> 00:31:44,340 Und das Modell ist, wo Sie in der Regel diese Validierungsregeln zu äußern, 546 00:31:44,340 --> 00:31:48,790 weil es die Validierung, ob ein Modell gültig ist oder nicht. 547 00:31:48,790 --> 00:31:51,350 >> Aber jetzt werden wir später zu setzen, bis, 548 00:31:51,350 --> 00:31:53,520 und jetzt werden wir auf einem anderen Teil zu arbeiten, 549 00:31:53,520 --> 00:31:55,400 und wir werden eine neue Sicht versuchen und machen 550 00:31:55,400 --> 00:31:59,580 dass alle Beiträge auflistet. 551 00:31:59,580 --> 00:32:02,490 Die bei der Herstellung einer neuen Aktion für die Auflistung alle Beiträge beteiligten Schritte 552 00:32:02,490 --> 00:32:04,810 ist es, eine Liste aller Beiträge greifen 553 00:32:04,810 --> 00:32:11,990 und dann machen die Liste aller Beiträge über eine Sicht. 554 00:32:11,990 --> 00:32:16,420 Genau hier, zum Glück genug, bereits alle Beiträge packte wir 555 00:32:16,420 --> 00:32:20,310 mit dieser ersten Zeile, die finden alle Funktion, 556 00:32:20,310 --> 00:32:22,520 und jetzt, was wir tun werden, ist so weit 557 00:32:22,520 --> 00:32:25,350 Ich habe direkt die Einstellung der Hauptteil der Antwort 558 00:32:25,350 --> 00:32:29,090 indem Sie die Zeichenfolge, aber jetzt möchte ich einen Blick zu verwenden, 559 00:32:29,090 --> 00:32:31,870 und die Differenz zwischen dem Ziel und gerade dabei 560 00:32:31,870 --> 00:32:35,330 ist mit einem Blick kann ich eine schöne, große HTML-Vorlage zu haben, 561 00:32:35,330 --> 00:32:37,710 und was ich tun kann, ist geben sie bestimmte Variablen 562 00:32:37,710 --> 00:32:42,200 und dann haben die Ansicht automatisch seine Vorlage bevöl 563 00:32:42,200 --> 00:32:44,690 Verwendung dieser Variablen. 564 00:32:44,690 --> 00:32:50,780 Was ich tun werde, ist, werde ich eine neue Ansicht erstellen, 565 00:32:50,780 --> 00:32:55,940 und ich werde die Ansicht, so etwas wie den Namen "blog / index" 566 00:32:55,940 --> 00:33:08,480 und ich werde grundsätzlich binden, das - oh, was soll ich schreiben? 567 00:33:08,480 --> 00:33:12,910 Mein Gehirn ist woanders. 568 00:33:12,910 --> 00:33:16,600 Ich werde die Beiträge variabel zu der Ansicht zu binden, 569 00:33:16,600 --> 00:33:19,950 so dass Art und Weise der Blick hat Zugang zu diesem Post variabel. 570 00:33:19,950 --> 00:33:26,140 >> Und so jetzt brauche ich, um diese Ansicht zu erstellen, 571 00:33:26,140 --> 00:33:28,500 so hier haben wir diese Ordner "Ansichten" 572 00:33:28,500 --> 00:33:32,150 und die erste, ich werde um einen neuen Ordner unter diesem namens "Blog". 573 00:33:32,150 --> 00:33:35,810 Das ist schön. So können wir einen schönen Hierarchie für unsere Ansichten haben. 574 00:33:35,810 --> 00:33:43,910 Und dann werde ich in eine andere Datei gibt namens "index.php". 575 00:33:43,910 --> 00:33:45,780 Ehrfürchtig. 576 00:33:45,780 --> 00:33:52,930 Eigentlich wollen wir beide hier. 577 00:33:52,930 --> 00:33:56,760 Einen View-Datei ist wahrscheinlich die einfachste Teil von all dem, 578 00:33:56,760 --> 00:33:59,090 und das sind wohl Dinge, die Sie mit vertraut sind. 579 00:33:59,090 --> 00:34:01,240 Wir werden etwas wirklich einfach zu tun, 580 00:34:01,240 --> 00:34:05,360 anfangen zu sagen: "Meine Liste der Blog-Posts." 581 00:34:05,360 --> 00:34:14,860 Dann können wir durch, 582 00:34:14,860 --> 00:34:17,920 und wir können durch die Beiträge Array durchlaufen, 583 00:34:17,920 --> 00:34:21,760 greifen jeden einzelnen Beitrag und etwas sagen wie - 584 00:34:21,760 --> 00:34:25,290 vielleicht eine Zeile 585 00:34:25,290 --> 00:34:42,460 und dann drucken Sie den Autor und den Körper. 586 00:34:42,460 --> 00:34:44,480 Das sinnvoll so weit? 587 00:34:44,480 --> 00:34:50,870 Und mal sehen, ob es funktioniert. 588 00:34:50,870 --> 00:34:53,489 Nichts ist passiert. 589 00:34:53,489 --> 00:34:55,090 Ich frage mich, warum. 590 00:34:55,090 --> 00:34:58,760 Oh, vermisste ich ein Schritt. Sehr dumm von mir. 591 00:34:58,760 --> 00:35:01,640 Ich habe einen Blick, aber ich habe nicht die Ansicht der Antwort gesetzt, 592 00:35:01,640 --> 00:35:03,190 so haben Sie ein mehr tun. 593 00:35:03,190 --> 00:35:12,610 Sie müssen "diese Antwort Körper" zu tun, und stellen Sie die Ansicht sein. 594 00:35:12,610 --> 00:35:14,760 Dort gehen wir. 595 00:35:14,760 --> 00:35:17,200 Wir haben unsere Position, und dann haben wir einen Beitrag, 596 00:35:17,200 --> 00:35:20,500 und nur zum Spaß, mal eine andere Stelle einfügen 597 00:35:20,500 --> 00:35:23,390 so können wir eine Liste zu sehen. 598 00:35:31,800 --> 00:35:36,650 Und legen Sie diese 2 Beiträge, 599 00:35:36,650 --> 00:35:39,500 und jetzt, wenn ich die Seite aktualisieren, 600 00:35:39,500 --> 00:35:42,060 wir sehen alle diese Beiträge hier. 601 00:35:42,060 --> 00:35:44,250 >> Heißt das Sinn machen, so weit? 602 00:35:44,250 --> 00:35:46,400 Ja, eine Frage? Oh, okay. 603 00:35:46,400 --> 00:35:51,440 Wie Sie sehen können, haben wir in der Lage gewesen, alle diese Codes trennen 604 00:35:51,440 --> 00:35:53,920 in verschiedene Abschnitte, und dann können Sie sehen, es ist den meisten klar, mit der Ansicht Code. 605 00:35:53,920 --> 00:35:57,810 Diese Datei hier, die die Ansicht vertritt, 606 00:35:57,810 --> 00:36:01,220 es kümmert sich nur um die Daten repräsentieren, die Anzeige von Daten. 607 00:36:01,220 --> 00:36:04,310 Es wird geleitet irgendeine Art von Daten, und alles was man tut, ist nur zeigen es Ihnen. 608 00:36:04,310 --> 00:36:07,660 In allen anderen Teilen des Codes, werden Sie nicht haben, um über all das nicht kümmern, 609 00:36:07,660 --> 00:36:10,480 und in ähnlicher Weise ist Ihre Ansicht Code nichts zu befürchten 610 00:36:10,480 --> 00:36:13,390 wie die Datenbank zuzugreifen und so weiter und so fort, 611 00:36:13,390 --> 00:36:19,950 das ist wirklich gut und macht den Code viel mehr wartbar. 612 00:36:19,950 --> 00:36:23,390 Wie ich schon sagte, Ansichten, sie sind dynamisch, 613 00:36:23,390 --> 00:36:27,080 es ist 1 Datei, aber es würde verschiedene Ansichten erzeugen 614 00:36:27,080 --> 00:36:29,940 auf der Basis der Variablen, die Sie tatsächlich in übergeben, 615 00:36:29,940 --> 00:36:32,370 und darüber hinaus gibt es eine Vielzahl von unterschiedlichen Hilfsfunktionen 616 00:36:32,370 --> 00:36:34,230 dass Sie verwenden können, um Ihnen helfen, Ihren Code schneller schreiben, 617 00:36:34,230 --> 00:36:36,320 denen ich Ihnen in nur einer Sekunde zu zeigen. 618 00:36:36,320 --> 00:36:38,050 Ja. 619 00:36:38,050 --> 00:36:42,490 >> [Student] Also $ 0 ist ein Controller, oder? 620 00:36:42,490 --> 00:36:44,000 Das zweite, was. 621 00:36:44,000 --> 00:36:46,090 Die Frage ist, wird $ 0 ein Controller? 622 00:36:46,090 --> 00:36:48,610 $ 0 ist eine Variable ich hier richtig erstellt. 623 00:36:48,610 --> 00:36:51,320 Ich habe zuerst eine Ansicht. I zugeordnet es bis zu einem gewissen variabel. 624 00:36:51,320 --> 00:36:54,960 Dann legte ich sie in dieser Funktion legen Sie es als den Körper der Antwort. 625 00:36:54,960 --> 00:36:57,260 Heißt das Sinn? 626 00:36:57,260 --> 00:37:02,200 [Schüler] Also ist Ansicht :: Fabrik, ist Blick wie eine Klasse 627 00:37:02,200 --> 00:37:06,610 oder eine Bibliothek [unverständlich] Factory-Funktion? 628 00:37:06,610 --> 00:37:10,640 Die Frage ist, über die Ansicht :: factory-Funktion, 629 00:37:10,640 --> 00:37:14,020 und im Grunde ist dies etwas mehr objektorientierten Programmierung im Wesentlichen. 630 00:37:14,020 --> 00:37:18,000 Ansicht ist die Ansicht Klasse, und es hat eine Methode namens "Fabrik" 631 00:37:18,000 --> 00:37:24,170 und das ist ein Weg, um das Objekt mit dem Namen ist zu packen "blog / index." 632 00:37:24,170 --> 00:37:27,140 Und das ist etwas mehr objektorientierten Programmierung Zeug 633 00:37:27,140 --> 00:37:33,010 dass ich nicht gehen, um hier zu viel zu gehen. 634 00:37:33,010 --> 00:37:36,400 Jetzt offensichtlich, wollen wir neue Stellen zu schaffen, 635 00:37:36,400 --> 00:37:38,790 aber wir wollen nicht, dass es durch eine Datenbank zu tun zu haben, 636 00:37:38,790 --> 00:37:41,280 so werden wir eine neue Aktion für die Schaffung einer neuen Beitrag zu erstellen, 637 00:37:41,280 --> 00:37:43,050 und es gibt eine Menge Sachen, die wir zu tun haben. 638 00:37:43,050 --> 00:37:45,910 >> Das erste, was wir tun werden - wir bekämpfen diese Dinge eins nach dem anderen. 639 00:37:45,910 --> 00:37:48,320 Das erste, was wir tun ist, wir müssen ein Formular erstellen 640 00:37:48,320 --> 00:37:54,460 zum Einfügen eines neuen Beitrag, 641 00:37:54,460 --> 00:37:57,360 aber ich werde auch eine neue Aktion erst hinzufügen, 642 00:37:57,360 --> 00:38:01,050 so das Hinzufügen einer neuen Aktion ist so einfach wie 643 00:38:01,050 --> 00:38:03,490 Hinzufügen einer neuen Funktion mit dem Controller, 644 00:38:03,490 --> 00:38:13,710 und jetzt werde ich etwas sehr Grundlegendes zu tun, 645 00:38:13,710 --> 00:38:20,850 nur greifen diese Ansicht und per Post, sondern es einfach für Sie. 646 00:38:20,850 --> 00:38:26,220 Und dann jetzt werde ich eine neue Sicht-Datei zu erstellen, 647 00:38:26,220 --> 00:38:33,690 und ich werde ein paar Sachen zu schreiben, um zu starten. 648 00:38:33,690 --> 00:38:36,540 Was ist schön zu Kohana ist, dass sie eine Menge von verschiedenen Hilfsfunktionen 649 00:38:36,540 --> 00:38:38,790 für Sie zu View-Code leichter zu schreiben, 650 00:38:38,790 --> 00:38:41,970 und 1 dieser Hilfsfunktionen oder Helfer-Module 651 00:38:41,970 --> 00:38:45,860 Schreiben ist um Formen. 652 00:38:45,860 --> 00:38:49,460 Zum Schreiben von Formen, weiß ich nicht wirklich, mich direkt schreiben keine HTML. 653 00:38:49,460 --> 00:38:51,100 Ihr habt HTML-Formulare geschrieben. 654 00:38:51,100 --> 00:38:54,850 Sie wissen, wie es wirklich sehr, sehr schmerzhaft und lästig, Formen zu schreiben. 655 00:38:54,850 --> 00:38:59,970 Es macht keinen Spaß, so zum Glück 656 00:38:59,970 --> 00:39:04,860 können wir im Grunde einen Formular mit der Kohana 657 00:39:04,860 --> 00:39:11,190 bilden Hilfsfunktionen, um es für uns zu tun. 658 00:39:11,190 --> 00:39:17,340 Wir werden grundsätzlich Felder für jede einzelne Sache, die wir haben, 659 00:39:17,340 --> 00:39:23,160 so dass man für die Autoren und eine für den Körper. 660 00:39:23,160 --> 00:39:27,090 Wir werden, um ein Etikett zu haben, und wir werden einen Eingang haben. 661 00:39:37,450 --> 00:39:41,360 >> Und dann endlich, wir werden eine Vorlage zu haben. 662 00:39:49,350 --> 00:39:52,230 Und wie Sie sehen können, ist dies viel sauberer zu schreiben 663 00:39:52,230 --> 00:39:58,150 als alles, was chaotisch HTML, die ganz nett ist. 664 00:39:58,150 --> 00:40:00,930 Zugegeben, es gibt auch andere Web-Frameworks, die es noch sauberer als die haben, 665 00:40:00,930 --> 00:40:04,440 aber das ist zumindest besser als das Schreiben von HTML selber. 666 00:40:09,400 --> 00:40:11,130 Awesome, so ist dies, was Sie sehen. 667 00:40:11,130 --> 00:40:13,530 Das ist irgendwie chaotisch, 668 00:40:13,530 --> 00:40:19,720 so werde ich einen Zeilenumbruch dort hinzufügen 669 00:40:19,720 --> 00:40:21,180 zu machen, dass uns ein wenig schöner. 670 00:40:21,180 --> 00:40:23,330 Nun, natürlich, es sieht immer noch sehr, sehr schlecht, aber wir sind nur konzentriert 671 00:40:23,330 --> 00:40:26,050 auf die Funktionalität für jetzt und nicht auf die Ästhetik. 672 00:40:26,050 --> 00:40:28,010 Keine Zeit, um alles zu tun. 673 00:40:28,010 --> 00:40:30,600 Und wie Sie sehen können, haben wir nun ein super Grundform 674 00:40:30,600 --> 00:40:32,080 Das ist ganz nett. 675 00:40:32,080 --> 00:40:36,730 Dieser Code würde ich sagen, ist sauberer als zu versuchen, eine HTML schreiben, bilden sich selbst, 676 00:40:36,730 --> 00:40:40,290 so das ist schön. 677 00:40:40,290 --> 00:40:42,030 Was kommt als nächstes? 678 00:40:42,030 --> 00:40:49,260 Jetzt müssen wir die Dinge mit der Aktion zu tun. 679 00:40:49,260 --> 00:40:51,240 Normalerweise, wenn Sie HTML-Formulare schreiben, 680 00:40:51,240 --> 00:40:54,070 man muss es sagen, wo es geht, um die Form zu übermitteln. 681 00:40:54,070 --> 00:40:56,050 Standardmäßig in den meisten Web-Frameworks, 682 00:40:56,050 --> 00:40:58,200 es legt auf die exakt gleiche URL, also die Sache ist, 683 00:40:58,200 --> 00:41:01,310 wenn Sie eine Anfrage senden, um get / blog / new, 684 00:41:01,310 --> 00:41:03,240 es sollte Ihnen das Formular anzuzeigen, 685 00:41:03,240 --> 00:41:06,810 aber wenn Sie einen Beitrag Anfrage senden / blog / new mit den Daten, 686 00:41:06,810 --> 00:41:10,000 sollte es tatsächlich versuchen, diesen Posten zu retten 687 00:41:10,000 --> 00:41:13,300 und etwas zu tun mit ihm. 688 00:41:20,630 --> 00:41:22,180 >> Was wir tun werden, ist 689 00:41:22,180 --> 00:41:25,320 im Grunde alles, was wir tun müssen, um zu überprüfen, ob es ein Post-Anforderung oder einen GET-Request haben 690 00:41:25,320 --> 00:41:29,350 ist zu prüfen, was sind die Postvariablen definiert werden. 691 00:41:29,350 --> 00:41:34,560 Und wenn die Post Variable gesetzt ist, dann werden wir versuchen, und erstellen einen neuen Beitrag. 692 00:41:34,560 --> 00:41:38,440 Auch hier haben wir nur das tun, 693 00:41:38,440 --> 00:41:41,090 und das schafft einen neuen Beitrag, und wir sind buchstäblich werde 694 00:41:41,090 --> 00:41:51,150 legen Sie die Felder wie dieses, 695 00:41:51,150 --> 00:41:55,640 und dann werden wir es retten. 696 00:41:55,640 --> 00:41:59,200 Und dann werde ich umleiten 697 00:41:59,200 --> 00:42:07,660 auf der Index-Seite, so dass sie unsere Liste der Beiträge wieder zu sehen. 698 00:42:07,660 --> 00:42:09,620 Lassen Sie uns versuchen, die. 699 00:42:09,620 --> 00:42:15,160 Ich werde sagen, "Brandon" 700 00:42:15,160 --> 00:42:18,140 und dann legt die Post, und wenn alles gut geht, 701 00:42:18,140 --> 00:42:21,390 wie Sie sehen können, umgeleitet, es mich in die Index-Seite, 702 00:42:21,390 --> 00:42:24,140 und wenn ich scrollen Sie nach unten, wir haben eine neu eingefügte Post. 703 00:42:24,140 --> 00:42:26,430 Yay! 704 00:42:26,430 --> 00:42:28,430 Ja, Frage. 705 00:42:28,430 --> 00:42:31,760 >> [Student] Was, wenn Sie genau dasselbe eingetreten war 706 00:42:31,760 --> 00:42:33,380 Sie zuvor eingegeben? 707 00:42:33,380 --> 00:42:36,950 Ist es zu überprüfen, um sicherzustellen, dass Sie nicht dupliziert haben 708 00:42:36,950 --> 00:42:38,810 die gleiche Vorlage? 709 00:42:38,810 --> 00:42:41,660 Seien Standard, nein, da standardmäßig - 710 00:42:41,660 --> 00:42:46,470 sorry, ist die Frage, ob Sie in der exakt gleichen Daten in das Formular eingeben 711 00:42:46,470 --> 00:42:50,180 und machen geltend, wird er Ihnen, einen doppelten Objekt einfügen, 712 00:42:50,180 --> 00:42:52,550 einen doppelten Eintrag Wesentlichen? 713 00:42:52,550 --> 00:42:54,070 Gerade jetzt, ja, wird er Ihnen, das zu tun, 714 00:42:54,070 --> 00:42:58,860 weil in Datenbanken, es ist durchaus möglich, komplett doppelte Zeilen haben, 715 00:42:58,860 --> 00:43:02,260 aber wenn das ein Problem ist, dann können Sie Validierungen hinzufügen, zum Beispiel, 716 00:43:02,260 --> 00:43:06,430 um sicherzustellen, dass, wenn dies genau das gleiche wie etwas, das bereits vorhanden ist, 717 00:43:06,430 --> 00:43:08,720 dann sagen, dass es ein ungültiges Objekt, 718 00:43:08,720 --> 00:43:11,200 und dann können Sie auch angeben, Ihre Fehlermeldung 719 00:43:11,200 --> 00:43:14,390 und sagen: "Ungültig, weil diese bereits vorhanden" oder so ähnlich. 720 00:43:14,390 --> 00:43:22,420 Aber in diesem Fall konnte ich einfach etwas schaffen Duplikat. 721 00:43:22,420 --> 00:43:26,010 Jetzt wollen wir versuchen, und fügen Sie einige Validierungen. 722 00:43:26,010 --> 00:43:30,400 Das Problem dabei ist, dass gerade jetzt 723 00:43:30,400 --> 00:43:34,220 Ich konnte buchstäblich senden Sie eine völlig leere Post. 724 00:43:34,220 --> 00:43:37,500 Ich kann jetzt auf diese Schaltfläche klicken, und wir gehen. 725 00:43:37,500 --> 00:43:40,290 Man kann nicht wirklich sehen, aber diese zusätzliche Zeile hier 726 00:43:40,290 --> 00:43:43,830 zeigt an, dass ich buchstäblich einen neuen Beitrag. 727 00:43:43,830 --> 00:43:46,050 Es hat nur eine leere Autor und eine leere Körper, 728 00:43:46,050 --> 00:43:48,630 und wir wollen nicht, damit die Menschen zu tun. 729 00:43:48,630 --> 00:43:52,550 Dies ist, wo die Validierung kommt in. 730 00:43:52,550 --> 00:43:57,540 >> Ich kann auf meine Model-Objekt zu gehen, 731 00:43:57,540 --> 00:43:59,530 und jetzt kann ich eine neue Funktion, die angibt, hinzufügen 732 00:43:59,530 --> 00:44:02,000 welche Validierungsregeln sollte ich auf dieses Modell hinzufügen 733 00:44:02,000 --> 00:44:06,840 um sicherzustellen, dass sie gültig ist oder angeben, was bedeutet es, ein gültiger Beitrag sein? 734 00:44:06,840 --> 00:44:10,210 Und ich möchte sagen, es ist nur eine gültige Post, wenn sowohl der Autor und Körper 735 00:44:10,210 --> 00:44:15,150 sind nicht leer ist, und das ist, wie Sie es in Kohana zu tun. 736 00:44:15,150 --> 00:44:18,750 Sie erstellen eine neue Funktion namens "Regeln" 737 00:44:18,750 --> 00:44:20,210 und dann kannst du im Grunde ein assoziatives Array zurück 738 00:44:20,210 --> 00:44:24,230 definiert, dass die Validierungsregeln für dieses Objekt. 739 00:44:24,230 --> 00:44:27,530 Wir werden das Array zurück, und dann, was wir tun werden, ist 740 00:44:27,530 --> 00:44:32,820 sagen, "Autor", es geht in ein Array, 741 00:44:32,820 --> 00:44:37,720 die an einem anderen Array namens geht "nicht leer ist." 742 00:44:37,720 --> 00:44:41,480 Und dann werde ich sagen: "Körper". 743 00:44:50,980 --> 00:44:54,120 Okay, und die Syntax für diese und die Struktur für diese 744 00:44:54,120 --> 00:44:56,530 kann ein wenig schwerfällig und ein wenig kompliziert aussehen. 745 00:44:56,530 --> 00:44:59,330 Wenn Sie die Dokumentation lesen, ist es ziemlich einfach, herauszufinden, 746 00:44:59,330 --> 00:45:02,500 Aber im Grunde ist es das, was Sie tun müssen, um festzulegen, müssen 747 00:45:02,500 --> 00:45:04,130 einige Validierungsregeln, und es gibt eine Menge von verschiedenen Regeln 748 00:45:04,130 --> 00:45:06,810 dass Kohana werden Sie kostenlos zu geben, wie Sie können Regeln hinzufügen, zu sagen, 749 00:45:06,810 --> 00:45:08,410 es muss mindestens diese Länge. 750 00:45:08,410 --> 00:45:11,800 Vielleicht hat es numerisch sein. Vielleicht hat es alpha numerisch sein. 751 00:45:11,800 --> 00:45:14,410 Vielleicht hat es diese Länge höchstens so weiter und so fort sein. 752 00:45:14,410 --> 00:45:17,730 Es gibt eine Menge von verschiedenen Regeln, die Kohana bietet für Sie, 753 00:45:17,730 --> 00:45:19,610 und Sie können auf die Webseite gehen, schauen Sie in die Dokumentation, 754 00:45:19,610 --> 00:45:23,150 und Sie können all die verschiedenen Dinge, die Sie tun können. 755 00:45:23,150 --> 00:45:25,650 >> Aber das ist alles, was ich zu tun habe, 756 00:45:25,650 --> 00:45:30,490 und jetzt sehen, was passiert, lassen 757 00:45:30,490 --> 00:45:34,060 wenn ich eine leere Post. 758 00:45:34,060 --> 00:45:36,960 Was wird passieren? Oh, nein, ich bekomme eine Fehlermeldung. 759 00:45:36,960 --> 00:45:39,440 Ich bekomme eine Validierung Ausnahme. 760 00:45:39,440 --> 00:45:41,070 Nun, es ist gut. 761 00:45:41,070 --> 00:45:43,200 Er erzählte mir, dass mein Modell ist ungültig, 762 00:45:43,200 --> 00:45:45,780 aber ich möchte nicht eine Ausnahme angezeigt 763 00:45:45,780 --> 00:45:48,720 meine Benutzer, wenn sie versuchen, etwas ungültig einreichen, oder? 764 00:45:48,720 --> 00:45:51,560 Ich will, dass sie eine Art von freundlicher Fehlermeldung zu geben, 765 00:45:51,560 --> 00:45:53,610 wenn etwas schief geht. 766 00:45:53,610 --> 00:46:01,830 Was wir tun werden ist, dass wir zu gehen 767 00:46:01,830 --> 00:46:04,490 wickeln alles in einen Try-Catch-Schleife. 768 00:46:04,490 --> 00:46:06,750 Eigentlich, denke ich, das ist auch etwas, das Sie noch nicht gelernt haben, 769 00:46:06,750 --> 00:46:10,820 in CS50, weil C, der Programmiersprache C, 770 00:46:10,820 --> 00:46:14,000 keine Ausnahmen, aber fast jeder anderen Sprache 771 00:46:14,000 --> 00:46:16,700 Ausnahmen hat, so wirklich, wirklich kurz, 772 00:46:16,700 --> 00:46:19,430 eine Ausnahme ist etwas, das ein Stück Code können 773 00:46:19,430 --> 00:46:21,430 eine Ausnahme, wenn etwas schief geht, 774 00:46:21,430 --> 00:46:23,410 aber dann vielleicht noch einige andere Stück Code höher 775 00:46:23,410 --> 00:46:25,810 kann diese Ausnahme abfangen und etwas zu tun mit ihm. 776 00:46:25,810 --> 00:46:27,710 >> Beispielsweise in diesem Fall, 777 00:46:27,710 --> 00:46:29,940 das Stück Code, der versucht, ein Modell zu retten ist, 778 00:46:29,940 --> 00:46:33,170 Es bestätigt das Modell, und wenn es sagt: "Okay, dieses Modell ist ungültig" 779 00:46:33,170 --> 00:46:36,150 es wird eine Ausnahme ausgelöst, und das ist eine Art entspricht 780 00:46:36,150 --> 00:46:39,870 in C Sie vielleicht eine -1 oder so etwas zurückzugeben. 781 00:46:39,870 --> 00:46:42,320 Und dann für mich, ist diese Funktion, meinen Code 782 00:46:42,320 --> 00:46:46,310 auf einer höheren Ebene, kann ich versuchen und fangen diese Ausnahme 783 00:46:46,310 --> 00:46:49,330 und im Grunde sagen: "Okay, wenn ich die Ausnahme abfangen, was soll ich tun?" 784 00:46:49,330 --> 00:46:51,570 Oder ich könnte wählen, nicht zu, dass die Ausnahme abfangen und lassen Sie jemand höher 785 00:46:51,570 --> 00:46:54,400 die Ausnahme abfangen, oder wenn niemand fängt, 786 00:46:54,400 --> 00:46:56,820 dann das ganze Programm stürzt und sagt: 787 00:46:56,820 --> 00:46:59,170 "Etwas ist schief gelaufen, und ich konnte damit nicht umgehen." 788 00:46:59,170 --> 00:47:04,490 >> Aber was wir tun, ist, dass Sie ein Stück Code in einem Try-Block ein, 789 00:47:04,490 --> 00:47:09,030 und dann können Sie auch einen so genannten Catch-Block hinzuzufügen, 790 00:47:09,030 --> 00:47:17,300 Das ist die Art von Code, die versuchen, zu fangen und Ausnahmen, die auftreten können. 791 00:47:17,300 --> 00:47:20,430 Und so, wenn ich fangen diese besondere Ausnahme 792 00:47:20,430 --> 00:47:23,110 oder Ungültig Ausnahme, dann, was ich tun werde, ist 793 00:47:23,110 --> 00:47:31,210 Ich werde die Fehler gesetzt - ich glaube, das ist, wie ich es tun - 794 00:47:31,210 --> 00:47:35,370 und ich werde die Fehler auf ein Objekt einzustellen. 795 00:47:35,370 --> 00:47:40,920 Und dann, was ich tun werde, ist, wenn es diese Ausnahme trifft, 796 00:47:40,920 --> 00:47:43,090 es wird nicht umgeleitet werden, und wenn es nicht umzuleiten, 797 00:47:43,090 --> 00:47:46,160 es wird aus dem Blog zu kommen, wenn 798 00:47:46,160 --> 00:47:49,920 und schlug dieses Blog / neu, die wollen, ist was ich tun möchte. 799 00:47:49,920 --> 00:47:53,190 Wenn es ein Fehler ist, dann will ich gehen zurück zum Formular 800 00:47:53,190 --> 00:47:55,100 und zeigen Sie diese Fehler. 801 00:47:55,100 --> 00:48:00,780 Nun, was ich tun möchte, ist möchte ich in dieser Fehler passieren 802 00:48:00,780 --> 00:48:07,010 zur Ansicht. 803 00:48:07,010 --> 00:48:10,360 Okay, ich glaube, ich habe die Ansicht, genau hier, 804 00:48:10,360 --> 00:48:14,660 und im Grunde möchte ich diese Fehler anzeigen, wenn sie vorhanden sind. 805 00:48:14,660 --> 00:48:19,740 Bevor ich schreiben die HTML für das, bin ich ganz schnell gehen 806 00:48:19,740 --> 00:48:21,720 zeigen, was die Struktur dieser Fehler variable aussieht, 807 00:48:21,720 --> 00:48:23,080 und das ist eine gute Praxis im Allgemeinen. 808 00:48:23,080 --> 00:48:25,070 Eine Menge Zeit, Sie etwas von einem gewissen Verfahren zurück, 809 00:48:25,070 --> 00:48:27,250 eine Funktion in der Web-Framework, 810 00:48:27,250 --> 00:48:29,410 und Sie nicht wissen, was die Variable aussieht, 811 00:48:29,410 --> 00:48:31,210 so dass Sie nicht wissen, wie man damit arbeitet. 812 00:48:31,210 --> 00:48:37,790 Ich werde einen Druck r Methode verwenden, um im Grunde ausdrucken. 813 00:48:37,790 --> 00:48:41,100 >> Und wie Sie sehen können, es sagt mir, es ist ein assoziatives Array, 814 00:48:41,100 --> 00:48:44,880 und Sie haben eine Taste, Autor, Punkte zu dieser Zeichenfolge 815 00:48:44,880 --> 00:48:47,050 Autor darf nicht leer sein, und eine andere Taste, Körper, 816 00:48:47,050 --> 00:48:49,680 Punkte auf einer anderen Zeichenfolge Körper darf nicht leer sein. 817 00:48:49,680 --> 00:48:52,130 Ich bin wie, okay, cool. 818 00:48:52,130 --> 00:48:56,230 Dann kann ich durch das Array durchlaufen und ausdrucken, jede einzelne Nachricht. 819 00:48:56,230 --> 00:49:02,150 Es ist im Grunde wie ein assoziatives Array mit einer Reihe von Nachrichten. 820 00:49:02,150 --> 00:49:13,500 Was ich zu tun ist, "wenn Fehler" 821 00:49:13,500 --> 00:49:17,140 und ich werde eine ungeordnete Liste zu erstellen, 822 00:49:17,140 --> 00:49:20,860 und ich bin dabei, um durch alle Fehler durchlaufen. 823 00:49:33,730 --> 00:49:38,710 Und dies, und jetzt werde ich versuchen, diese Vorlage wieder 824 00:49:38,710 --> 00:49:41,200 und mal sehen, was wir bekommen. 825 00:49:41,200 --> 00:49:45,370 Jetzt bekommen wir diese schöne Liste von Fehlern, 826 00:49:45,370 --> 00:49:48,630 und das ist immer noch ziemlich hässlich, aber das kann natürlich formatiert werden schön aussehen, 827 00:49:48,630 --> 00:49:51,620 aber die Grundidee ist nur in ein paar Zeilen Code, 828 00:49:51,620 --> 00:49:53,720 wir waren in der Lage, unser Modell zu validieren, 829 00:49:53,720 --> 00:49:56,510 stellen Sie sicher, dass bestimmte Felder nicht leer waren, 830 00:49:56,510 --> 00:49:59,740 und wenn etwas schief ging, dann wieder eine Art von Fehlermeldung 831 00:49:59,740 --> 00:50:01,760 Ich konnte dann präsentieren an den Benutzer zurück. 832 00:50:01,760 --> 00:50:03,910 Sie können auch Ihre Validierung anpassen 833 00:50:03,910 --> 00:50:07,590 so dass Sie tatsächlich eine Fehlermeldung 834 00:50:07,590 --> 00:50:09,620 das ist mehr, speziell auf Ihre Anwendung oder so ähnlich. 835 00:50:09,620 --> 00:50:14,600 Alle, die es in der Regel kundengerecht. 836 00:50:14,600 --> 00:50:17,150 >> Leider haben wir aus der Zeit laufen, 837 00:50:17,150 --> 00:50:20,040 so werde ich hier schneiden Sie die Live-Session-Codierung haben. 838 00:50:20,040 --> 00:50:22,980 Es gibt eine Reihe von anderen Funktionen, die ich will, um für Sie demonstrieren 839 00:50:22,980 --> 00:50:25,650 in diesem Beispiel. 840 00:50:25,650 --> 00:50:27,620 Zum Beispiel können Sie Vorlagen zu Ihrer Website hinzufügen, 841 00:50:27,620 --> 00:50:31,110 vielleicht gibt es eine Art von HTML-Code, den Sie anwenden möchten 842 00:50:31,110 --> 00:50:35,190 auf jeder einzelnen Seite in Ihrer Website, und anstelle von Einfügen, dass 843 00:50:35,190 --> 00:50:40,630 in jeder einzelnen View-Datei haben, die würde natürlich eine schlechte Praxis zu sein, 844 00:50:40,630 --> 00:50:43,020 Sie kann grundsätzlich definieren diese Vorlagen, 845 00:50:43,020 --> 00:50:46,660 und dann in Ihrem Controller sagen: "Okay, ich bin mit dieser Vorlage." 846 00:50:46,660 --> 00:50:50,130 "Habe alle meine Ansichten verwenden Sie diese Vorlage." 847 00:50:50,130 --> 00:50:52,470 Und der letzte, was ich möchte Ihnen zeigen, wie auch 848 00:50:52,470 --> 00:50:57,800 dass wir keine Zeit haben, ist für Cross-Site-Scripting, 849 00:50:57,800 --> 00:51:01,430 und im Grunde denke ich euch haben wahrscheinlich in CS50 gesehen - 850 00:51:01,430 --> 00:51:03,770 Ich denke, David Malan gesprochen wahrscheinlich darüber, wie Sie in der Regel spritzen 851 00:51:03,770 --> 00:51:08,040 JavaScript-Code in - haben Sie darüber gesprochen? 852 00:51:08,040 --> 00:51:10,220 Vielleicht? Vielleicht nicht? 853 00:51:10,220 --> 00:51:12,670 >> Aber viele Male Sie können böswillige JavaScript-Code zu injizieren 854 00:51:12,670 --> 00:51:15,630 in jemandes Datenbank, und wenn sie nicht entkommen, dass richtig, 855 00:51:15,630 --> 00:51:18,280 dann, wenn sie diese Daten zurück an den Benutzer zu präsentieren, 856 00:51:18,280 --> 00:51:21,310 dann kann es eine Art von Zufalls JavaScript Code, den Sie wollen nicht passieren, laufen, 857 00:51:21,310 --> 00:51:23,050 und ich wollte zeigen, wie Sie möchten, dass innerhalb von Kohana zu tun. 858 00:51:23,050 --> 00:51:25,380 Es ist eigentlich wirklich, wirklich einfach. 859 00:51:25,380 --> 00:51:31,920 Ich es jetzt in 2 Sekunden buchstäblich tun konnte. 860 00:51:31,920 --> 00:51:34,560 Alles, was Sie tun müssen, ist im Grunde nur diese Dinge 861 00:51:34,560 --> 00:51:46,920 in diesem Ding namens HTML-Entitäten. 862 00:51:46,920 --> 00:51:51,180 Und das wird automatisch alle Zeichen richtig zu entkommen 863 00:51:51,180 --> 00:51:54,730 und stellen Sie sicher, dass Sie dieses Problem nicht bekommen. 864 00:51:54,730 --> 00:51:57,220 [Schüler] Sie buchstabiert den ersten Test falsch. 865 00:51:57,220 --> 00:52:01,030 [Brandon Liu] Oh, hoppla. 866 00:52:01,030 --> 00:52:06,420 >> Okay, das ist alles, was ich hatte, mit Ihnen für heute zu teilen. 867 00:52:06,420 --> 00:52:09,930 Diese Folien gehen zu geschrieben werden, aber diese sind in der Regel 868 00:52:09,930 --> 00:52:13,900 die einzigen Ressourcen, sollten Sie wirklich brauchen, um mit Kohana loszulegen. 869 00:52:13,900 --> 00:52:16,770 Sie können auf die Website gehen. Sie haben eine Gebrauchsanweisung, und sie haben auch eine API Explorer. 870 00:52:16,770 --> 00:52:20,630 Wir können all die verschiedenen Funktionen und Hilfsfunktionen, die sie für Sie zu erkunden. 871 00:52:20,630 --> 00:52:22,070 Sie haben im Allgemeinen genug Informationen auf der Website 872 00:52:22,070 --> 00:52:25,310 die Sie verwenden können, um loszulegen und loslegen mit Kohana. 873 00:52:25,310 --> 00:52:30,840 Es gibt nicht so viele Tutorials, denke ich, für Kohana, außerhalb des 874 00:52:30,840 --> 00:52:33,880 was sie auf der Website haben hier, so ist dies wohl die beste Wahl. 875 00:52:33,880 --> 00:52:35,600 Aber wenn Sie mit dem Web-Framework gehen wollen 876 00:52:35,600 --> 00:52:37,120 und Sie wollen nicht zu holen, eine neue Sprache zu haben, 877 00:52:37,120 --> 00:52:39,780 und Sie etwas, das relativ leicht ist und eine einfache Lernkurve möchten, 878 00:52:39,780 --> 00:52:41,570 Ich würde definitiv empfehlen Kohana. 879 00:52:41,570 --> 00:52:44,040 Das ist wahrscheinlich das beste Angebot dafür. 880 00:52:44,040 --> 00:52:46,830 Die lustige Sache ist aber, wenn wir mit Ruby on Rails, 881 00:52:46,830 --> 00:52:48,550 wir konnten repliziert haben, was wir gerade getan 882 00:52:48,550 --> 00:52:51,430 und wahrscheinlich in unter 3 Minuten. 883 00:52:51,430 --> 00:52:54,710 Kein Witz, sondern das Lernen Ruby on Rails dauert viel länger 884 00:52:54,710 --> 00:52:56,780 als es dauern würde, Kohana lernen. 885 00:52:56,780 --> 00:52:58,840 Es ist im Grunde Ihre Wahl, was Sie wählen, die lernen wollen, 886 00:52:58,840 --> 00:53:01,260 aber wenn Sie aufstehen und schnell zum Laufen möchten, 887 00:53:01,260 --> 00:53:03,870 Kohana ist definitiv eine sehr gute Wahl. 888 00:53:03,870 --> 00:53:06,730 >> Irgendwelche letzten Fragen, bevor wir am Ende? Ja. 889 00:53:06,730 --> 00:53:08,020 [Schüler] Wie würden wir integrieren, dass 890 00:53:08,020 --> 00:53:13,120 in einem CSS-Framework wie Sie waren, als Sie angewiesen wurden? 891 00:53:13,120 --> 00:53:16,700 Die Frage ist, wie würden wir integrieren, dass mit einem CSS-Framework? 892 00:53:16,700 --> 00:53:18,740 Was wir tun, ist wahrscheinlich wir wahrscheinlich umfassen würde 893 00:53:18,740 --> 00:53:21,090 einen neuen Ordner, in dem wir alle CSS-Dateien-Dump, 894 00:53:21,090 --> 00:53:23,010 und dann würden wir auch eine neue Vorlage. 895 00:53:23,010 --> 00:53:26,090 In der Vorlage würden wir die CSS-Dateien enthalten 896 00:53:26,090 --> 00:53:28,410 um sicherzustellen, dass sie auf jeder einzelnen Seite verwiesen, 897 00:53:28,410 --> 00:53:32,220 und dann, wenn Sie tatsächlich das Schreiben von HTML, 898 00:53:32,220 --> 00:53:34,010 fügen Sie einfach entsprechenden Klassen und so weiter, 899 00:53:34,010 --> 00:53:36,100 und beispielsweise, wenn man mit so etwas sind wie die Form 900 00:53:36,100 --> 00:53:40,710 Hilfsfunktion, können Sie weitere Parameter nachträglich hinzufügen 901 00:53:40,710 --> 00:53:42,830 angeben, welche Klassen, die Sie, um verschiedene Dinge befestigt werden wollen 902 00:53:42,830 --> 00:53:47,820 so dass sie es richtig stylen konnte, und das ist im Grunde, wie Sie gehen würde. 903 00:53:47,820 --> 00:53:50,100 >> Noch Fragen? 904 00:53:50,100 --> 00:53:52,090 Ehrfürchtig. 905 00:53:52,090 --> 00:53:58,540 Vielen Dank für Ihre Zeit, und ich danke Ihnen für Ihr Kommen. 906 00:53:58,540 --> 00:54:05,170 Ich war nicht dabei, sehr viel mehr hinzufügen, 907 00:54:05,170 --> 00:54:08,560 aber ein wirklich schnell ist, dass wir nicht einen Link 908 00:54:08,560 --> 00:54:12,590 auf das Formular. 909 00:54:12,590 --> 00:54:14,310 Wirklich dumm. 910 00:54:14,310 --> 00:54:20,110 Fügen wir ein - tatsächlich in der Ansicht, Blog-, Index-, 911 00:54:20,110 --> 00:54:23,890 Lassen Sie uns ganz schnell einen Link, der auf die neue Seite geht, 912 00:54:23,890 --> 00:54:26,770 die Seite, wo wir einen neuen Beitrag einfügen. 913 00:54:26,770 --> 00:54:29,950 Wir werden dies tun. 914 00:54:29,950 --> 00:54:34,020 Was ist schön ist, gibt es diese ganze Gruppe von HTML-Hilfefunktionen 915 00:54:34,020 --> 00:54:37,090 die verschiedenen Dinge für dich tun, so dass Sie bereits die Entitäten sah 916 00:54:37,090 --> 00:54:41,980 hier funktionieren, aber sie haben auch eine Funktion namens "Anker" 917 00:54:41,980 --> 00:54:45,400 die Sie eingeben können, in Blog / new 918 00:54:45,400 --> 00:54:49,550 und sagen: "Neue Blog." 919 00:54:49,550 --> 00:54:51,850 Und es würde den Link für Sie zu erstellen, 920 00:54:51,850 --> 00:54:54,120 und das scheint wirklich trivial zu tun, aber das ist schön, 921 00:54:54,120 --> 00:54:58,720 da nehme an, dass Sie sich bewegen Sie Ihre Website von 1 Domain zu einem anderen. 922 00:54:58,720 --> 00:55:01,390 Und wenn Sie gerade schrieb die URLs sich selbst, 923 00:55:01,390 --> 00:55:04,350 dann müssten Sie alle URLs ändern. 924 00:55:04,350 --> 00:55:06,850 Oder vielleicht haben Sie es zog aus ein Unterordner zu einem anderen Unterordner. 925 00:55:06,850 --> 00:55:08,790 Sie müssten alle, die URLs selbst ändern, 926 00:55:08,790 --> 00:55:12,180 und das ist kein Spaß. 927 00:55:12,180 --> 00:55:14,510 Sie können diese Anker hier zu verwenden, 928 00:55:14,510 --> 00:55:18,950 und Sie können die Domain oder den Unterordner Präfix ändern 929 00:55:18,950 --> 00:55:20,640 in der Konfigurationsdatei einmal, 930 00:55:20,640 --> 00:55:22,980 und dann wird es, daß überall anwenden, und dies ist wiederum 931 00:55:22,980 --> 00:55:26,930 ein großes Beispiel der Sie sich nicht wiederholen, Trocknen Sie den Code aus. 932 00:55:26,930 --> 00:55:30,370 Wo auch immer Sie wiederholst dich, versuchen Sie und extrahieren in eine Art von Konfigurationsdatei 933 00:55:30,370 --> 00:55:34,160 oder an eine andere Funktion haben und damit umgehen, dass für Sie. 934 00:55:34,160 --> 00:55:42,930 >> Und die letzte Sache, die ich dir zeigen wollte war 935 00:55:42,930 --> 00:55:50,250 Angenommen, wir sind zurück auf diesem Posten, und ich hatte ein paar wirklich langen Essay besteht, 936 00:55:50,250 --> 00:55:52,670 aber ich habe vergessen, mein Autor enthalten. 937 00:55:52,670 --> 00:55:55,210 Jetzt, wenn ich auf "Submit Post" 938 00:55:55,210 --> 00:55:57,270 Ich habe alles verloren. 939 00:55:57,270 --> 00:56:00,000 Nein! Wirklich traurig. 940 00:56:00,000 --> 00:56:03,870 So, wie Sie damit umgehen? 941 00:56:03,870 --> 00:56:06,070 Dies ist, was wir tun. 942 00:56:06,070 --> 00:56:09,340 Was wir tun, ist hier für diese Ein-und Textbereich Funktionen, 943 00:56:09,340 --> 00:56:12,700 wenn wir einen zweiten Parameter, dann den Wert dieser zweiten Parameter 944 00:56:12,700 --> 00:56:16,620 sein wird, was das Feld wird sich zunächst mit füllt werden. 945 00:56:16,620 --> 00:56:23,570 Was wir tun können, ist in unserem Blog-Controller, 946 00:56:23,570 --> 00:56:25,360 wir eine weitere Variable binden konnte. 947 00:56:25,360 --> 00:56:27,050 Nennen Sie es "Werte" vielleicht. 948 00:56:27,050 --> 00:56:30,620 Und passieren in der Post-Array, buchstäblich. 949 00:56:30,620 --> 00:56:32,620 Das bedeutet, dass, wenn die Überprüfung fehlschlägt, 950 00:56:32,620 --> 00:56:36,570 Pass mir die Post-Array, das ich von der letzten Anfrage eingereicht, 951 00:56:36,570 --> 00:56:38,420 und so kann ich die Werte aus meinem letzten Vorlage verwenden 952 00:56:38,420 --> 00:56:44,540 , um die Felder zu füllen. 953 00:56:44,540 --> 00:56:49,600 Jetzt kann ich so etwas wie Werte Autor tun 954 00:56:49,600 --> 00:56:55,180 und Werte nun Körper und so, wenn ich etwas tun random stuff 955 00:56:55,180 --> 00:57:01,490 und klicken Sie auf "Beitrag abschicken", dann bleibt es dort. 956 00:57:01,490 --> 00:57:03,830 Aber wir werden, um in einem weiteren Problem führen. 957 00:57:03,830 --> 00:57:07,670 Das funktioniert, aber wenn ich auf die Seite das erste Mal, 958 00:57:07,670 --> 00:57:09,720 es wird abstürzen, und das ist, weil das erste Mal, 959 00:57:09,720 --> 00:57:13,730 gehen wir in die Seite hat dieser Beitrag Variable noch nicht definiert worden. 960 00:57:13,730 --> 00:57:18,170 Es ist null. Es ist nicht vorhanden. 961 00:57:18,170 --> 00:57:21,630 >> Und was wir sagen wollen, ist, wenn dieser Schlüssel vorhanden ist, 962 00:57:21,630 --> 00:57:27,750 dann den Wert dieser Reihe, 963 00:57:27,750 --> 00:57:30,450 aber wenn der Schlüssel nicht vorhanden ist, dann ist eine leere Zeichenfolge. 964 00:57:30,450 --> 00:57:32,150 Das ist die Funktionalität, die wir hier wollen. 965 00:57:32,150 --> 00:57:34,690 Wir wollen prüfen, ob der Schlüssel, bevor Sie auf das Array zugreifen existiert, 966 00:57:34,690 --> 00:57:36,580 und zum Glück genug, 967 00:57:36,580 --> 00:57:38,570 Kohana gibt uns auch eine Hilfsfunktion für die. 968 00:57:38,570 --> 00:57:41,040 Sie haben diese ganze Reihe von Funktionen 969 00:57:41,040 --> 00:57:43,660 unter dem Namen ARR, kurz für Array 970 00:57:43,660 --> 00:57:45,800 und sie haben 1 Funktion "bekommen" 971 00:57:45,800 --> 00:57:48,690 und Sie können im Array übergeben, 972 00:57:48,690 --> 00:57:50,740 und Sie können den Namen des Schlüssels übergeben. 973 00:57:50,740 --> 00:57:54,330 Dann, was sie tun werden, ist im Grunde wird es versuchen, diesen Schlüssel zu bekommen, 974 00:57:54,330 --> 00:57:56,470 aber wenn das Schlüssel nicht im Array vorhanden ist, 975 00:57:56,470 --> 00:58:00,900 dann wird es leer zurück, oder wir können auch eine Standard angeben, glaube ich, 976 00:58:00,900 --> 00:58:03,500 Das ist schön. 977 00:58:09,740 --> 00:58:13,150 Nun, wenn wir das Gleiche noch einmal zu tun, 978 00:58:13,150 --> 00:58:15,970 dann sehen Sie, jetzt funktioniert es beim ersten Mal, 979 00:58:15,970 --> 00:58:18,080 und wieder, wenn wir in irgendeiner random stuff geben 980 00:58:18,080 --> 00:58:23,210 und versuchen Sie es und senden, dann ist es dort bleibt. 981 00:58:23,210 --> 00:58:31,640 >> Und ich glaube, ich kann auch zeigen, wie Sie eine Vorlage wirklich schnell. 982 00:58:31,640 --> 00:58:36,140 Was wir tun können, ist zunächst können wir eine neue Ansicht namens "template.php" hinzufügen 983 00:58:36,140 --> 00:58:38,890 im Ordner Views, 984 00:58:38,890 --> 00:58:44,730 und was ich zu tun ist, werde ich ausdrucken etwas namens "Content" 985 00:58:44,730 --> 00:58:49,130 die gehen, um meine wichtigsten Inhalte. 986 00:58:49,130 --> 00:58:51,380 Und vielleicht ganz am Ende werde ich hinzufügen, sagen wir, 987 00:58:51,380 --> 00:58:53,340 Urheberrecht. 988 00:58:53,340 --> 00:58:56,150 [Unverständlich Student Frage] 989 00:58:56,150 --> 00:58:58,050 [Brandon Liu] Vielleicht ist das ein super grundlegende Vorlage ich verwenden möchte. 990 00:58:58,050 --> 00:59:02,840 Ich möchte einen Ordner mit meinem Copyright auf jeder einzelnen Seite zu haben, 991 00:59:02,840 --> 00:59:05,560 und jetzt, was ich zu tun in meinem Controller 992 00:59:05,560 --> 00:59:07,740 ist jetzt anstatt zu sagen ", erstreckt Controller" 993 00:59:07,740 --> 00:59:11,870 Ich werde sagen: "erstreckt Controller_Template" 994 00:59:11,870 --> 00:59:15,890 und jetzt, anstatt zu sagen, "Antworttext ist gleich dieser Ansicht" 995 00:59:15,890 --> 00:59:24,110 Ich werde sagen: "Diese Vorlage ist Inhalt -" 996 00:59:24,110 --> 00:59:27,690 und ich denke, - lege ich ein Gleichheitszeichen? 997 00:59:27,690 --> 00:59:32,710 Ich vergesse. Ja, dachte ich mir. 998 00:59:32,710 --> 00:59:37,710 Und jetzt habe ich eingestellt, dass variable Inhalte die Ansicht entsprechen. 999 00:59:37,710 --> 00:59:40,960 Ich kann hier das gleiche tun. 1000 00:59:49,620 --> 00:59:57,170 Und jetzt, wenn ich zu aktualisieren, sehen Sie nun diese Copyright dort aufgenommen, 1001 00:59:57,170 --> 01:00:00,350 und so stellen einige zufällige Post, 1002 01:00:00,350 --> 01:00:06,760 und dann wieder, sollten Sie sehen, dass das Urheberrecht steht ganz unten auf der Seite. 1003 01:00:06,760 --> 01:00:10,730 >> Great. Das ist alles, ich wollte euch zeigen. 1004 01:00:10,730 --> 01:00:14,970 [Applaus] 1005 01:00:14,970 --> 01:00:18,950 Haben Sie Fragen? 1006 01:00:18,950 --> 01:00:21,000 [CS50.TV]