1 00:00:00,000 --> 00:00:02,150 >> [Seminari] [Kohana: Un PHP Framework lleuger] 2 00:00:02,150 --> 00:00:04,000 [Brandon Liu] [Harvard University] 3 00:00:04,000 --> 00:00:07,270 [Aquest és CS50.] [CS50.TV] 4 00:00:07,270 --> 00:00:09,130 >> Hola a tots. El meu nom és Brandon. 5 00:00:09,130 --> 00:00:11,000 Sóc un jove aquí a la ciència de la computació de la universitat fent, i avui parlarem d' 6 00:00:11,000 --> 00:00:14,460 Kohana, que és un marc de desenvolupament web PHP. 7 00:00:14,460 --> 00:00:17,260 Avui serà un seminari de codificació en directe, 8 00:00:17,260 --> 00:00:21,000 així que estic bàsicament passarà 5-10 minuts explicant el Kohana és, 9 00:00:21,000 --> 00:00:25,000 i llavors jo estic literalment construirà un super simple bloc 10 00:00:25,000 --> 00:00:28,570 per a vostè aquí, literalment des de zero. 11 00:00:28,570 --> 00:00:32,229 Anem a descarregar el codi de la pàgina web Kohana, 12 00:00:32,229 --> 00:00:35,000 i començarem a construir un bloc, i és d'esperar que serà molt instructiu, 13 00:00:35,000 --> 00:00:37,000 perquè veurà potser potser vaig a cometre alguns errors, 14 00:00:37,000 --> 00:00:39,000 i veuràs a recuperar d'ells, 15 00:00:39,000 --> 00:00:42,040 o veuràs el meu procés de pensament com jo construeixo a través d'aquest bloc, 16 00:00:42,040 --> 00:00:44,000 i mentrestant, també es familiaritzarà amb el propi marc. 17 00:00:44,000 --> 00:00:48,000 Esperem que serà un exercici molt instructiu. 18 00:00:48,000 --> 00:00:51,370 >> En primer lloc, què és exactament un marc? 19 00:00:51,370 --> 00:00:54,000 Si vostè ha estat prenent CS50 fins al moment, realment no ha funcionat amb qualsevol 20 00:00:54,000 --> 00:00:56,000 marcs encara, i la cosa és aquesta. 21 00:00:56,000 --> 00:01:00,000 Vostè probablement ha fet 1 desenvolupament web PSET ja, 22 00:01:00,000 --> 00:01:03,000 i diguem que continuï la construcció de llocs web i mantenir llocs web de construcció. 23 00:01:03,000 --> 00:01:05,000 Vostè començarà a notar un parell de coses. 24 00:01:05,000 --> 00:01:07,000 La primera cosa que vostè notarà és que t'estàs fent les mateixes coses 25 00:01:07,000 --> 00:01:09,150 una i altra vegada tot el temps, 26 00:01:09,150 --> 00:01:13,000 coses com la neteja de les dades d'entrada de l'usuari, 27 00:01:13,000 --> 00:01:17,250 coses com l'organització dels seus arxius d'una manera determinada. 28 00:01:17,250 --> 00:01:19,000 L'altra cosa que també probablement notarà és que el seu codi 29 00:01:19,000 --> 00:01:21,000 poden començar a ser molt, molt brut, 30 00:01:21,000 --> 00:01:24,000 i és possible que deixi desordenat i amb prou feines té un temps molt difícil mantenir-lo, 31 00:01:24,000 --> 00:01:26,000 o pot començar a estructurar el seu codi i el que és modular 32 00:01:26,000 --> 00:01:28,510 de certa manera perquè sigui més fàcil de mantenir. 33 00:01:28,510 --> 00:01:31,020 >> Aquí és on els frameworks web, bàsicament, va entrar 34 00:01:31,020 --> 00:01:33,680 Aquestes persones que havien construït una gran quantitat de llocs web, van dir, 35 00:01:33,680 --> 00:01:35,820 "No necessitem tornar a fer això cada vegada que construïm un lloc web." 36 00:01:35,820 --> 00:01:39,050 "Per què no ens limitem a fer un paquet que fa totes aquestes coses per a vostè 37 00:01:39,050 --> 00:01:41,250 cada vegada que volen construir un lloc web? " 38 00:01:41,250 --> 00:01:43,030 Així que quan vostè fa una nova pàgina web, 39 00:01:43,030 --> 00:01:45,880 només se centren en el que exactament aquest lloc web en particular es tracta. 40 00:01:45,880 --> 00:01:48,630 No cal repetir tot el diverses configuracions 41 00:01:48,630 --> 00:01:53,070 i la separació dels codis i la reescriptura del codi 42 00:01:53,070 --> 00:01:56,180 que sovint tenen a veure quan estàs fent llocs web. 43 00:01:56,180 --> 00:01:59,410 La idea és que un marc li permet escriure un codi de nivell superior 44 00:01:59,410 --> 00:02:01,030 sense haver de preocupar-se pels detalls de nivell inferior. 45 00:02:01,030 --> 00:02:03,670 Un detall de nivell inferior pot ser alguna cosa com 46 00:02:03,670 --> 00:02:07,250 tractar amb la neteja de les dades d'entrada d'usuari. 47 00:02:07,250 --> 00:02:09,320 Això és una cosa que vostè no ha de realment necessitat de preocupar-se. 48 00:02:09,320 --> 00:02:12,370 Vostè s'ha de centrar en el que la seva assignació web és realment sobre. 49 00:02:12,370 --> 00:02:14,790 S'elimina una gran quantitat de codi repetitiu. 50 00:02:14,790 --> 00:02:16,640 És una arquitectura per al seu projecte. 51 00:02:16,640 --> 00:02:18,680 >> La més popular seria Model-Vista-Controlador, 52 00:02:18,680 --> 00:02:20,380 que vaig a parlar en un segon. 53 00:02:20,380 --> 00:02:22,790 I moltes vegades aquests marcs encarnen un conjunt de procediments, 54 00:02:22,790 --> 00:02:25,750 normes i millors pràctiques perquè utilitzeu 55 00:02:25,750 --> 00:02:28,190 de manera que quan s'adopta el marc web 56 00:02:28,190 --> 00:02:30,050 vostè ha d'escriure el codi d'una determinada manera, 57 00:02:30,050 --> 00:02:32,430 i és en general un conjunt acordat de principis 58 00:02:32,430 --> 00:02:34,290 per la comunitat que és generalment acceptat ser 59 00:02:34,290 --> 00:02:36,230 una bona manera d'escriure codi. 60 00:02:36,230 --> 00:02:38,260 Això fa que el seu codi sigui més fàcil de mantenir, més usable, 61 00:02:38,260 --> 00:02:40,030 així successivament i així successivament. 62 00:02:40,030 --> 00:02:42,740 I, finalment, el que vull posar l'accent sobre els marcs 63 00:02:42,740 --> 00:02:45,980 enfront de les biblioteques és aquesta idea sobre la inversió de control, i la cosa és aquesta. 64 00:02:45,980 --> 00:02:48,430 La diferència entre una biblioteca i un marc és que amb una biblioteca 65 00:02:48,430 --> 00:02:51,990 encara està escrivint el programa principal, 66 00:02:51,990 --> 00:02:54,460 i que està mena d'invocació de la biblioteca 67 00:02:54,460 --> 00:02:56,810 i exhortant a la biblioteca a fer alguna cosa per tu. 68 00:02:56,810 --> 00:02:58,180 La diferència entre una biblioteca i un marc 69 00:02:58,180 --> 00:03:01,620 és que el marc comença amb el control, 70 00:03:01,620 --> 00:03:03,260 i s'invoca el seu codi, 71 00:03:03,260 --> 00:03:06,190 així que vostè pot pensar en ell com - és per això que es diu un marc - 72 00:03:06,190 --> 00:03:09,700 el marc proporciona aquest marc i estructura del seu codi, 73 00:03:09,700 --> 00:03:11,320 i omplir els forats, 74 00:03:11,320 --> 00:03:13,990 i això es farà més aparent en un segon 75 00:03:13,990 --> 00:03:16,670 quan veus a començar a escriure codi en el context del marc. 76 00:03:16,670 --> 00:03:19,130 Vas a veure que m'estic omplint els buits, 77 00:03:19,130 --> 00:03:22,450 i el marc és una espècie de control de totes les peces en moviment, 78 00:03:22,450 --> 00:03:27,420 i he de posar les peces en els llocs correctes. 79 00:03:27,420 --> 00:03:29,360 >> Avui parlarem de Kohana, 80 00:03:29,360 --> 00:03:31,610 que és un dels molts marcs de PHP. 81 00:03:31,610 --> 00:03:34,550 Hi ha frameworks web, i n'hi ha en gairebé tots els idiomes, 82 00:03:34,550 --> 00:03:38,330 i estic recollint Kohana Kohana, perquè és sens dubte 83 00:03:38,330 --> 00:03:43,250 i generalment reconegut com el framework PHP més fàcil de recollir. 84 00:03:43,250 --> 00:03:45,940 És el més lleuger. 85 00:03:45,940 --> 00:03:48,470 Hi ha altres per aquí que vénen amb moltes, moltes més característiques, 86 00:03:48,470 --> 00:03:51,590 però tendeixen a ser més difícil de recollir. 87 00:03:51,590 --> 00:03:54,920 I, finalment, Kohana utilitza l'arquitectura MVC. 88 00:03:54,920 --> 00:03:57,780 És prou lleuger que podem construir, literalment, un projecte 89 00:03:57,780 --> 00:03:59,620 aquí just al davant dels teus ulls, i vostè pot gairebé 90 00:03:59,620 --> 00:04:02,780 seguir endavant amb força facilitat. 91 00:04:02,780 --> 00:04:04,420 >> Què és l'arquitectura MVC? 92 00:04:04,420 --> 00:04:06,540 És sinònim de Model-Vista-Controlador, 93 00:04:06,540 --> 00:04:09,560 i potser si es pensa en el codi que has escrit fins ara 94 00:04:09,560 --> 00:04:11,280 per alguns dels seus conjunts de processadors de desenvolupament web 95 00:04:11,280 --> 00:04:14,710 vostè pot ser capaç de veure alguna cosa d'això, però en general quan s'inicia l'escriptura 96 00:04:14,710 --> 00:04:16,500 una aplicació web més complexos, 97 00:04:16,500 --> 00:04:21,209 la divisió entre aquests segments març es fa més i més evident. 98 00:04:21,209 --> 00:04:26,740 Vaig presentar el MVC aquí una mena de com una pila, 99 00:04:26,740 --> 00:04:29,920 i, sovint se li sent parlar de les piles en el desenvolupament web, 100 00:04:29,920 --> 00:04:33,760 i això és per il · lustrar la idea que 101 00:04:33,760 --> 00:04:37,510 cada capa, cada component s'esforça per comunicar-se només 102 00:04:37,510 --> 00:04:40,750 entre d'altres 2 components. 103 00:04:40,750 --> 00:04:44,550 Algú té accés al seu lloc web com un client o un navegador. 104 00:04:44,550 --> 00:04:48,870 Ells interactuen amb el programa a través del codi de la vista. 105 00:04:48,870 --> 00:04:50,500 El codi de la vista interactua amb el controlador. 106 00:04:50,500 --> 00:04:52,400 El controlador interactua amb el model, 107 00:04:52,400 --> 00:04:55,090 i el model interactua amb la base de dades de SQL. 108 00:04:55,090 --> 00:04:59,670 I no hi ha cap salt en el mitjà si s'escriu el codi correctament. 109 00:04:59,670 --> 00:05:01,670 >> Què fan aquestes coses? 110 00:05:01,670 --> 00:05:06,020 El model és essencialment la part de codi que s'ocupa de les seves dades. 111 00:05:06,020 --> 00:05:09,100 Qualsevol cosa que s'ocupa de la base de dades, amb els objectes que s'emmagatzemen, 112 00:05:09,100 --> 00:05:11,280 o recuperar els objectes a la base de dades, 113 00:05:11,280 --> 00:05:13,450 això és tot manejat pel model. 114 00:05:13,450 --> 00:05:15,290 Potser vostè té objectes a la base de dades. 115 00:05:15,290 --> 00:05:17,700 Anem a crear un model que té a veure amb els missatges, 116 00:05:17,700 --> 00:05:19,760 de manera que un missatge pot tenir alguns atributs a la mateixa. 117 00:05:19,760 --> 00:05:23,900 Vostè pot tenir funcions al voltant de emmagatzemar aquests missatges o recuperar missatges 118 00:05:23,900 --> 00:05:26,270 o filtrar els missatges i així successivament i així successivament, 119 00:05:26,270 --> 00:05:28,880 i això és tot el codi que està a càrrec de la model. 120 00:05:28,880 --> 00:05:31,780 El controlador és una espècie de la lògica de l'aplicació, 121 00:05:31,780 --> 00:05:37,910 i un munt de coses diferents pot anar en la lògica de l'aplicació. 122 00:05:37,910 --> 00:05:39,790 Si vostè està parlant amb una API diferent, 123 00:05:39,790 --> 00:05:42,310 això pot ser quan vostè està tractant amb la lògica de l'aplicació. 124 00:05:42,310 --> 00:05:47,990 Si vostè està tractant de tenir per portar les dades de diversos models diferents 125 00:05:47,990 --> 00:05:51,540 i han de combinar d'alguna manera, que sovint pot ser manejada pel controlador. 126 00:05:51,540 --> 00:05:53,820 Per exemple, a Facebook, si vostè amic algú, 127 00:05:53,820 --> 00:05:58,500 llavors potser aquest acte d'establir aquesta relació 128 00:05:58,500 --> 00:06:00,490 es pot realitzar pel controlador. 129 00:06:00,490 --> 00:06:04,350 >> I, finalment, la vista és el codi que està generant el que es veu. 130 00:06:04,350 --> 00:06:07,410 Moltes vegades crec que en els conjunts de processadors CS50 131 00:06:07,410 --> 00:06:10,050 que en realitat no l'animen nois separar aquestes 3 coses. 132 00:06:10,050 --> 00:06:12,430 És probable que tingui aquest arxiu gran, llarg, on a la part superior 133 00:06:12,430 --> 00:06:15,130 vostè fa alguna consulta SQL i potser fer una mica de processament 134 00:06:15,130 --> 00:06:17,020 en les dades que recupera de la base de dades, 135 00:06:17,020 --> 00:06:19,370 i després de tenir tota la seva HTML a la part inferior. 136 00:06:19,370 --> 00:06:22,840 I és possible que a mesura que crea més i més pàgines 137 00:06:22,840 --> 00:06:25,790 que vostè va a tenir una mica de repetició de codi, ia més, 138 00:06:25,790 --> 00:06:29,600 la cosa és que l'arxiu es posa molt gran i llarg 139 00:06:29,600 --> 00:06:32,370 i es converteix en difícil de manejar per a gestionar. 140 00:06:32,370 --> 00:06:34,500 La raó per la MVC és tan ben vist 141 00:06:34,500 --> 00:06:36,120 és per a un nombre de raons. 142 00:06:36,120 --> 00:06:38,110 El primer és una cosa que es diu separació de preocupacions 143 00:06:38,110 --> 00:06:40,370 que és la idea que quan es té - 144 00:06:40,370 --> 00:06:43,520 idealment 1 tros de codi ha de fer 1 cosa i fer-ho realment bé, 145 00:06:43,520 --> 00:06:47,210 i no ha de combinar peces de codi que fan coses diferents. 146 00:06:47,210 --> 00:06:49,230 Per exemple, veure el codi i el codi model, 147 00:06:49,230 --> 00:06:51,040 que no tenen realment estar relacionats. 148 00:06:51,040 --> 00:06:53,290 Ells no han d'estar en els mateixos arxius, de manera que quan es pot, separar 149 00:06:53,290 --> 00:06:55,300 pel que és fàcil de mantenir. 150 00:06:55,300 --> 00:06:57,130 >> L'altra cosa és la reutilització de codi. 151 00:06:57,130 --> 00:06:59,770 És possible que es trobe escrivint la mateixa consulta SQL o fer 152 00:06:59,770 --> 00:07:03,060 consultes similars que podrien ser abstrets en 1 funció, 153 00:07:03,060 --> 00:07:05,440 i aquesta és la idea darrere dels models i controladors, 154 00:07:05,440 --> 00:07:09,690 tenir-lo en una funció separada que es pot reutilitzar en diferents llocs en el seu projecte. 155 00:07:09,690 --> 00:07:12,420 I, finalment, que està lligat a la dessecació del seu codi, 156 00:07:12,420 --> 00:07:14,700 o no repetir sempre el mateix, no repeteixi vostè mateix. 157 00:07:14,700 --> 00:07:18,090 Això és molt comprensible en el desenvolupament. 158 00:07:18,090 --> 00:07:20,110 Sempre que pugui, no vull repetir a tu mateix, perquè si es repeteix a si mateix, 159 00:07:20,760 --> 00:07:23,400  que és molt més costós de mantenir. 160 00:07:23,400 --> 00:07:26,040 Si voleu canviar 1 cosa, has de canviar a tot arreu, 161 00:07:26,040 --> 00:07:30,230 i que condueix a errors, i és horrible. 162 00:07:30,230 --> 00:07:32,010 >> Molt bé. 163 00:07:32,010 --> 00:07:37,270 Qualsevol pregunta fins ara sobre Kohana en absolut? 164 00:07:37,270 --> 00:07:39,200 Gran. 165 00:07:39,200 --> 00:07:42,300 Ara anem a bussejar en la sessió de codificació en directe, 166 00:07:42,300 --> 00:07:48,050 i esperem que tot surti bé. 167 00:07:57,200 --> 00:08:00,050 Vaig a construir bàsicament aquest lloc web 168 00:08:00,050 --> 00:08:03,910 en un dels meus servidors remots, i d'aquesta manera vostès també poden 169 00:08:03,910 --> 00:08:06,310 consulteu el lloc web i accedir a la pàgina web, 170 00:08:06,310 --> 00:08:10,990 i també el medi ambient és millor configurat que la meva màquina remota, 171 00:08:10,990 --> 00:08:14,580 perquè s'està executant Linux en comptes de OS X. 172 00:08:14,580 --> 00:08:16,260 Estem, literalment, va a començar. 173 00:08:16,260 --> 00:08:18,110 KohanaFramework.org. 174 00:08:18,110 --> 00:08:21,350 Vaig a descarregar el codi de la pàgina web. 175 00:08:21,350 --> 00:08:24,610 Vaig a copiar l'adreça de l'enllaç, 176 00:08:24,610 --> 00:08:29,770 anar al meu servidor, descarregar-lo, 177 00:08:29,770 --> 00:08:33,000 i jo vaig a extreure. 178 00:08:38,330 --> 00:08:45,710 >> [Estudiant] Què és el més gran que vostè pot fer que el text? 179 00:08:45,710 --> 00:08:47,330 [Brandon Liu] És això millor? 180 00:08:47,330 --> 00:08:50,070 [Estudiant] És això factible? >> [Brandon Liu] Sí, això està bé. 181 00:08:50,070 --> 00:08:54,500 He descarregat un arxiu ZIP i descomprimit que en un directori anomenat Kohana, 182 00:08:54,500 --> 00:08:58,820 i canviarem el nom que CS50-Kohana, 183 00:08:58,820 --> 00:09:01,140 i anem polz 184 00:09:01,140 --> 00:09:03,610 Impressionant. 185 00:09:03,610 --> 00:09:06,870 Aquí podeu veure un munt d'arxius diferents. 186 00:09:06,870 --> 00:09:10,140 La majoria de vostès es pot ignorar - We no passarà per cada arxiu que aquí 187 00:09:10,140 --> 00:09:13,130 causa de les nostres limitacions de temps, 188 00:09:13,130 --> 00:09:16,310 però en general en instal · lar Kohana, el primer que es fa 189 00:09:16,310 --> 00:09:23,210 és que vostè vagi al directori, 190 00:09:23,210 --> 00:09:26,050 i vostè bàsicament fer algunes proves ambientals i altres coses 191 00:09:26,050 --> 00:09:28,640 assegurar-se que el seu entorn és correcte per executar Kohana 192 00:09:28,640 --> 00:09:31,450 i assegurar-se que tot està bé. 193 00:09:31,450 --> 00:09:35,510 Vostè pot veure la majoria de les coses passen, però en general sempre es troba amb aquest problema 1 194 00:09:35,510 --> 00:09:38,180 on es queixa que algun directori no té permisos d'escriptura, 195 00:09:38,180 --> 00:09:40,410 i això és perquè d'alguns permisos. 196 00:09:40,410 --> 00:09:43,080 No sé quant que vostès han après sobre els permisos d'arxius en CS50, 197 00:09:43,080 --> 00:09:47,920 però si ho fa el desenvolupament web, que es trobarà amb aquest problema molt. 198 00:09:47,920 --> 00:09:58,340 Vaig a fer que sigui escriptura 199 00:09:58,340 --> 00:10:03,390 i penso que també jo he de - allà anem. 200 00:10:03,390 --> 00:10:07,040 >> Bé, ara vostè pot veure tot el que passava, 201 00:10:07,040 --> 00:10:10,000 i ara li dirà que reanomenar el fitxer install.php. 202 00:10:10,000 --> 00:10:15,630 Vaig a moure el fitxer install.php per installed.php, 203 00:10:15,630 --> 00:10:19,610 i ara si restauro, 204 00:10:19,610 --> 00:10:22,810 em dóna un error, i aquí és on entra en joc la depuració 205 00:10:22,810 --> 00:10:25,610 Aquí és on es pot veure el que realment va a succeir. 206 00:10:25,610 --> 00:10:28,460 La cosa és que, per defecte, Kohana assumeix que 207 00:10:28,460 --> 00:10:31,480 el projecte es troba en el directori arrel del teu domini, 208 00:10:31,480 --> 00:10:35,920 així que està esperant que vostè estigui en demo.brandonkliu.com. 209 00:10:35,920 --> 00:10:37,540 Hem de dir-li que en realitat està en una subcarpeta. 210 00:10:37,540 --> 00:10:39,820 Està en una subcarpeta anomenada CS50 Kohana. 211 00:10:39,820 --> 00:10:42,640 El que passa és que està malinterpretant CS50-Kohana 212 00:10:42,640 --> 00:10:45,680 com una cosa més, que vaig a explicar a vostè en un segon. 213 00:10:45,680 --> 00:10:49,910 Però t'he de dir que això és una cosa que és d'esperar. 214 00:10:49,910 --> 00:10:53,700 El que farem és que entrarem en aquesta carpeta anomenada Bootstrap.php, 215 00:10:53,700 --> 00:10:59,260 que és la carpeta de configuració on hi ha un munt de coses diferents es configuren. 216 00:10:59,260 --> 00:11:01,570 Obro això. 217 00:11:01,570 --> 00:11:09,790 Llavors, potser una de les primeres coses que vaig a fer és canviar el fus horari. 218 00:11:09,790 --> 00:11:13,910 >> I després veurem. 219 00:11:13,910 --> 00:11:15,180 ¡Ajá! Just aquí. 220 00:11:15,180 --> 00:11:18,690 Hi ha un munt de diferents refranys de configuració aquí, 221 00:11:18,690 --> 00:11:21,700 però el que jo estic buscant és aquesta cosa anomenada URL base, 222 00:11:21,700 --> 00:11:24,570 i per defecte ho tinc configurat a Kohana, 223 00:11:24,570 --> 00:11:29,020 però jo vaig a canviar això a CS50-Kohana, 224 00:11:29,020 --> 00:11:32,880 i crec que això hauria arreglar-ho. 225 00:11:32,880 --> 00:11:34,150 Sí, molt bé. 226 00:11:34,150 --> 00:11:39,530 Per defecte, per veure que està funcionant, que diu: "Hola Món". 227 00:11:39,530 --> 00:11:42,930 D'on ve? Com hem arribat a Hello World? 228 00:11:42,930 --> 00:11:47,640 On és exactament el codi que realment va escriure que? 229 00:11:47,640 --> 00:11:50,240 Per entendre això, vaig a introduir aquest concepte anomenat enrutament. 230 00:11:50,240 --> 00:11:52,590 Gairebé tots els frameworks web tenen el concepte anomenat enrutament, 231 00:11:52,590 --> 00:11:57,230 que és la peça del programari que va a assignar una determinada URL 232 00:11:57,230 --> 00:12:01,550 a una certa porció de codi dins del seu marc. 233 00:12:01,550 --> 00:12:07,510 Per exemple, si vostè té alguna URL i et vas a algun URL com foo.com / bloc / tots 234 00:12:07,510 --> 00:12:11,170 llavors el que el marc farà - o almenys que Kohana farà - 235 00:12:11,170 --> 00:12:15,540 es trobarà una classe anomenada el bloc de controlador, 236 00:12:15,540 --> 00:12:18,720 i que va a executar la funció anomenada acció de tot. 237 00:12:18,720 --> 00:12:20,160 Sé que estic parlant de la classe i les funcions, 238 00:12:20,160 --> 00:12:23,860 i jo sé que vostès no tenen classes i funcions cobert 239 00:12:23,860 --> 00:12:26,470 en CS50 encara, però per ara, 240 00:12:26,470 --> 00:12:29,800 es pot pensar en les classes com un simple grup de funcions, 241 00:12:29,800 --> 00:12:32,900 una forma d'agrupar funcions juntes. 242 00:12:32,900 --> 00:12:37,690 Això és realment tot el que necessita saber. 243 00:12:37,690 --> 00:12:43,120 >> Ara bé, si ens fixem en la nostra estructura de carpetes, 244 00:12:43,120 --> 00:12:47,110 dins de la carpeta de l'aplicació hi ha una altra carpeta anomenada classes, 245 00:12:47,110 --> 00:12:49,200 i les altres carpetes es diuen controlador i model. 246 00:12:49,200 --> 00:12:52,530 Si es mira l'interior de la carpeta Controller, 247 00:12:52,530 --> 00:12:56,330 veiem que hi ha un arxiu anomenat Benvingut, 248 00:12:56,330 --> 00:13:00,370 i es pot veure aquí és una classe anomenada Controller Benvingut, 249 00:13:00,370 --> 00:13:02,340 i hi ha una funció anomenada Índex d'Acció, 250 00:13:02,340 --> 00:13:06,360 i el que fa és que posa el cos de la resposta a Hello World. 251 00:13:06,360 --> 00:13:08,730 Aquí és on s'escriu el codi. 252 00:13:08,730 --> 00:13:11,610 L'altra pregunta és, bé, jo no anava a la 253 00:13:11,610 --> 00:13:13,680 bla, bla, bla, / welcome / index. 254 00:13:13,680 --> 00:13:16,250 Com va ser que vaig acabar aquí? 255 00:13:16,250 --> 00:13:20,410 Bé, això és simplement perquè 256 00:13:20,410 --> 00:13:22,410 aquí, a la part inferior del nostre arxiu d'arrencada 257 00:13:22,410 --> 00:13:24,550 on establim les nostres rutes 258 00:13:24,550 --> 00:13:26,570 es pot veure que s'estableixen alguns valors predeterminats per a vostè. 259 00:13:26,570 --> 00:13:28,990 El controlador per defecte és benvinguda. L'acció per defecte és Index. 260 00:13:28,990 --> 00:13:31,600 És per això que quan posem res allà va passar automàticament al controlador Benvingut 261 00:13:31,600 --> 00:13:33,940 i l'Acció índex. 262 00:13:33,940 --> 00:13:37,460 >> Tot té sentit fins ara? 263 00:13:37,460 --> 00:13:40,850 Ara, vostè pot fer alguna cosa més que anar al Controlador 264 00:13:40,850 --> 00:13:43,670 i una acció específica. 265 00:13:43,670 --> 00:13:48,480 També és possible enviar paràmetres al controlador. 266 00:13:48,480 --> 00:13:56,390 Només com a exemple, 267 00:13:56,390 --> 00:14:04,070 Vaig a afegir una altra acció per a aquest controlador es pot mostrar. 268 00:14:04,070 --> 00:14:09,130 Anem a trucar a aquesta acció Eco, perquè va a dir-li el que li donis, 269 00:14:09,130 --> 00:14:17,510 i pel que estic bàsicament va a agafar 270 00:14:17,510 --> 00:14:20,960 un paràmetre que serà enviat a través de mi en el programa d'enrutament, 271 00:14:20,960 --> 00:14:24,440 i com es pot veure aquí, 272 00:14:24,440 --> 00:14:28,440 aquesta línia d'aquí, es pot veure que 273 00:14:28,440 --> 00:14:31,270 això bàsicament vol dir que vostè té control, i vostè té un /, 274 00:14:31,270 --> 00:14:33,480 i vostè té l'acció, i vostè té un altre /, 275 00:14:33,480 --> 00:14:39,140 i això serà paràmetres, i perquè tenim aquest nom ID 276 00:14:39,140 --> 00:14:42,450 entre claudàtors angulars, això significa que estem anomenant aquest paràmetre ID. 277 00:14:42,450 --> 00:14:45,490 Més tard, en el meu codi de controlador si vull prendre un celler d'aquest paràmetre, 278 00:14:45,490 --> 00:14:51,790 Puc utilitzar el codi que he escrit, trobar el paràmetre denominat ID. 279 00:14:51,790 --> 00:14:59,290 Això és el que he fet aquí, i vaig a tornar i dir: 280 00:14:59,290 --> 00:15:07,090 "Vostè va dir que" això. 281 00:15:07,090 --> 00:15:10,760 I ara si em vaig al nostre lloc web, 282 00:15:10,760 --> 00:15:19,550 Vaig a cs50-kohana/welcome/echo/Helloooo-- 283 00:15:19,550 --> 00:15:21,420 oh, això és correcte. 284 00:15:21,420 --> 00:15:23,930 Hi ha 1 pas vaig deixar fora. 285 00:15:23,930 --> 00:15:27,020 Això és part de la idea de codificació en directe. 286 00:15:27,020 --> 00:15:36,100 >> Aquí hi ha 1 cosa. Anem a veure. 287 00:15:36,100 --> 00:15:38,870 Així que normalment per defecte amb una gran quantitat d'aquestes aplicacions web 288 00:15:38,870 --> 00:15:42,820 vostè ha d'incloure això index.php en la seva URL, 289 00:15:42,820 --> 00:15:46,410 perquè la idea es index.php és una espècie de punt d'entrada 290 00:15:46,410 --> 00:15:48,250 de la seva aplicació, però és clar, 291 00:15:48,250 --> 00:15:50,110 que és una espècie de molest tenir. 292 00:15:50,110 --> 00:15:53,790 No vol tenir index.php apareixen en la seva URL, 293 00:15:53,790 --> 00:15:56,080 i gairebé tots els framework web de la caixa 294 00:15:56,080 --> 00:15:58,440 té aquest problema index.php, 295 00:15:58,440 --> 00:16:03,370 i així que vostè ha de prendre algunes mesures per ser capaç d'eliminar això. 296 00:16:03,370 --> 00:16:07,540 I així, en aquest cas, 297 00:16:07,540 --> 00:16:11,450 el que farem és que utilitzarem un arxiu anomenat. htaccess, 298 00:16:11,450 --> 00:16:13,900 i això és una cosa que és específic per al servidor web Apache, 299 00:16:13,900 --> 00:16:16,290 i pot fer coses com reescriptura d'adreces URL 300 00:16:16,290 --> 00:16:19,350 i redirigir URL i així successivament i així successivament, 301 00:16:19,350 --> 00:16:24,280 i Kohana és prou bo per a proporcionar un arxiu htaccess plantilla. que podem utilitzar. 302 00:16:24,280 --> 00:16:28,300 >> Com podeu veure, hi ha un arxiu anomenat allà example.htaccess, 303 00:16:28,300 --> 00:16:33,410 i anem a copiar això. htaccess. 304 00:16:33,410 --> 00:16:36,950 Vaig a obrir aquest i editar, 305 00:16:36,950 --> 00:16:40,840 i, bàsicament, fa un munt de coses diferents. 306 00:16:40,840 --> 00:16:45,320 La línia clau és possible que vulgueu tenir en compte és just aquí. 307 00:16:45,320 --> 00:16:49,840 La idea és que aquest estableix una regla que diu que, 308 00:16:49,840 --> 00:16:56,400 "Està bé, el que s'ingressi en, index.php anteposar a això." 309 00:16:56,400 --> 00:16:58,710 Vostè pot veure això. 310 00:16:58,710 --> 00:17:00,370 La. * Destaca per res, coincideix amb res, 311 00:17:00,370 --> 00:17:03,300 i la segona part és index.php / $ 0, 312 00:17:03,300 --> 00:17:07,410 i $ 0 fa referència al que va ser aparellat prèviament. 313 00:17:07,410 --> 00:17:09,500 Això té sentit? 314 00:17:09,500 --> 00:17:12,190 Però el realment clau que vull canviar és canviar aquesta base de reescriptura, 315 00:17:12,190 --> 00:17:14,300 que és la base de la URL. 316 00:17:14,300 --> 00:17:17,780 D'alguna manera s'assumeix en què està treballant des. 317 00:17:17,780 --> 00:17:22,560 Vaig a afegir CS50 Kohana a això, 318 00:17:22,560 --> 00:17:26,530 i d'aquesta manera ara si em treu el index.php, 319 00:17:26,530 --> 00:17:32,110 que hauria de funcionar, i vaig a afegir alguns números 320 00:17:32,110 --> 00:17:36,380 es pot mostrar que, efectivament, va funcionar. 321 00:17:36,380 --> 00:17:38,130 Sona bé. 322 00:17:38,130 --> 00:17:40,260 >> Preguntes fins ara? 323 00:17:40,260 --> 00:17:42,300 [Estudiant] Com se sap per fer el 123? 324 00:17:42,300 --> 00:17:44,120 Això és un argument? 325 00:17:44,120 --> 00:17:46,560 Exactament. Vostè pot pensar en ell com un argument. 326 00:17:46,560 --> 00:17:52,410 Però el més estrany, però, és que la forma en Kohana fa 327 00:17:52,410 --> 00:17:54,910 és que no ho fa exactament com un argument. 328 00:17:54,910 --> 00:17:56,930 Has de agafar així. 329 00:17:56,930 --> 00:18:01,030 Has de agafar l'objecte de la petició i demanar el paràmetre que s'anomena ID, 330 00:18:01,030 --> 00:18:03,240 i que el nom ID ve d'aquest arxiu d'arrencada 331 00:18:03,240 --> 00:18:06,990 que vaig mostrar abans, i el nom de ID estava en aquests parèntesis angulars, 332 00:18:06,990 --> 00:18:11,580 i així és com agafar aquests paràmetres. 333 00:18:11,580 --> 00:18:14,010 Impressionant. 334 00:18:14,010 --> 00:18:17,550 Alguna altra pregunta? 335 00:18:17,550 --> 00:18:20,500 Com he dit, els controladors, que manegen la lògica d'aplicació, 336 00:18:20,500 --> 00:18:22,980 així que això és 1 cas en el que es pot veure això és - 337 00:18:22,980 --> 00:18:24,830 és molt bàsic, però tot i així és la lògica d'aplicació, 338 00:18:24,830 --> 00:18:27,980 la idea d'agafar el paràmetre i la creació d'una nova cadena 339 00:18:27,980 --> 00:18:31,920 que diu: "Vostè ha dit, bla", i després escopir de tornar a vostè. 340 00:18:31,920 --> 00:18:34,030 I en general, el que es fa és crear diferents controladors. 341 00:18:34,030 --> 00:18:36,450 Podeu crear controladors separats per diferents parts del seu lloc web. 342 00:18:36,450 --> 00:18:38,160 >> Avui farem un lloc web molt simple, 343 00:18:38,160 --> 00:18:40,420 i que serà un bloc molt bàsic. 344 00:18:40,420 --> 00:18:43,780 Anem a fer un nou controlador només per als missatges en un bloc. 345 00:18:43,780 --> 00:18:47,060 Però si hagués d'afegir també comentaris a l'entrada del bloc, 346 00:18:47,060 --> 00:18:50,140 llavors probablement vulgui fer un nou controlador per a aquests comentaris. 347 00:18:50,140 --> 00:18:53,380 Si volgués afegir usuaris, probablement afegir un controlador per als usuaris, 348 00:18:53,380 --> 00:18:57,000 i, en general, la idea és que cada vegada que tingui un nou model, 349 00:18:57,000 --> 00:18:59,630 un nou objecte de dades que s'està tractant, 350 00:18:59,630 --> 00:19:02,970 vostè té un únic controlador per a aquest objecte de dades. 351 00:19:02,970 --> 00:19:04,370 Avui només treballarem amb 1 objecte de dades, 352 00:19:04,370 --> 00:19:06,250 i que hi haurà llocs de treball, 353 00:19:06,250 --> 00:19:08,710 i també es pot pensar en els objectes de dades que correspon a les taules. 354 00:19:08,710 --> 00:19:12,160 Generalment cada taula correspon a 1 tipus d'objecte de dades, 355 00:19:12,160 --> 00:19:15,160 de manera que la taula de lloc tindrà gener model post, 356 00:19:15,160 --> 00:19:18,230 que comptarà amb 1 controlador de lloc de treball corresponent a aquest, 357 00:19:18,230 --> 00:19:22,190 i el mateix per comentaris, la mateixa per als usuaris, i així successivament i així successivament. 358 00:19:22,190 --> 00:19:24,070 I això és una regla general. 359 00:19:24,070 --> 00:19:27,460 No van a haver-hi casos especials en els que pot diferir de la, 360 00:19:27,460 --> 00:19:29,300 però el 90% de les vegades això és el que vas a fer, 361 00:19:29,300 --> 00:19:32,810 i jo et vaig a mostrar que això és el que farem avui. 362 00:19:32,810 --> 00:19:35,490 1 més concepte abans de submergir-se de nou en el codi, 363 00:19:35,490 --> 00:19:37,710 aquesta idea de mapeig relacional d'objectes. 364 00:19:37,710 --> 00:19:41,200 >> Vostès ja han fet un desenvolupament conjunt de processadors web, 365 00:19:41,200 --> 00:19:43,820 i has vist que faci una consulta SQL, 366 00:19:43,820 --> 00:19:46,510 i tot el torna a vostè són files. 367 00:19:46,510 --> 00:19:50,040 Vostè rep aquestes files, i l'índex d'ells per algun nom, 368 00:19:50,040 --> 00:19:55,480 el nom de la columna i la taula, 369 00:19:55,480 --> 00:19:57,630 i així és com es treballa amb ella, 370 00:19:57,630 --> 00:19:59,290 i pot ser una mica molest. 371 00:19:59,290 --> 00:20:01,810 Però a més, si té relacions dins de la base de dades, 372 00:20:01,810 --> 00:20:05,280 com per exemple si tinc comentaris i missatges, 373 00:20:05,280 --> 00:20:11,240 llavors potser vull agafar el missatge dels pares d'un comentari. 374 00:20:11,240 --> 00:20:14,350 Si utilitzo només files en SQL, llavors tot el que puc aconseguir és la identificació de 375 00:20:14,350 --> 00:20:19,310 del lloc dels pares i no el missatge real. 376 00:20:19,310 --> 00:20:21,680 Però quan estem de codificació, el que realment volem és captar realment 377 00:20:21,680 --> 00:20:23,550  el pare ja en si vegades. 378 00:20:23,550 --> 00:20:25,730 Quin objecte d'assignació relacional fa és 379 00:20:25,730 --> 00:20:29,480 que pren els resultats de la consulta de base de dades 380 00:20:29,480 --> 00:20:32,420 i el posa en objectes per a vostè, que són molt més agradable per treballar amb 381 00:20:32,420 --> 00:20:34,770 que els arrays plans i files. 382 00:20:34,770 --> 00:20:37,550 >> Per exemple, ara quan tinc un comentari potser, 383 00:20:37,550 --> 00:20:40,900 i vull agafar la seva missatge principal, 384 00:20:40,900 --> 00:20:43,440 i jo potser comento fletxa post, 385 00:20:43,440 --> 00:20:45,230 llavors el que realment em donarà l'objecte missatge 386 00:20:45,230 --> 00:20:47,940 corresponent al lloc actual dels pares, no només un document d'identitat, 387 00:20:47,940 --> 00:20:52,210 la qual d'una altra manera haurien d'usar i fer una altra consulta SQL per prendre el lloc, 388 00:20:52,210 --> 00:20:57,430 que és molest i innecessari. 389 00:20:57,430 --> 00:21:01,840 I d'altra banda, mitjançant l'assignació de totes aquestes files de dades en objectes, 390 00:21:01,840 --> 00:21:03,760 també pot adjuntar més funcions als objectes, 391 00:21:03,760 --> 00:21:09,700 així per exemple, vaig parlar de com les classes són essencialment grups de funcions. 392 00:21:09,700 --> 00:21:11,620 Vostè pot pensar que és així. 393 00:21:11,620 --> 00:21:15,290 Per exemple, potser tinc aquest objecte post, 394 00:21:15,290 --> 00:21:17,830 i potser m'agradaria tenir algun tipus de funció que se li atribueix 395 00:21:17,830 --> 00:21:20,300 que en el fons em diu que va ser Darrers? 396 00:21:20,300 --> 00:21:23,570 Va ser publicat en l'última setmana, cert o fals? 397 00:21:23,570 --> 00:21:27,320 I això és una funció que pugui adjuntar a aquest objecte, 398 00:21:27,320 --> 00:21:31,300 i és molt convenient tenir-lo al mateix lloc, 399 00:21:31,300 --> 00:21:33,820 i hi ha una gran quantitat de funcions diferents que es poden crear 400 00:21:33,820 --> 00:21:37,990 per a aquests objectes, i és realment agradable per poder connectar-lo a una classe, 401 00:21:37,990 --> 00:21:41,700 a un objecte, mentre que si vostè acaba de tenir files que provenen de la base de dades, 402 00:21:41,700 --> 00:21:43,790 llavors realment no es pot adjuntar qualsevol funcionalitat a això. 403 00:21:43,790 --> 00:21:47,850 És, literalment, només dades. 404 00:21:47,850 --> 00:21:50,550 Una pregunta sobre això en absolut? 405 00:21:50,550 --> 00:21:52,710 ORM són el desenvolupament web molt comú, 406 00:21:52,710 --> 00:21:56,330 i hi ha un munt de diferents tipus de ORM, 407 00:21:56,330 --> 00:21:58,450 Kohana i té el seu propi ORM. 408 00:21:58,450 --> 00:22:05,050 És molt bàsic, però obtindrà una idea del que sembla. 409 00:22:05,050 --> 00:22:08,780 >> Crearem un model per al nostre bloc, 410 00:22:08,780 --> 00:22:12,350 i la primera cosa que òbviament hem de fer és crear una taula real 411 00:22:12,350 --> 00:22:16,680 dins de la nostra base de dades per emmagatzemar les dades de fet per a aquests llocs. 412 00:22:16,680 --> 00:22:19,260 El primer que faré és anar a phpMyAdmin. 413 00:22:19,260 --> 00:22:21,410 Han utilitzat phpMyAdmin abans? 414 00:22:21,410 --> 00:22:23,400 Bé, impressionant, així que vostès ja saben el que és això, 415 00:22:23,400 --> 00:22:32,200 i jo vaig a crear una nova taula anomenada Kohana Missatges, 416 00:22:32,200 --> 00:22:37,820 i que serà molt simple. 417 00:22:37,820 --> 00:22:40,190 Vaig a haver de tornar a iniciar sessió 418 00:23:02,620 --> 00:23:04,640 Tot el que farem avui és tenir un autor i un cos, 419 00:23:04,640 --> 00:23:11,930 si prefereixes alguna cosa més simple. 420 00:23:11,930 --> 00:23:15,620 Vaig a crear aquesta taula, 421 00:23:15,620 --> 00:23:19,620 i ara només tenim una taula que representa els nostres missatges 422 00:23:19,620 --> 00:23:23,370 amb 2 camps del nostre autor i el nostre cos. 423 00:23:23,370 --> 00:23:26,290 L'altra cosa que faré ara és 424 00:23:26,290 --> 00:23:29,820 configurar el meu aplicació web perquè sàpiga com connectar-se a la base de dades, 425 00:23:29,820 --> 00:23:31,950 i això, de nou, és una cosa que tindrà a veure amb totes les aplicacions web. 426 00:23:31,950 --> 00:23:34,790 Vostè ha de dir-li el nom d'usuari i la contrasenya 427 00:23:34,790 --> 00:23:36,990 i el nom de la base de dades i així successivament i així successivament 428 00:23:36,990 --> 00:23:40,000 per esbrinar com connectar realment a la base de dades. 429 00:23:40,000 --> 00:23:58,710 >> En Kohana, tenim una cosa que es diu un mòdul de base de dades, 430 00:23:58,710 --> 00:24:02,690 i a la carpeta de configuració que tenim aquesta carpeta anomenada base de dades, 431 00:24:02,690 --> 00:24:07,330 i com es pot veure, hi ha un munt d'ajustos que ha d'establir aquí 432 00:24:07,330 --> 00:24:09,860 per dir-li quin és el nom d'usuari i la contrasenya 433 00:24:09,860 --> 00:24:13,110 per a la base de dades perquè pugui connectar-se a la mateixa realitat. 434 00:24:13,110 --> 00:24:15,010 I com no vull que sàpiguen realment 435 00:24:15,010 --> 00:24:17,190 el nom d'usuari i la contrasenya de la meva base de dades, 436 00:24:17,190 --> 00:24:23,840 Tinc un arxiu que ja em vaig posar tot, i jo vaig a copiar i enganxar la volta. 437 00:24:33,080 --> 00:24:36,870 Impressionant. 438 00:24:36,870 --> 00:24:39,880 Okay. Crec que aquesta és tota la configuració que he de fer, 439 00:24:39,880 --> 00:24:41,070 però anem a veure. 440 00:24:41,070 --> 00:24:43,720 Seguirem treballant-hi, i si alguna cosa falla, 441 00:24:43,720 --> 00:24:47,490 després ho arreglarem. 442 00:24:47,490 --> 00:24:51,830 Ara el que faré és que vaig a crear un nou controlador. 443 00:24:51,830 --> 00:24:53,190 O en realitat, ho sento. 444 00:24:53,190 --> 00:24:55,080 En primer lloc he de crear un nou model. 445 00:24:55,080 --> 00:25:01,620 Vaig a crear un nou model anomenat Post.php, 446 00:25:01,620 --> 00:25:12,440 i el que farem és que anem a anomenar classe Model_Post. 447 00:25:12,440 --> 00:25:15,390 Obtenir alguns ressaltat de sintaxi en, 448 00:25:15,390 --> 00:25:19,750 i així que quan dic, "s'estén ORM," això és, bàsicament, 449 00:25:19,750 --> 00:25:21,210 una mica de programació més orientada a objectes, 450 00:25:21,210 --> 00:25:23,340 que, malauradament, vostès no han après a CS50, però, 451 00:25:23,340 --> 00:25:25,290 però és bastant fàcil d'aprendre. 452 00:25:25,290 --> 00:25:27,950 Em fa tota aquesta funcionalitat extra que ve en aquest paquet ORM, 453 00:25:27,950 --> 00:25:31,120 i pel que obtenir un munt de funcions i altres coses gratis extra, 454 00:25:31,120 --> 00:25:34,810 que veurà una mica en un segon. 455 00:25:34,810 --> 00:25:37,670 >> En aquest moment en realitat tot el que necessito fer és crear aquesta classe. 456 00:25:37,670 --> 00:25:39,160 Ni tan sols necessito fer cap funció ni res, 457 00:25:39,160 --> 00:25:41,770 però jo he creat una classe que representa la taula, 458 00:25:41,770 --> 00:25:44,140 i perquè m'he estès aquesta classe ORM, 459 00:25:44,140 --> 00:25:51,080 Puc aconseguir un munt de coses gratis, així que per ara no has de configurar res més amunt. 460 00:25:51,080 --> 00:25:53,530 I ara el que faré és que vaig a crear un nou controlador, 461 00:25:53,530 --> 00:25:58,480 que vaig a nomenar blog.php, 462 00:25:58,480 --> 00:26:04,350 i jo vaig a copiar el controlador Benvingut 463 00:26:04,350 --> 00:26:11,950 així que no he de tornar a escriure algunes coses, 464 00:26:11,950 --> 00:26:20,720 i ara he de canviar el nom d'aquest. 465 00:26:20,720 --> 00:26:24,710 Ara el que faré per posar a prova per assegurar-se que tot està funcionant, 466 00:26:24,710 --> 00:26:27,820 Vaig a agafar el primer post de la meva base de dades 467 00:26:27,820 --> 00:26:32,680 i imprimir el cos del missatge a la pantalla. 468 00:26:32,680 --> 00:26:37,920 Per fer això el que faré en primer lloc és que vaig a guardar els missatges 469 00:26:37,920 --> 00:26:48,770 a una variable pel que el que farem és - 470 00:26:48,770 --> 00:26:52,090 Kohana en el que fas és per agafar l'objecte missatge 471 00:26:52,090 --> 00:26:55,380 que és una cosa molest, però vostè ha de fer aquesta cosa anomenada ORM :: factory, 472 00:26:55,380 --> 00:26:57,750 i després es passa al nom del model que desitja, 473 00:26:57,750 --> 00:27:00,490 i retorna l'objecte ORM que representa aquest model. 474 00:27:00,490 --> 00:27:04,860 I després, com he dit, quan estenem l'objecte ORM, 475 00:27:04,860 --> 00:27:07,320 tenim tots aquests mètodes de forma gratuïta, així que per exemple, 476 00:27:07,320 --> 00:27:09,200 tenim aquesta nova funció anomenada "trobar tots" 477 00:27:09,200 --> 00:27:12,160 que retorna automàticament cada missatge individual a la base de dades, 478 00:27:12,160 --> 00:27:14,850 la qual cosa és bastant convenient. 479 00:27:14,850 --> 00:27:17,480 >> I ara en el cos que vaig a tornar 480 00:27:17,480 --> 00:27:24,860 el primer post i retornar el seu cos. 481 00:27:24,860 --> 00:27:27,930 I, per descomptat, he de crear un post, 482 00:27:27,930 --> 00:27:31,880 així que anem a inserir un nou post. 483 00:27:31,880 --> 00:27:37,870 Vaig a dir, "Brandon, el meu primer missatge." 484 00:27:37,870 --> 00:27:40,010 Impressionant. 485 00:27:40,010 --> 00:27:45,910 I ara anirem als blocs 486 00:27:45,910 --> 00:27:50,960 i si tot funciona bé - oh, això és de nou alguna altra cosa de permisos de fitxers ximple. 487 00:27:50,960 --> 00:27:56,090 Espera 1 segon. És una mica absurd. 488 00:28:06,700 --> 00:28:08,490 Això és. Okay. 489 00:28:08,490 --> 00:28:10,040 Em fixo que problema de permisos. 490 00:28:10,040 --> 00:28:12,040 S'estava tractant de crear alguns arxius i alguns de registre, 491 00:28:12,040 --> 00:28:15,400 i els permisos, un cop més, no van ser adequadament establerts, pel que van fer 492 00:28:15,400 --> 00:28:18,320 de manera que els arxius estaven escriptura i executable 493 00:28:18,320 --> 00:28:21,090 pel que en realitat podria iniciar a les coses. 494 00:28:21,090 --> 00:28:24,220 Ara m'està donant un altre dit excepció, "classe ORM no trobat" 495 00:28:24,220 --> 00:28:26,960 i això és perquè es va oblidar un pas més. 496 00:28:26,960 --> 00:28:37,010 Això és molt dolent. 497 00:28:37,010 --> 00:28:40,270 A l'arxiu de la carpeta d'arrencada, hi ha aquests mòduls aquí, 498 00:28:40,270 --> 00:28:42,480 que es pot optar per activar o desactivar. 499 00:28:42,480 --> 00:28:44,340 Són un munt de diferents característiques que vostè pot optar per utilitzar 500 00:28:44,340 --> 00:28:46,180 dins Kohana, que és una espècie d'agradable. 501 00:28:46,180 --> 00:28:49,090 >> Per exemple, tenen un mòdul d'autenticació 502 00:28:49,090 --> 00:28:51,170 que es pot utilitzar per a l'autenticació d'usuaris. 503 00:28:51,170 --> 00:28:53,390 Tenen un mòdul d'emmagatzematge en memòria cau si vol implementar 504 00:28:53,390 --> 00:28:57,870 algun tipus d'emmagatzematge en memòria cau de back-end perquè l'aplicació funcioni més ràpid i altres coses. 505 00:28:57,870 --> 00:29:02,140 Hem de permetre que la base de dades i el mòdul de ORM, 506 00:29:02,140 --> 00:29:04,280 perquè com he dit, estem utilitzant la base de dades, òbviament, 507 00:29:04,280 --> 00:29:08,200 i també hem de habilitar el mòdul ORM, 508 00:29:08,200 --> 00:29:12,220 perquè ens agradaria tenir la funcionalitat addicional, que és bo tenir. 509 00:29:12,220 --> 00:29:14,240 Tot el que he de fer és comentari a aquestes 2 línies, 510 00:29:14,240 --> 00:29:18,760 i ara si restauro, em va donar un altre error. 511 00:29:18,760 --> 00:29:22,100 Diu: "Classe Model_Post no es troba." 512 00:29:22,100 --> 00:29:30,210 Ara bé, aquest és un bon problema per tenir. 513 00:29:30,210 --> 00:29:37,660 Anem a veure. 514 00:29:37,660 --> 00:29:42,200 Que sigui públic. 515 00:29:42,200 --> 00:29:46,450 No Espera. 516 00:30:11,610 --> 00:30:13,160 Oh, estimat. 517 00:30:13,160 --> 00:30:18,590 No sé per què no és capaç de trobar això. 518 00:30:18,590 --> 00:30:21,030 Això és realment estrany. 519 00:30:21,030 --> 00:30:23,820 Tinc aquesta mena aquí. 520 00:30:23,820 --> 00:30:28,650 Suposo que hauré de - oh. 521 00:30:28,650 --> 00:30:32,010 Jo sóc tan ximple. Es va oblidar afegir una etiqueta PHP. 522 00:30:32,010 --> 00:30:34,670 Per això. 523 00:30:34,670 --> 00:30:41,260 Ara he de desfer aquest 1 canvi que acaba de fer. 524 00:30:41,260 --> 00:30:44,270 >> Okay. Això és. 525 00:30:44,270 --> 00:30:47,500 Això va ser realment ximple. Jo no tenia una etiqueta PHP obertura. 526 00:30:47,500 --> 00:30:49,900 Però com es pot veure, ara que està funcionant correctament, no? 527 00:30:49,900 --> 00:30:51,240 Tenim 1 entrada. 528 00:30:51,240 --> 00:30:54,730 Ens va agafar el primer lloc, i ara imprimim el seu cos. 529 00:30:54,730 --> 00:30:58,010 Gran. Fantàstic. 530 00:30:58,010 --> 00:31:01,470 Qualsevol pregunta fins ara? 531 00:31:01,470 --> 00:31:04,100 Nope? Alguna pregunta? 532 00:31:04,100 --> 00:31:08,340 Bé, pel que acabem de crear el model posterior, molt bàsic, 533 00:31:08,340 --> 00:31:10,930 i anem a afegir algunes funcions més endavant. 534 00:31:10,930 --> 00:31:13,600 Podem afegir validacions i filtrat. 535 00:31:13,600 --> 00:31:15,650 Validacions són una de les coses 536 00:31:15,650 --> 00:31:18,150 que els marcs de resoldre per a vostè molt, molt bé, 537 00:31:18,150 --> 00:31:21,310 i no crec que vostès havien de fer això per al seu PSET CS50, 538 00:31:21,310 --> 00:31:24,000 però si ho fa el desenvolupament web per al seu projecte final, 539 00:31:24,000 --> 00:31:26,280 vostè està probablement va voler fer algun tipus de validació, 540 00:31:26,280 --> 00:31:28,290 com no tenir els noms d'usuari en blanc, 541 00:31:28,290 --> 00:31:31,950 potser tenir una contrasenya amb almenys alguna extensió, coses així. 542 00:31:31,950 --> 00:31:34,750 I és molt molest per posar en pràctica aquestes coses per nosaltres mateixos, 543 00:31:34,750 --> 00:31:37,390 i gairebé tots els framework web només ho fa per vostè 544 00:31:37,390 --> 00:31:41,140 i li permet fer-ho d'una manera molt neta. 545 00:31:41,140 --> 00:31:44,340 I el model és on se solen expressar aquestes regles de validació, 546 00:31:44,340 --> 00:31:48,790 perquè està validant si un model és vàlid o no. 547 00:31:48,790 --> 00:31:51,350 >> Però per ara, anem a posar això per a més tard, 548 00:31:51,350 --> 00:31:53,520 i per ara treballarem en una altra part, 549 00:31:53,520 --> 00:31:55,400 i anem a tractar de fer una nova vista 550 00:31:55,400 --> 00:31:59,580 que mostra tots els missatges. 551 00:31:59,580 --> 00:32:02,490 Els passos necessaris per realitzar una nova acció per a la inclusió de tots els llocs 552 00:32:02,490 --> 00:32:04,810 és per prendre una llista de tots els missatges 553 00:32:04,810 --> 00:32:11,990 i després fer la llista de tots els missatges a través d'un punt de vista. 554 00:32:11,990 --> 00:32:16,420 Aquí, afortunadament, ja agafem tots els llocs 555 00:32:16,420 --> 00:32:20,310 utilitzant aquesta primera línia, el trobar totes les funcions, 556 00:32:20,310 --> 00:32:22,520 i ara el que farem és el que va 557 00:32:22,520 --> 00:32:25,350 He estat fixant directament el cos de la resposta 558 00:32:25,350 --> 00:32:29,090 passant la cadena, però ara vull utilitzar una vista, 559 00:32:29,090 --> 00:32:31,870 i la diferència entre una vista i fent això 560 00:32:31,870 --> 00:32:35,330 És amb la finalitat puc tenir una agradable gran plantilla, HTML, 561 00:32:35,330 --> 00:32:37,710 i el que puc fer és passar-ho certes variables 562 00:32:37,710 --> 00:32:42,200 i després tenir la vista omplir automàticament la seva plantilla 563 00:32:42,200 --> 00:32:44,690 l'ús d'aquestes variables. 564 00:32:44,690 --> 00:32:50,780 Què faré és que vaig a crear un nou punt de vista, 565 00:32:50,780 --> 00:32:55,940 i jo et nomeno la vista una cosa així com "el bloc / índex" 566 00:32:55,940 --> 00:33:08,480 i jo vaig a obligar bàsicament això - oh, què estic escrivint? 567 00:33:08,480 --> 00:33:12,910 El meu cervell està en una altra part. 568 00:33:12,910 --> 00:33:16,600 Vaig a enllaçar els llocs variables a la vista, 569 00:33:16,600 --> 00:33:19,950 de manera que la vista té accés a aquesta variable lloc. 570 00:33:19,950 --> 00:33:26,140 >> I així que ara he de crear aquest punt de vista, 571 00:33:26,140 --> 00:33:28,500 així que aquí tenim aquesta carpeta anomenada "punts de vista" 572 00:33:28,500 --> 00:33:32,150 i en primer lloc, vaig a crear una nova carpeta en què diu "Bloc". 573 00:33:32,150 --> 00:33:35,810 Això és bo. D'aquesta manera podem tenir un bon jerarquia per als nostres punts de vista. 574 00:33:35,810 --> 00:33:43,910 I després vaig a crear un altre arxiu d'allà anomenat "index.php". 575 00:33:43,910 --> 00:33:45,780 Impressionant. 576 00:33:45,780 --> 00:33:52,930 En realitat, tindrem als dos aquí. 577 00:33:52,930 --> 00:33:56,760 Fer un arxiu de vista és probablement la part més senzilla de tot això, 578 00:33:56,760 --> 00:33:59,090 i aquests són probablement coses que vostè ja està familiaritzat amb. 579 00:33:59,090 --> 00:34:01,240 Farem una cosa molt simple, 580 00:34:01,240 --> 00:34:05,360 començar a dir: "La meva llista d'entrades de bloc." 581 00:34:05,360 --> 00:34:14,860 Després podem anar a través de, 582 00:34:14,860 --> 00:34:17,920 i podem recórrer l'array missatges, 583 00:34:17,920 --> 00:34:21,760 agafar cada lloc i dir alguna cosa com - 584 00:34:21,760 --> 00:34:25,290 potser afegir una línia 585 00:34:25,290 --> 00:34:42,460 i després imprimir l'autor i el cos. 586 00:34:42,460 --> 00:34:44,480 Això té sentit fins ara? 587 00:34:44,480 --> 00:34:50,870 I veurem si funciona. 588 00:34:50,870 --> 00:34:53,489 No va passar res. 589 00:34:53,489 --> 00:34:55,090 Em pregunto per què. 590 00:34:55,090 --> 00:34:58,760 Oh, em vaig perdre 1 pas. Molt ximple de la meva part. 591 00:34:58,760 --> 00:35:01,640 He creat un punt de vista, però no em vaig posar la vista com la resposta, 592 00:35:01,640 --> 00:35:03,190 pel que ha de fer 1 cosa més. 593 00:35:03,190 --> 00:35:12,610 Vostè ha de fer "aquest cos de la resposta" i ajustar perquè sigui la vista. 594 00:35:12,610 --> 00:35:14,760 Això és. 595 00:35:14,760 --> 00:35:17,200 Tenim la nostra partida, i després tenim un post, 596 00:35:17,200 --> 00:35:20,500 i, només per diversió, anem a inserir un altre post 597 00:35:20,500 --> 00:35:23,390 perquè puguem veure una llista. 598 00:35:31,800 --> 00:35:36,650 I inserir aquests 2 pals, 599 00:35:36,650 --> 00:35:39,500 i ara si em refresqui la pàgina, 600 00:35:39,500 --> 00:35:42,060 veiem tots aquests llocs aquí. 601 00:35:42,060 --> 00:35:44,250 >> Això té sentit fins ara? 602 00:35:44,250 --> 00:35:46,400 Sí, una pregunta? Oh, està bé. 603 00:35:46,400 --> 00:35:51,440 Com podeu veure, hem estat capaços de separar tots aquests codis terme 604 00:35:51,440 --> 00:35:53,920 en diferents seccions, i llavors vostè pot veure que és més clar amb el codi de la vista. 605 00:35:53,920 --> 00:35:57,810 Aquest fitxer d'aquí que representa la vista, 606 00:35:57,810 --> 00:36:01,220 que només es preocupa per la representació de dades, la visualització de dades. 607 00:36:01,220 --> 00:36:04,310 Això es passa algun tipus de dades, i l'únic que fa és només mostrar a vostè. 608 00:36:04,310 --> 00:36:07,660 En totes les altres parts del seu codi, vostè no haurà de preocupar per res d'això, 609 00:36:07,660 --> 00:36:10,480 i de la mateixa manera, el seu codi de la vista no ha de preocupar sobre qualsevol cosa 610 00:36:10,480 --> 00:36:13,390 com accedir a la base de dades i així successivament i així successivament, 611 00:36:13,390 --> 00:36:19,950 que és molt bo i fa el codi molt més fàcil de mantenir. 612 00:36:19,950 --> 00:36:23,390 Com he dit, les vistes, que són dinàmics en aquest 613 00:36:23,390 --> 00:36:27,080 és 1 arxiu, però seria generar diferents punts de vista 614 00:36:27,080 --> 00:36:29,940 funció de les variables que realment passi a, 615 00:36:29,940 --> 00:36:32,370 ia més, hi ha una gran quantitat de diferents funcions d'ajuda 616 00:36:32,370 --> 00:36:34,230 que pot utilitzar per ajudar a escriure el seu codi més ràpid, 617 00:36:34,230 --> 00:36:36,320 el que jo et mostraré en tan sols uns segons. 618 00:36:36,320 --> 00:36:38,050 Sí 619 00:36:38,050 --> 00:36:42,490 >> [Estudiant] Així que $ 0 és un controlador, no? 620 00:36:42,490 --> 00:36:44,000 Aquesta segona cosa. 621 00:36:44,000 --> 00:36:46,090 La pregunta és és de $ 0 un controlador? 622 00:36:46,090 --> 00:36:48,610 $ 0 és una variable que he creat aquí. 623 00:36:48,610 --> 00:36:51,320 He creat una vista en primer lloc. He assignat a alguna variable. 624 00:36:51,320 --> 00:36:54,960 Després vaig passar a aquesta funció, faci el que el cos de la resposta. 625 00:36:54,960 --> 00:36:57,260 Això té sentit? 626 00:36:57,260 --> 00:37:02,200 [Estudiant] Així és vista :: factory, és vista com una classe 627 00:37:02,200 --> 00:37:06,610 o [inaudible] Funció fàbrica biblioteca? 628 00:37:06,610 --> 00:37:10,640 La pregunta es refereix a la funció de vista :: factory, 629 00:37:10,640 --> 00:37:14,020 i bàsicament es tracta d'una mica més de la programació orientada a objectes en essència. 630 00:37:14,020 --> 00:37:18,000 Vista és la classe de vista, i té un mètode anomenat "Factory" 631 00:37:18,000 --> 00:37:24,170 i això és una manera de captar l'objecte que es diu "el bloc / índex." 632 00:37:24,170 --> 00:37:27,140 I això és una mica més de coses de programació orientada a objectes 633 00:37:27,140 --> 00:37:33,010 que jo no entraré aquí massa. 634 00:37:33,010 --> 00:37:36,400 Ara, òbviament, volem crear nous llocs de treball, 635 00:37:36,400 --> 00:37:38,790 però no vull haver de fer-ho a través d'una base de dades, 636 00:37:38,790 --> 00:37:41,280 així que crearem una nova acció per a la creació d'un nou lloc, 637 00:37:41,280 --> 00:37:43,050 i hi ha un munt de coses que hem de fer. 638 00:37:43,050 --> 00:37:45,910 >> El primer que farem - abordarem aquestes coses una per una. 639 00:37:45,910 --> 00:37:48,320 El primer que farem és que hem de crear un formulari 640 00:37:48,320 --> 00:37:54,460 per a la inserció d'un nou lloc, 641 00:37:54,460 --> 00:37:57,360 però jo també vaig a afegir una nova acció en primer lloc, 642 00:37:57,360 --> 00:38:01,050 pel que afegir una nova acció és tan fàcil com 643 00:38:01,050 --> 00:38:03,490 afegint una nova funció amb el controlador, 644 00:38:03,490 --> 00:38:13,710 i per ara me'n vaig a fer alguna cosa molt bàsic, 645 00:38:13,710 --> 00:38:20,850 només has de prendre aquest punt de vista i que el posi, simplement mostrar per a vostè. 646 00:38:20,850 --> 00:38:26,220 I llavors ara vaig a crear un nou arxiu de vista, 647 00:38:26,220 --> 00:38:33,690 i jo vaig a començar a escriure algunes coses. 648 00:38:33,690 --> 00:38:36,540 El millor de Kohana és que proporcionen una gran quantitat de funcions d'ajuda 649 00:38:36,540 --> 00:38:38,790 perquè vostè escrigui la vista de codi més fàcilment, 650 00:38:38,790 --> 00:38:41,970 i 1 de les funcions auxiliars o mòduls d'ajuda 651 00:38:41,970 --> 00:38:45,860 està al voltant de l'escriptura formes. 652 00:38:45,860 --> 00:38:49,460 Per a l'escriptura de formes, jo realment no he d'escriure directament qualsevol codi HTML mi mateix. 653 00:38:49,460 --> 00:38:51,100 Vostès han escrit els formularis HTML. 654 00:38:51,100 --> 00:38:54,850 Ja saps el que pot ser molt, molt dolorós i incòmode per escriure formes. 655 00:38:54,850 --> 00:38:59,970 No és divertit, així que afortunadament, 656 00:38:59,970 --> 00:39:04,860 que, bàsicament, es pot escriure un formulari utilitzant Kohana de 657 00:39:04,860 --> 00:39:11,190 formar funcions auxiliars perquè ho faci per nosaltres. 658 00:39:11,190 --> 00:39:17,340 Tindrem bàsicament camps per cada cosa que tenim, 659 00:39:17,340 --> 00:39:23,160 de manera que un dels autors i l'altra per als cossos. 660 00:39:23,160 --> 00:39:27,090 Tindrem una etiqueta, i tindrem una entrada. 661 00:39:37,450 --> 00:39:41,360 >> I finalment, tindrem una presentació. 662 00:39:49,350 --> 00:39:52,230 I com es pot veure, això és molt més net per escriure 663 00:39:52,230 --> 00:39:58,150 que tot el que HTML desordenat, que és una mica agradable. 664 00:39:58,150 --> 00:40:00,930 Per descomptat, hi ha altres frameworks web que ho tenen encara més net que això, 665 00:40:00,930 --> 00:40:04,440 però almenys això és millor que escriure el codi HTML vostè mateix. 666 00:40:09,400 --> 00:40:11,130 Impressionant, així que això és el que es veu. 667 00:40:11,130 --> 00:40:13,530 Això és una mica desordenat, 668 00:40:13,530 --> 00:40:19,720 així que vaig a afegir un salt de línia no 669 00:40:19,720 --> 00:40:21,180 per fer aquesta mirada una mica més agradable. 670 00:40:21,180 --> 00:40:23,330 Bé, per descomptat, encara es veu molt, molt malament, però nosaltres només estem concentrats 671 00:40:23,330 --> 00:40:26,050 en la funcionalitat per ara i no en l'estètica. 672 00:40:26,050 --> 00:40:28,010 No hi ha temps per fer-ho tot. 673 00:40:28,010 --> 00:40:30,600 I com poden veure, ara tenim una forma molt bàsica, 674 00:40:30,600 --> 00:40:32,080 que és una espècie d'agradable. 675 00:40:32,080 --> 00:40:36,730 Aquest codi, diria que és més net que el que intenta escriure un fitxer HTML formar a tu mateix, 676 00:40:36,730 --> 00:40:40,290 així que això és bo. 677 00:40:40,290 --> 00:40:42,030 Què segueix? 678 00:40:42,030 --> 00:40:49,260 Ara hem de fer les coses amb l'acció. 679 00:40:49,260 --> 00:40:51,240 Normalment, quan escriviu els formularis HTML, 680 00:40:51,240 --> 00:40:54,070 vostè ha de dir-li per on es va a enviar el formulari al. 681 00:40:54,070 --> 00:40:56,050 Per defecte en la majoria dels frameworks web, 682 00:40:56,050 --> 00:40:58,200 se sotmet a la mateixa URL exacta, de manera que la cosa és, 683 00:40:58,200 --> 00:41:01,310 si envia una sol · licitud GET a / bloc / nova, 684 00:41:01,310 --> 00:41:03,240 que ha de mostrar el formulari, 685 00:41:03,240 --> 00:41:06,810 però si vostè envia una sol · licitud POST a / bloc / nova amb les dades, 686 00:41:06,810 --> 00:41:10,000 el que realment ha de tractar de salvar aquest lloc 687 00:41:10,000 --> 00:41:13,300 i fer alguna cosa amb ell. 688 00:41:20,630 --> 00:41:22,180 >> El que farem és 689 00:41:22,180 --> 00:41:25,320 bàsicament tot el que hem de fer per comprovar si es tracta d'una sol · licitud posterior o una petició get 690 00:41:25,320 --> 00:41:29,350 és comprovar quines són les variables de correus que es poden establir. 691 00:41:29,350 --> 00:41:34,560 I si la variable missatge s'estableix, llavors anem a tractar de crear un nou lloc. 692 00:41:34,560 --> 00:41:38,440 Un cop més, acabem de fer això, 693 00:41:38,440 --> 00:41:41,090 i que crea un nou lloc, i estem, literalment, va a 694 00:41:41,090 --> 00:41:51,150 establir els seus camps com aquest, 695 00:41:51,150 --> 00:41:55,640 i després anem a guardar-lo. 696 00:41:55,640 --> 00:41:59,200 I després vaig a redirigir 697 00:41:59,200 --> 00:42:07,660 a la pàgina d'índex perquè puguin veure la nostra llista de llocs de nou. 698 00:42:07,660 --> 00:42:09,620 Anem a intentar-ho. 699 00:42:09,620 --> 00:42:15,160 Vaig a dir, "Brandon" 700 00:42:15,160 --> 00:42:18,140 i després enviar el correu, i si tot va bé, 701 00:42:18,140 --> 00:42:21,390 com es pot veure, em redirigeix ​​a la pàgina d'índex, 702 00:42:21,390 --> 00:42:24,140 i si em desplaço fins al fons, tenim un missatge que acaba d'inserir. 703 00:42:24,140 --> 00:42:26,430 Yay! 704 00:42:26,430 --> 00:42:28,430 Sí, es tracta. 705 00:42:28,430 --> 00:42:31,760 >> [Estudiant] Què passa si vostè l'hagués fet exactament el mateix 706 00:42:31,760 --> 00:42:33,380 que va ingressar abans? 707 00:42:33,380 --> 00:42:36,950 Es comprova per assegurar-se que no hi hagi duplicats 708 00:42:36,950 --> 00:42:38,810 la mateixa comunicació? 709 00:42:38,810 --> 00:42:41,660 Sigui per defecte, no, perquè per defecte - 710 00:42:41,660 --> 00:42:46,470 Ho sentim, la pregunta és si s'introdueix en les mateixes dades en la forma 711 00:42:46,470 --> 00:42:50,180 i el presentaran, es permetrà inserir un objecte duplicat, 712 00:42:50,180 --> 00:42:52,550 una entrada duplicada, essencialment? 713 00:42:52,550 --> 00:42:54,070 Ara mateix, sí, permetrà que vostè faci això, 714 00:42:54,070 --> 00:42:58,860 perquè en les bases de dades és perfectament vàlid tenir files completament duplicats, 715 00:42:58,860 --> 00:43:02,260 però si això és una preocupació, llavors vostè pot afegir validacions, per exemple, 716 00:43:02,260 --> 00:43:06,430 per assegurar-se que si això és exactament el mateix que una cosa que ja existeix, 717 00:43:06,430 --> 00:43:08,720 després dir que és un objecte no vàlid, 718 00:43:08,720 --> 00:43:11,200 i després, es pot especificar el missatge d'error 719 00:43:11,200 --> 00:43:14,390 i dir: "no vàlid perquè aquest ja existeix" o alguna cosa per l'estil. 720 00:43:14,390 --> 00:43:22,420 Però en aquest cas, jo només podia crear alguna cosa duplicat. 721 00:43:22,420 --> 00:43:26,010 Ara anem a tractar d'afegir algunes validacions. 722 00:43:26,010 --> 00:43:30,400 El problema amb això ara mateix és que 723 00:43:30,400 --> 00:43:34,220 Jo, literalment, podia presentar un missatge completament en blanc. 724 00:43:34,220 --> 00:43:37,500 Puc fer clic en aquest botó en aquest moment, i cal anar. 725 00:43:37,500 --> 00:43:40,290 Realment no es pot veure, però aquesta línia addicional aquí 726 00:43:40,290 --> 00:43:43,830 indica que, literalment, tinc un nou lloc. 727 00:43:43,830 --> 00:43:46,050 Tot just té un autor en blanc i un cos en blanc, 728 00:43:46,050 --> 00:43:48,630 i nosaltres no volem permetre que la gent faci això. 729 00:43:48,630 --> 00:43:52,550 Aquí és on entra en joc la validació 730 00:43:52,550 --> 00:43:57,540 >> Jo puc anar al meu objecte de model, 731 00:43:57,540 --> 00:43:59,530 i ara puc afegir una nova funció que especifica 732 00:43:59,530 --> 00:44:02,000 quines regles de validació He d'afegir que aquest model 733 00:44:02,000 --> 00:44:06,840 per assegurar-se que és vàlid o per especificar què és el que significa ser un missatge vàlid? 734 00:44:06,840 --> 00:44:10,210 I vull dir que és només un missatge vàlid si tant l'autor i el cos 735 00:44:10,210 --> 00:44:15,150 no estan en blanc, i així és com ho fas en Kohana. 736 00:44:15,150 --> 00:44:18,750 Es crea una nova funció anomenada "Regles" 737 00:44:18,750 --> 00:44:20,210 i llavors, bàsicament retorna una matriu associativa 738 00:44:20,210 --> 00:44:24,230 que defineix les regles de validació per a aquest objecte. 739 00:44:24,230 --> 00:44:27,530 Anem a tornar la matriu, i després el que farem és 740 00:44:27,530 --> 00:44:32,820 dir "autor", que va a una matriu, 741 00:44:32,820 --> 00:44:37,720 que va a una altra matriu anomenada "no està buit." 742 00:44:37,720 --> 00:44:41,480 I després vaig a dir "cos". 743 00:44:50,980 --> 00:44:54,120 Està bé, i la sintaxi d'aquesta i l'estructura d'aquest 744 00:44:54,120 --> 00:44:56,530 pot semblar una mica complicat i una mica complicat. 745 00:44:56,530 --> 00:44:59,330 Si llegeix la documentació, que és bastant senzill d'entendre, 746 00:44:59,330 --> 00:45:02,500 Però, en essència això és el que cal fer per especificar 747 00:45:02,500 --> 00:45:04,130 algunes regles de validació, i hi ha una gran quantitat de normes diferents 748 00:45:04,130 --> 00:45:06,810 Kohana que li donarà de forma gratuïta, igual que es poden afegir regles de dir 749 00:45:06,810 --> 00:45:08,410 ha de ser almenys d'aquesta longitud. 750 00:45:08,410 --> 00:45:11,800 Potser ha de ser numèric. Potser ha de ser numèric alfa. 751 00:45:11,800 --> 00:45:14,410 Potser ha de ser com a màxim d'aquesta longitud, així successivament i així successivament. 752 00:45:14,410 --> 00:45:17,730 Hi ha un munt de diferents regles que Kohana ofereix per a vostè, 753 00:45:17,730 --> 00:45:19,610 i es pot anar a la seva pàgina web, mirar la documentació, 754 00:45:19,610 --> 00:45:23,150 i es pot veure les diferents coses que vostè pot fer. 755 00:45:23,150 --> 00:45:25,650 >> Però això és tot el que he de fer, 756 00:45:25,650 --> 00:45:30,490 i ara veurem què passa 757 00:45:30,490 --> 00:45:34,060 si presento una entrada en blanc. 758 00:45:34,060 --> 00:45:36,960 ¿Què passarà? Oh, no, em dóna un error. 759 00:45:36,960 --> 00:45:39,440 Rebut una excepció de validació. 760 00:45:39,440 --> 00:45:41,070 Bé, és bo. 761 00:45:41,070 --> 00:45:43,200 Em va dir que el meu model no és vàlid, 762 00:45:43,200 --> 00:45:45,780 però jo no vull mostrar una excepció 763 00:45:45,780 --> 00:45:48,720 als meus usuaris quan intenten presentar alguna cosa vàlid, no? 764 00:45:48,720 --> 00:45:51,560 Vull donar-los algun tipus de missatge d'error més amigable 765 00:45:51,560 --> 00:45:53,610 quan alguna cosa va malament. 766 00:45:53,610 --> 00:46:01,830 El que farem és que anem a 767 00:46:01,830 --> 00:46:04,490 embolicar tot en un bucle intent de captura. 768 00:46:04,490 --> 00:46:06,750 En realitat, crec que això també és una cosa que no has après encara 769 00:46:06,750 --> 00:46:10,820 en CS50, perquè C, el llenguatge de programació C, 770 00:46:10,820 --> 00:46:14,000 no té excepcions, però gairebé tots els altres sol idioma 771 00:46:14,000 --> 00:46:16,700 té excepcions, així que realment, realment breument, 772 00:46:16,700 --> 00:46:19,430 una excepció és una cosa que una peça de codi pot 773 00:46:19,430 --> 00:46:21,430 una excepció quan alguna cosa surt malament, 774 00:46:21,430 --> 00:46:23,410 però llavors potser alguna altra peça de codi més amunt 775 00:46:23,410 --> 00:46:25,810 pot atrapar aquesta excepció i fer alguna cosa amb ell. 776 00:46:25,810 --> 00:46:27,710 >> Per exemple, en aquest cas, 777 00:46:27,710 --> 00:46:29,940 el tros de codi que intenta salvar un model, 778 00:46:29,940 --> 00:46:33,170 que valida el model, i si diu: "Està bé, aquest model no és vàlid" 779 00:46:33,170 --> 00:46:36,150 que llançarà una excepció, i això és una espècie d'equivalent a 780 00:46:36,150 --> 00:46:39,870 en C és possible retornar un -1 o alguna cosa per l'estil. 781 00:46:39,870 --> 00:46:42,320 I després, per a mi, aquesta funció, el meu codi 782 00:46:42,320 --> 00:46:46,310 en un nivell superior, puc tractar d'atrapar aquesta excepció 783 00:46:46,310 --> 00:46:49,330 i bàsicament vaig dir: "Bé, si jo agafo l'excepció, què faré?" 784 00:46:49,330 --> 00:46:51,570 O podria triar no prendre aquesta excepció i deixar que algú més amunt 785 00:46:51,570 --> 00:46:54,400 detectar l'excepció, o si ningú l'agafa, 786 00:46:54,400 --> 00:46:56,820 llavors tot el programa es bloqueja i diu: 787 00:46:56,820 --> 00:46:59,170 "Quelcom ha fallat, i jo no podia suportar-ho." 788 00:46:59,170 --> 00:47:04,490 >> Però el que fem és que es col · loca una peça de codi en un bloc try, 789 00:47:04,490 --> 00:47:09,030 i després també s'afegeix una cosa anomenada un bloc catch, 790 00:47:09,030 --> 00:47:17,300 que és el tipus de codi que tractar de capturar les excepcions que es puguin produir. 791 00:47:17,300 --> 00:47:20,430 I pel que si agafo aquesta excepció en particular 792 00:47:20,430 --> 00:47:23,110 o excepció de nul · litat, llavors el que vaig a fer és 793 00:47:23,110 --> 00:47:31,210 Me'n vaig a fixar els errors - Crec que així és com ho faig - 794 00:47:31,210 --> 00:47:35,370 i jo vaig a posar els errors a algun objecte. 795 00:47:35,370 --> 00:47:40,920 I llavors el que vaig a fer és si colpeja aquesta excepció, 796 00:47:40,920 --> 00:47:43,090 no va a redirigir i, si no redirigeix, 797 00:47:43,090 --> 00:47:46,160 que sortirà de la si el bloc 798 00:47:46,160 --> 00:47:49,920 i colpejar aquest bloc / nova, que vull el que vull fer. 799 00:47:49,920 --> 00:47:53,190 Si hi ha un error, llavors jo vull tornar a la forma 800 00:47:53,190 --> 00:47:55,100 i visualitzar aquests errors. 801 00:47:55,100 --> 00:48:00,780 Ara el que vull fer és que vull passar en aquests errors 802 00:48:00,780 --> 00:48:07,010 a la vista. 803 00:48:07,010 --> 00:48:10,360 Bé, crec que tinc la vista aquí, 804 00:48:10,360 --> 00:48:14,660 i bàsicament vull mostrar els errors si és que existeixen. 805 00:48:14,660 --> 00:48:19,740 Abans d'escriure el codi HTML per això, vaig a realment ràpid 806 00:48:19,740 --> 00:48:21,720 mostrar el que l'estructura d'aquest error es veu com a variables, 807 00:48:21,720 --> 00:48:23,080 i aquesta és una bona pràctica en general. 808 00:48:23,080 --> 00:48:25,070 Moltes vegades et donen alguna cosa a canvi d'algun mètode, 809 00:48:25,070 --> 00:48:27,250 alguna funció en el marc de web, 810 00:48:27,250 --> 00:48:29,410 i vostè no sap el que la variable s'assembla, 811 00:48:29,410 --> 00:48:31,210 pel que vostè no sap com treballar amb ell. 812 00:48:31,210 --> 00:48:37,790 Vaig a utilitzar un mètode d'impressió r bàsicament imprimir-lo. 813 00:48:37,790 --> 00:48:41,100 >> I com es pot veure, em diu que és una matriu associativa, 814 00:48:41,100 --> 00:48:44,880 i té una clau, autor, punts d'aquesta cadena, 815 00:48:44,880 --> 00:48:47,050 autor no ha d'estar buit, i una altra tecla, el cos, 816 00:48:47,050 --> 00:48:49,680 apunta a una altra cadena, el cos no ha d'estar buit. 817 00:48:49,680 --> 00:48:52,130 Jo sóc com, bé, fresc. 818 00:48:52,130 --> 00:48:56,230 Llavors puc recórrer l'array i imprimir cada missatge. 819 00:48:56,230 --> 00:49:02,150 És bàsicament com un array associatiu amb un munt de missatges. 820 00:49:02,150 --> 00:49:13,500 El que faré és "si els errors" 821 00:49:13,500 --> 00:49:17,140 i jo vaig a crear una llista desordenada, 822 00:49:17,140 --> 00:49:20,860 i jo vaig a recórrer tots els errors. 823 00:49:33,730 --> 00:49:38,710 I això, i ara vaig a tractar d'enviar de nou, 824 00:49:38,710 --> 00:49:41,200 i anem a veure el que tenim. 825 00:49:41,200 --> 00:49:45,370 Ara tenim aquesta bonica llista d'errors, 826 00:49:45,370 --> 00:49:48,630 i això segueix sent bastant lleig, però això, òbviament, es pot formatar per veure't bé, 827 00:49:48,630 --> 00:49:51,620 però la idea bàsica és només en unes poques línies de codi, 828 00:49:51,620 --> 00:49:53,720 hem estat capaços de validar el nostre model, 829 00:49:53,720 --> 00:49:56,510 assegurar-se que certs camps no estaven buides, 830 00:49:56,510 --> 00:49:59,740 i si alguna cosa va sortir malament, i després tornar algun tipus de missatge d'error 831 00:49:59,740 --> 00:50:01,760 Llavors jo podria presentar de nou a l'usuari. 832 00:50:01,760 --> 00:50:03,910 També pot personalitzar la seva validació 833 00:50:03,910 --> 00:50:07,590 de manera que vostè pot tenir un missatge d'error 834 00:50:07,590 --> 00:50:09,620 que és més específic per a la seva aplicació o alguna cosa per l'estil. 835 00:50:09,620 --> 00:50:14,600 Tot el que és en general adaptable. 836 00:50:14,600 --> 00:50:17,150 >> Lamentablement, ens estem quedant sense temps, 837 00:50:17,150 --> 00:50:20,040 així que vaig a haver de tallar la sessió de codificació en viu aquí. 838 00:50:20,040 --> 00:50:22,980 Hi ha un munt d'altres característiques que vull demostrar a vostè 839 00:50:22,980 --> 00:50:25,650 en aquest exemple. 840 00:50:25,650 --> 00:50:27,620 Per exemple, pot afegir plantilles al seu lloc, 841 00:50:27,620 --> 00:50:31,110 així que potser hi ha algun tipus de codi HTML que voleu aplicar 842 00:50:31,110 --> 00:50:35,190 a cada pàgina al seu lloc, i en comptes d'enganxar que 843 00:50:35,190 --> 00:50:40,630 en cada arxiu de vista únic que tens, el que òbviament seria una mala pràctica, 844 00:50:40,630 --> 00:50:43,020 bàsicament es pot definir aquestes plantilles, 845 00:50:43,020 --> 00:50:46,660 i després en el seu controlador dic: "Bé, estic fent servir aquesta plantilla." 846 00:50:46,660 --> 00:50:50,130 "Tots els meus opinions utilitzar aquesta plantilla." 847 00:50:50,130 --> 00:50:52,470 I l'última cosa que vull demostrar a vostè també 848 00:50:52,470 --> 00:50:57,800 que no tenim temps per és cross-site scripting, 849 00:50:57,800 --> 00:51:01,430 i, bàsicament, crec que vostès han vist probablement en CS50 - 850 00:51:01,430 --> 00:51:03,770 Crec que David Malan probablement va parlar del que normalment es pot injectar 851 00:51:03,770 --> 00:51:08,040 El codi JavaScript en - Has parlat d'això? 852 00:51:08,040 --> 00:51:10,220 Potser? Potser no? 853 00:51:10,220 --> 00:51:12,670 >> Obstant això, una gran quantitat de vegades que es pot injectar codi JavaScript maliciós 854 00:51:12,670 --> 00:51:15,630 en base de dades d'algú, i si ells no escapen que correctament, 855 00:51:15,630 --> 00:51:18,280 a continuació, quan es presenten al fet que les dades de tornada a l'usuari, 856 00:51:18,280 --> 00:51:21,310 llavors pot executar algun tipus de codi JavaScript aleatori que no vol que passi, 857 00:51:21,310 --> 00:51:23,050 i que anava a demostrar com faries que d'aquí a Kohana. 858 00:51:23,050 --> 00:51:25,380 En realitat és molt, molt fàcil. 859 00:51:25,380 --> 00:51:31,920 Jo podria fer-ho ara mateix en 2 segons, literalment. 860 00:51:31,920 --> 00:51:34,560 Tot el que has de fer és bàsicament envolten aquestes coses 861 00:51:34,560 --> 00:51:46,920 en aquesta cosa anomenada entitats HTML. 862 00:51:46,920 --> 00:51:51,180 I això va a escapar de forma automàtica tots els caràcters correctament 863 00:51:51,180 --> 00:51:54,730 i assegureu-vos que vostè no aconsegueix aquest problema. 864 00:51:54,730 --> 00:51:57,220 [Estudiant] Van escriure la primera prova de forma incorrecta. 865 00:51:57,220 --> 00:52:01,030 [Brandon Liu] Oh, perdó. 866 00:52:01,030 --> 00:52:06,420 >> Bé, això és tot el que havia de compartir amb vostès avui. 867 00:52:06,420 --> 00:52:09,930 Aquestes diapositives seran publicat, però aquests són generalment 868 00:52:09,930 --> 00:52:13,900 els únics recursos que haurien realment necessita per començar amb Kohana. 869 00:52:13,900 --> 00:52:16,770 Vostè pot anar a la pàgina web. Tenen una guia de l'usuari, i també tenen un explorador API. 870 00:52:16,770 --> 00:52:20,630 Podem explorar totes les diferents funcions i funcions d'ajuda que tenen per a tu. 871 00:52:20,630 --> 00:52:22,070 En general, tenen prou informació al lloc web 872 00:52:22,070 --> 00:52:25,310 que pot utilitzar per començar i posar-se en marxa amb Kohana. 873 00:52:25,310 --> 00:52:30,840 Allà no hi ha molts tutorials, crec, per Kohana, fora del 874 00:52:30,840 --> 00:52:33,880 el que tenen en el lloc web aquí, així que aquesta és probablement la seva millor aposta. 875 00:52:33,880 --> 00:52:35,600 Però si vols anar amb el framework web 876 00:52:35,600 --> 00:52:37,120 i no vull haver de recollir a un nou idioma, 877 00:52:37,120 --> 00:52:39,780 i vostè vol alguna cosa que és relativament lleuger i té una corba d'aprenentatge fàcil, 878 00:52:39,780 --> 00:52:41,570 Sens dubte recomano Kohana. 879 00:52:41,570 --> 00:52:44,040 Aquesta és probablement la millor oferta per això. 880 00:52:44,040 --> 00:52:46,830 El curiós, però, és si estàvem usant Ruby on Rails, 881 00:52:46,830 --> 00:52:48,550 podríem haver replicat el que acabem de fer 882 00:52:48,550 --> 00:52:51,430 i probablement més en menys de 3 minuts. 883 00:52:51,430 --> 00:52:54,710 No és broma, però l'aprenentatge de Ruby on Rails necessita molt més temps 884 00:52:54,710 --> 00:52:56,780 del que es necessitaria per aprendre Kohana. 885 00:52:56,780 --> 00:52:58,840 Es tracta bàsicament de la seva elecció en el que es vol optar per aprendre, 886 00:52:58,840 --> 00:53:01,260 però si vostè vol posar en marxa ràpidament, 887 00:53:01,260 --> 00:53:03,870 Kohana és sens dubte una molt bona elecció. 888 00:53:03,870 --> 00:53:06,730 >> Unes últimes preguntes abans d'acabar? Sí 889 00:53:06,730 --> 00:53:08,020 [Estudiant] Com podem integrar aquesta 890 00:53:08,020 --> 00:53:13,120 en un marc de CSS com si fes servir quan estaves donant instruccions? 891 00:53:13,120 --> 00:53:16,700 La pregunta és com podem integrar això amb un marc de CSS? 892 00:53:16,700 --> 00:53:18,740 El que probablement ens tornaríem a fer és que probablement inclourà 893 00:53:18,740 --> 00:53:21,090 una nova carpeta on volem bolcar tots els nostres arxius CSS, 894 00:53:21,090 --> 00:53:23,010 i després també ens sumem una plantilla. 895 00:53:23,010 --> 00:53:26,090 A la plantilla que havíem incloem aquests arxius CSS 896 00:53:26,090 --> 00:53:28,410 per assegurar-se que estan referenciades a cada pàgina, 897 00:53:28,410 --> 00:53:32,220 i després, quan en realitat s'està escrivint HTML, 898 00:53:32,220 --> 00:53:34,010 que acaba d'afegir classes i altres coses apropiades, 899 00:53:34,010 --> 00:53:36,100 i, per exemple, quan vostè està utilitzant alguna cosa com la forma 900 00:53:36,100 --> 00:53:40,710 funció auxiliar, pot afegir més paràmetres després 901 00:53:40,710 --> 00:53:42,830 per especificar quines classes desitja que s'adjunta a diverses coses 902 00:53:42,830 --> 00:53:47,820 perquè poguessin dissenyar correctament, i això és bàsicament com anirà. 903 00:53:47,820 --> 00:53:50,100 >> Alguna altra pregunta? 904 00:53:50,100 --> 00:53:52,090 Impressionant. 905 00:53:52,090 --> 00:53:58,540 Gràcies pel seu temps i gràcies per venir. 906 00:53:58,540 --> 00:54:05,170 Jo no anava a afegir molt més, 907 00:54:05,170 --> 00:54:08,560 però 1 cosa molt ràpida és que no tenim un vincle 908 00:54:08,560 --> 00:54:12,590 a la forma. 909 00:54:12,590 --> 00:54:14,310 Realment ximple. 910 00:54:14,310 --> 00:54:20,110 Anem a afegir un - en realitat a la vista, bloc, índex, 911 00:54:20,110 --> 00:54:23,890 anem molt ràpid afegir un enllaç que va a la nova pàgina, 912 00:54:23,890 --> 00:54:26,770 la pàgina on podem inserir un nou lloc. 913 00:54:26,770 --> 00:54:29,950 Anem a fer això. 914 00:54:29,950 --> 00:54:34,020 El millor és que hi ha tot aquest grup de funcions d'ajuda HTML 915 00:54:34,020 --> 00:54:37,090 de fer coses diferents per a vostè, de manera que ja es va veure les entitats 916 00:54:37,090 --> 00:54:41,980 funcionar aquí, però també tenen una funció anomenada "àncora" 917 00:54:41,980 --> 00:54:45,400 el que pot escriure al blog / nou 918 00:54:45,400 --> 00:54:49,550 i dir: "Publica un nou bloc." 919 00:54:49,550 --> 00:54:51,850 I seria crear aquest vincle per a tu, 920 00:54:51,850 --> 00:54:54,120 i això sembla molt trivial de fer, però això és bo, 921 00:54:54,120 --> 00:54:58,720 perquè suposes que està traslladant seu lloc web a partir de l'1 de domini a un altre. 922 00:54:58,720 --> 00:55:01,390 I si vostè acaba d'escriure les adreces URL a tu mateix, 923 00:55:01,390 --> 00:55:04,350 llavors vostè hauria de canviar totes les adreces URL. 924 00:55:04,350 --> 00:55:06,850 O potser vostè es va mudar des d'1 subcarpeta a una altra subcarpeta. 925 00:55:06,850 --> 00:55:08,790 Vostè hauria de canviar totes les adreces URL a tu mateix, 926 00:55:08,790 --> 00:55:12,180 i això no és divertit. 927 00:55:12,180 --> 00:55:14,510 Podeu usar aquesta àncora aquí, 928 00:55:14,510 --> 00:55:18,950 i vostè pot canviar el domini o el prefix subcarpeta 929 00:55:18,950 --> 00:55:20,640 a l'arxiu de configuració una vegada, 930 00:55:20,640 --> 00:55:22,980 i després s'aplica que a tot arreu, i això és, de nou, 931 00:55:22,980 --> 00:55:26,930 un gran exemple de no repetir a tu mateix, l'assecat del seu codi de sortida. 932 00:55:26,930 --> 00:55:30,370 Allà on estàs repetint, tractar d'extreure en una mena d'arxiu de configuració 933 00:55:30,370 --> 00:55:34,160 o per a una funció diferent i han de manejar això per a vostè. 934 00:55:34,160 --> 00:55:42,930 >> I l'última cosa que jo volia mostrar era 935 00:55:42,930 --> 00:55:50,250 Suposem que estem de tornada en aquest post, i jo havia compost alguns realment llarg assaig, 936 00:55:50,250 --> 00:55:52,670 però em vaig oblidar d'incloure el meu autor. 937 00:55:52,670 --> 00:55:55,210 Ara, quan faig clic a "Enviar missatge" 938 00:55:55,210 --> 00:55:57,270 Acabo de perdre tot. 939 00:55:57,270 --> 00:56:00,000 No! Molt trist. 940 00:56:00,000 --> 00:56:03,870 Així que, com tractar amb això? 941 00:56:03,870 --> 00:56:06,070 Això és el que fem. 942 00:56:06,070 --> 00:56:09,340 El que fem és aquí per aquestes funcions d'entrada i àrea de text, 943 00:56:09,340 --> 00:56:12,700 Si s'inclou un segon paràmetre, llavors el valor d'aquest segon paràmetre 944 00:56:12,700 --> 00:56:16,620 serà el que el camp serà inicialment poblada. 945 00:56:16,620 --> 00:56:23,570 El que podríem fer és en el nostre controlador bloc, 946 00:56:23,570 --> 00:56:25,360 podríem enllaçar una altra variable. 947 00:56:25,360 --> 00:56:27,050 Llámelo "valors" potser. 948 00:56:27,050 --> 00:56:30,620 I esdevindrà en la matriu post, literalment. 949 00:56:30,620 --> 00:56:32,620 Això vol dir que si la validació no, 950 00:56:32,620 --> 00:56:36,570 passar a mi la matriu post que he presentat des de l'última sol · licitud, 951 00:56:36,570 --> 00:56:38,420 i d'aquesta manera pot utilitzar els valors de la meva última presentació 952 00:56:38,420 --> 00:56:44,540 per repoblar els camps. 953 00:56:44,540 --> 00:56:49,600 Ara puc fer alguna cosa com a valors d'autor 954 00:56:49,600 --> 00:56:55,180 i valors del cos, i d'aquesta manera ara si faig algunes coses a l'atzar 955 00:56:55,180 --> 00:57:01,490 i feu clic a "Enviar Missatge", llavors es queda allà. 956 00:57:01,490 --> 00:57:03,830 Però ens quedarem en un altre problema. 957 00:57:03,830 --> 00:57:07,670 Això funciona, però si vaig a la pàgina de la primera vegada, 958 00:57:07,670 --> 00:57:09,720 que va a xocar, i això és perquè la primera vegada 959 00:57:09,720 --> 00:57:13,730 ens anem a la pàgina, aquesta variable missatge no s'ha definit encara. 960 00:57:13,730 --> 00:57:18,170 És nul. No existeix. 961 00:57:18,170 --> 00:57:21,630 >> I el que volem dir és que si existeix aquesta clau, 962 00:57:21,630 --> 00:57:27,750 a continuació, tornar el valor d'aquesta matriu, 963 00:57:27,750 --> 00:57:30,450 però si no hi ha la clau, a continuació, tornar una cadena en blanc. 964 00:57:30,450 --> 00:57:32,150 Aquesta és la funcionalitat que volem aquí. 965 00:57:32,150 --> 00:57:34,690 Volem comprovar si la clau existeix abans d'intentar accedir a la matriu, 966 00:57:34,690 --> 00:57:36,580 i afortunadament, 967 00:57:36,580 --> 00:57:38,570 Kohana també ens dóna una funció auxiliar per això. 968 00:57:38,570 --> 00:57:41,040 Tenen tot aquest conjunt de funcions 969 00:57:41,040 --> 00:57:43,660 sota el nom de ARR, acrònim de matriu, 970 00:57:43,660 --> 00:57:45,800 i tenen 1 funció anomenada "aconseguir" 971 00:57:45,800 --> 00:57:48,690 i es pot passar de la matriu, 972 00:57:48,690 --> 00:57:50,740 i vostè pot passar el nom de la clau. 973 00:57:50,740 --> 00:57:54,330 Llavors, bàsicament, el que farà és que es tracti d'obtenir aquesta clau, 974 00:57:54,330 --> 00:57:56,470 però si aquesta clau no existeix en la matriu, 975 00:57:56,470 --> 00:58:00,900 després tornarà blanc, o també es pot donar un valor específic, crec jo, 976 00:58:00,900 --> 00:58:03,500 la qual cosa és bo. 977 00:58:09,740 --> 00:58:13,150 Ara bé, si fem el mateix una altra vegada, 978 00:58:13,150 --> 00:58:15,970 després veus ara funciona la primera vegada, 979 00:58:15,970 --> 00:58:18,080 i de nou, si escrivim en algunes coses a l'atzar 980 00:58:18,080 --> 00:58:23,210 i tractar de presentar, a continuació, es queda allà. 981 00:58:23,210 --> 00:58:31,640 >> I suposo que també et puc mostrar com afegir una plantilla molt ràpid. 982 00:58:31,640 --> 00:58:36,140 El que podem fer en primer lloc és que podem afegir una nova vista anomenada "template.php" 983 00:58:36,140 --> 00:58:38,890 dins de la carpeta Views, 984 00:58:38,890 --> 00:58:44,730 i el que faré és que vaig a imprimir una cosa que es diu "contingut" 985 00:58:44,730 --> 00:58:49,130 que serà la meva pàgina principal. 986 00:58:49,130 --> 00:58:51,380 I potser en el mateix fons que vaig a afegir, per exemple, 987 00:58:51,380 --> 00:58:53,340 els drets d'autor. 988 00:58:53,340 --> 00:58:56,150 [Pregunta estudiant inaudible] 989 00:58:56,150 --> 00:58:58,050 [Brandon Liu] Potser aquesta és una plantilla molt bàsica que vull utilitzar. 990 00:58:58,050 --> 00:59:02,840 Vull tenir una carpeta amb els meus drets d'autor a cada pàgina, 991 00:59:02,840 --> 00:59:05,560 i ara el que faré dins del meu controlador 992 00:59:05,560 --> 00:59:07,740 és que ara en lloc de dir, "s'estén Controller" 993 00:59:07,740 --> 00:59:11,870 Vaig a dir, "s'estén Controller_Template" 994 00:59:11,870 --> 00:59:15,890 i ara en comptes de dir, "cos de la resposta és igual a aquest punt de vista," 995 00:59:15,890 --> 00:59:24,110 Vaig a dir, "aquest contingut de la plantilla és -" 996 00:59:24,110 --> 00:59:27,690 i crec - Com poso un signe igual? 997 00:59:27,690 --> 00:59:32,710 M'oblidi. Sí, això vaig pensar. 998 00:59:32,710 --> 00:59:37,710 I ara em vaig posar aquesta variable el contingut sigui igual a la vista. 999 00:59:37,710 --> 00:59:40,960 Jo puc fer el mateix aquí. 1000 00:59:49,620 --> 00:59:57,170 I ara si em refresqui, es pot veure ara aquest autor s'afegeix allà, 1001 00:59:57,170 --> 01:00:00,350 i acaba de fer un post a l'atzar, 1002 01:00:00,350 --> 01:00:06,760 i després, de nou, vostè ha de veure que el dret d'autor és a la part inferior de la pàgina. 1003 01:00:06,760 --> 01:00:10,730 >> Gran. Això és tot el que volia mostrar. 1004 01:00:10,730 --> 01:00:14,970 [Aplaudiments] 1005 01:00:14,970 --> 01:00:18,950 Alguna pregunta? 1006 01:00:18,950 --> 01:00:21,000 [CS50.TV]