1 00:00:00,000 --> 00:00:02,150 >> [Seminario] [Kohana: A Lightweight PHP Framework] 2 00:00:02,150 --> 00:00:04,000 [Liu Brandon] [Harvard University] 3 00:00:04,000 --> 00:00:07,270 [Isto é CS50.] [CS50.TV] 4 00:00:07,270 --> 00:00:09,130 >> Ola a todos. O meu nome é Brandon. 5 00:00:09,130 --> 00:00:11,000 Eu son un Júnior aquí na facultade facendo ciencia da computación, e hoxe imos falar de 6 00:00:11,000 --> 00:00:14,460 Kohana, que é un framework de desenvolvemento web PHP. 7 00:00:14,460 --> 00:00:17,260 Hoxe será un seminario de codificación en directo, 8 00:00:17,260 --> 00:00:21,000 entón eu estou basicamente vai gastar 5-10 minutos explicando o que Kohana é, 9 00:00:21,000 --> 00:00:25,000 e entón eu estou literalmente indo a construír un blog super sinxelo 10 00:00:25,000 --> 00:00:28,570 para vostede aquí literalmente de cero. 11 00:00:28,570 --> 00:00:32,229 Nós imos facer a descarga do código na web da Kohana, 12 00:00:32,229 --> 00:00:35,000 e imos comezar a construír un blog, e espero que vai ser moi instrutivo, 13 00:00:35,000 --> 00:00:37,000 porque vai ver, quizais, quizais eu vou cometer algúns erros, 14 00:00:37,000 --> 00:00:39,000 e verás me recuperar a partir deles, 15 00:00:39,000 --> 00:00:42,040 ou vai ver o meu proceso de pensamento como eu construír a través deste blog, 16 00:00:42,040 --> 00:00:44,000 e mentres tanto, tamén vai familiarizado co propio cadro. 17 00:00:44,000 --> 00:00:48,000 Esperemos que só pode ser un exercicio moi instrutivo. 18 00:00:48,000 --> 00:00:51,370 >> En primeiro lugar, o que é exactamente un framework? 19 00:00:51,370 --> 00:00:54,000 Se está tomando CS50 ata agora, realmente non estou traballando con calquera 20 00:00:54,000 --> 00:00:56,000 Aínda estruturas, ea cousa é esta. 21 00:00:56,000 --> 00:01:00,000 Probablemente xa fixo un desenvolvemento web pset xa, 22 00:01:00,000 --> 00:01:03,000 e digamos que seguir a construír sitios e manter a construción de sitios web. 23 00:01:03,000 --> 00:01:05,000 Vai comezar a notar algunhas cousas. 24 00:01:05,000 --> 00:01:07,000 O primeiro que vai notar é que ten que estar facendo as mesmas cousas 25 00:01:07,000 --> 00:01:09,150 unha e outra vez o tempo, 26 00:01:09,150 --> 00:01:13,000 cousas como a limpeza de datos de entrada do usuario, 27 00:01:13,000 --> 00:01:17,250 cousas como organizar os seus arquivos dunha certa maneira. 28 00:01:17,250 --> 00:01:19,000 A outra cousa que tamén probablemente vai notar é que o seu código 29 00:01:19,000 --> 00:01:21,000 pode comezar a ser moi, moi confuso, 30 00:01:21,000 --> 00:01:24,000 e pode deixar confuso e só ten un tempo moi difícil mantelo, 31 00:01:24,000 --> 00:01:26,000 ou pode comezar a estruturar o seu código e facelo modular 32 00:01:26,000 --> 00:01:28,510 en determinadas formas de facelo máis sostible. 33 00:01:28,510 --> 00:01:31,020 >> Este é o lugar onde frameworks web, basicamente, veu dentro 34 00:01:31,020 --> 00:01:33,680 Estas persoas que construíran unha morea de sitios, segundo eles, 35 00:01:33,680 --> 00:01:35,820 "Non necesitamos renovar este cada vez que construír un sitio web." 36 00:01:35,820 --> 00:01:39,050 "Por que non imos só facer un paquete que fai todas estas cousas para ti 37 00:01:39,050 --> 00:01:41,250 cada vez que quere construír un sitio web? " 38 00:01:41,250 --> 00:01:43,030 E así que cando fai un novo sitio web, 39 00:01:43,030 --> 00:01:45,880 vostede concentrarse só sobre o que exactamente este determinado sitio é sobre. 40 00:01:45,880 --> 00:01:48,630 Non precisa repetir todas as varias configuración 41 00:01:48,630 --> 00:01:53,070 e separación de códigos e código de reescribir 42 00:01:53,070 --> 00:01:56,180 que moitas veces ten que facer cando se está facendo sitios. 43 00:01:56,180 --> 00:01:59,410 A idea é que un cadro permite que escriba un código de nivel superior 44 00:01:59,410 --> 00:02:01,030 sen ter que se preocupar de detalles de nivel inferior. 45 00:02:01,030 --> 00:02:03,670 Un detalle de baixo nivel pode ser algo así como 46 00:02:03,670 --> 00:02:07,250 xestionar a limpeza de datos de entrada do usuario. 47 00:02:07,250 --> 00:02:09,320 Isto é algo que non debe realmente se preocupe. 48 00:02:09,320 --> 00:02:12,370 Debe concentrarse no que a súa distribución web é realmente sobre. 49 00:02:12,370 --> 00:02:14,790 El elimina unha chea de código cliché. 50 00:02:14,790 --> 00:02:16,640 É unha arquitectura para o seu proxecto. 51 00:02:16,640 --> 00:02:18,680 >> O máis popular sería Model-View-Controller, 52 00:02:18,680 --> 00:02:20,380 que eu vou falar en un segundo. 53 00:02:20,380 --> 00:02:22,790 E unha morea de veces, esas estruturas incorporan un conxunto de procedementos, 54 00:02:22,790 --> 00:02:25,750 normas e as mellores prácticas para que use 55 00:02:25,750 --> 00:02:28,190 de xeito que cando adopta o framework web 56 00:02:28,190 --> 00:02:30,050 ten que escribir o código de certa maneira, 57 00:02:30,050 --> 00:02:32,430 e é xeralmente un acordo sobre conxunto de principios 58 00:02:32,430 --> 00:02:34,290 pola comunidade que é xeralmente aceptado para ser 59 00:02:34,290 --> 00:02:36,230 unha boa forma de escribir código. 60 00:02:36,230 --> 00:02:38,260 Non fai o seu código máis sostible, máis útil, 61 00:02:38,260 --> 00:02:40,030 así por diante e así por diante. 62 00:02:40,030 --> 00:02:42,740 E, finalmente, a cousa que quero salientar sobre encadramentos 63 00:02:42,740 --> 00:02:45,980 contra bibliotecas é esa idea de inversión de control, ea cousa é esta. 64 00:02:45,980 --> 00:02:48,430 A diferenza entre unha biblioteca e un cadro é que, cunha biblioteca 65 00:02:48,430 --> 00:02:51,990 aínda está escribindo o programa principal, 66 00:02:51,990 --> 00:02:54,460 e está tipo de chamar a biblioteca 67 00:02:54,460 --> 00:02:56,810 e apelando á biblioteca para facer algo por ti. 68 00:02:56,810 --> 00:02:58,180 A diferenza entre unha biblioteca e un cadro 69 00:02:58,180 --> 00:03:01,620 é que o cadro comeza co control, 70 00:03:01,620 --> 00:03:03,260 e invoca o código, 71 00:03:03,260 --> 00:03:06,190 así que pode pensar niso como - é por iso que se chama un cadro - 72 00:03:06,190 --> 00:03:09,700 a estrutura ofrece este cadro e estrutura para o seu código, 73 00:03:09,700 --> 00:03:11,320 e encher os buratos, 74 00:03:11,320 --> 00:03:13,990 e este quedará máis evidente na segunda 75 00:03:13,990 --> 00:03:16,670 cando me ve comezar a escribir código dentro do contexto do cadro. 76 00:03:16,670 --> 00:03:19,130 Vai ver que eu estou cubrindo as lagoas, 77 00:03:19,130 --> 00:03:22,450 eo cadro é unha especie de control de todas as pezas móbiles, 78 00:03:22,450 --> 00:03:27,420 e eu teño que poñer as pezas nos lugares determinados. 79 00:03:27,420 --> 00:03:29,360 >> Hoxe imos falar Kohana, 80 00:03:29,360 --> 00:03:31,610 que é un dos moitos frameworks PHP. 81 00:03:31,610 --> 00:03:34,550 Existen frameworks web, e hai aqueles en practicamente todas as linguas único, 82 00:03:34,550 --> 00:03:38,330 e eu estou pegando Kohana Kohana porque é indiscutibelmente 83 00:03:38,330 --> 00:03:43,250 e xeralmente recoñecido como o marco máis fácil PHP para incorporarse. 84 00:03:43,250 --> 00:03:45,940 É o máis lixeiro. 85 00:03:45,940 --> 00:03:48,470 Hai outros aí fóra, que veñen con moitos, moitos máis recursos, 86 00:03:48,470 --> 00:03:51,590 pero eles tenden a ser máis difíciles de coller. 87 00:03:51,590 --> 00:03:54,920 E, finalmente, Kohana utiliza a arquitectura MVC. 88 00:03:54,920 --> 00:03:57,780 É leve o suficiente para que pode literalmente construír un proxecto 89 00:03:57,780 --> 00:03:59,620 aquí ben en fronte dos seus ollos, e pode moi ben 90 00:03:59,620 --> 00:04:02,780 seguir con bastante facilidade. 91 00:04:02,780 --> 00:04:04,420 >> ¿Que é a arquitectura MVC? 92 00:04:04,420 --> 00:04:06,540 Queda ao Model-View-Controller, 93 00:04:06,540 --> 00:04:09,560 e, se cadra, se pensar sobre o código que escribiu ata agora 94 00:04:09,560 --> 00:04:11,280 para algúns dos seus Serie de exercicios de desenvolvemento web 95 00:04:11,280 --> 00:04:14,710 pode ser capaz de ver un pouco diso, pero normalmente cando comezar a escribir 96 00:04:14,710 --> 00:04:16,500 unha aplicación web máis complexas, 97 00:04:16,500 --> 00:04:21,209 a división entre estes tres segmentos faise cada vez máis evidente. 98 00:04:21,209 --> 00:04:26,740 Engada o MVC aquí especie de como unha pila, 99 00:04:26,740 --> 00:04:29,920 e moitas veces vai escoitar a xente falar sobre pilas en desenvolvemento web, 100 00:04:29,920 --> 00:04:33,760 e dicir, para ilustrar a idea de que 101 00:04:33,760 --> 00:04:37,510 cada capa, cada compoñente realmente intenta comunicarse só 102 00:04:37,510 --> 00:04:40,750 entre dous outros compoñentes. 103 00:04:40,750 --> 00:04:44,550 Alguén accede a súa web como un cliente ou un navegador. 104 00:04:44,550 --> 00:04:48,870 Interactúan co seu programa a través do código vista. 105 00:04:48,870 --> 00:04:50,500 O código de visión interactúa co controlador. 106 00:04:50,500 --> 00:04:52,400 O controlador interactúa co modelo, 107 00:04:52,400 --> 00:04:55,090 e que o modelo interactúa coa base de datos de SQL. 108 00:04:55,090 --> 00:04:59,670 E non hai ningún salto entre se escribir o código correctamente. 109 00:04:59,670 --> 00:05:01,670 >> O que estas cousas fan? 110 00:05:01,670 --> 00:05:06,020 O modelo é esencialmente a parte do código que trata sobre os seus datos. 111 00:05:06,020 --> 00:05:09,100 Todo o que trata sobre o seu banco de datos, cos obxectos que almacena, 112 00:05:09,100 --> 00:05:11,280 ou recuperar os obxectos na base de datos, 113 00:05:11,280 --> 00:05:13,450 que está todo tratado polo modelo. 114 00:05:13,450 --> 00:05:15,290 Quizais ten obxectos no seu banco de datos. 115 00:05:15,290 --> 00:05:17,700 Nós imos crear un modelo que teña a ver as mensaxes, 116 00:05:17,700 --> 00:05:19,760 así un post pode ter algúns atributos para iso. 117 00:05:19,760 --> 00:05:23,900 Pode ter funcións arredor de almacenar esas mensaxes ou recuperar mensaxes 118 00:05:23,900 --> 00:05:26,270 ou filtrar as anotacións e así por diante e así por diante, 119 00:05:26,270 --> 00:05:28,880 e iso é todo o código que é tratado polo modelo. 120 00:05:28,880 --> 00:05:31,780 O controlador é unha especie de lóxica da aplicación, 121 00:05:31,780 --> 00:05:37,910 e unha morea de cousas distintas poden ir na lóxica da aplicación. 122 00:05:37,910 --> 00:05:39,790 Se está falando con unha API distinto, 123 00:05:39,790 --> 00:05:42,310 que poden estar onde está lidando coa lóxica da aplicación. 124 00:05:42,310 --> 00:05:47,990 Se estás a ter de traer datos de varios modelos diferentes 125 00:05:47,990 --> 00:05:51,540 e teñen a combina-los de algunha maneira, que moitas veces pode ser tratada polo controlador. 126 00:05:51,540 --> 00:05:53,820 Por exemplo, en Facebook, se amigo de alguén, 127 00:05:53,820 --> 00:05:58,500 entón quizais este acto de establecer esa relación 128 00:05:58,500 --> 00:06:00,490 se pode facer polo controlador. 129 00:06:00,490 --> 00:06:04,350 >> E, finalmente, a visión é o código que está xerando o que realmente ve. 130 00:06:04,350 --> 00:06:07,410 Moitas veces penso nas Serie de exercicios CS50 131 00:06:07,410 --> 00:06:10,050 realmente non fomentar vostedes a separar estas tres cousas. 132 00:06:10,050 --> 00:06:12,430 Probablemente vai ter este arquivo grande, longa, onde na parte superior 133 00:06:12,430 --> 00:06:15,130 fai algunha pesquisa e quizais facer un procesamento 134 00:06:15,130 --> 00:06:17,020 sobre os datos obtidos a partir da base de datos, 135 00:06:17,020 --> 00:06:19,370 e entón tes todo o seu HTML na parte inferior. 136 00:06:19,370 --> 00:06:22,840 E pode considerar que como crear máis e máis páxinas 137 00:06:22,840 --> 00:06:25,790 que vai ter algún código de repetición, e tamén, 138 00:06:25,790 --> 00:06:29,600 a cousa é o arquivo queda moi grande e longa 139 00:06:29,600 --> 00:06:32,370 e faise difícil de xestionar. 140 00:06:32,370 --> 00:06:34,500 A razón pola que MVC é tan ben visto 141 00:06:34,500 --> 00:06:36,120 é por un número de razóns. 142 00:06:36,120 --> 00:06:38,110 O primeiro é unha cousa chamada separación de intereses 143 00:06:38,110 --> 00:06:40,370 que é a idea de que cando ten - 144 00:06:40,370 --> 00:06:43,520 idealmente unha peza de código que facer unha cousa e facelo moi ben, 145 00:06:43,520 --> 00:06:47,210 e non debe combinar pezas de código que fan cousas distintas. 146 00:06:47,210 --> 00:06:49,230 Por exemplo, ver o código e código do modelo, 147 00:06:49,230 --> 00:06:51,040 realmente non teñen que ser relacionados. 148 00:06:51,040 --> 00:06:53,290 Non ten que ser nos mesmos arquivos, entón, cando poida, para separa-los 149 00:06:53,290 --> 00:06:55,300 polo que é fácil de manter. 150 00:06:55,300 --> 00:06:57,130 >> A outra cousa é a reutilización de código. 151 00:06:57,130 --> 00:06:59,770 Podes atopar-se escribir a mesma procura de SQL ou facer 152 00:06:59,770 --> 00:07:03,060 consultas semellantes que poden ser abstraídas nunha función, 153 00:07:03,060 --> 00:07:05,440 e esa é a idea detrás modelos e controladores, 154 00:07:05,440 --> 00:07:09,690 telo nunha función separada que pode ser reutilizado en diferentes lugares no seu proxecto. 155 00:07:09,690 --> 00:07:12,420 E, finalmente, que está ligada a secado do seu código, 156 00:07:12,420 --> 00:07:14,700 ou non repetirse, non repetirse. 157 00:07:14,700 --> 00:07:18,090 Iso é moi comprensible en desenvolvemento. 158 00:07:18,090 --> 00:07:20,110 Sempre que poida, non quere repetir a si mesmo, porque se repetir-se, 159 00:07:20,760 --> 00:07:23,400  é moito máis caro para manter. 160 00:07:23,400 --> 00:07:26,040 Se queres cambiar algo, ten que muda-lo en todos os lugares, 161 00:07:26,040 --> 00:07:30,230 e que leva a erros, e é horrible. 162 00:07:30,230 --> 00:07:32,010 >> Todo ben. 163 00:07:32,010 --> 00:07:37,270 Calquera dúbida, ata agora uns Kohana, ao final? 164 00:07:37,270 --> 00:07:39,200 Grande. 165 00:07:39,200 --> 00:07:42,300 Agora imos mergullo na sesión de codificación en directo, 166 00:07:42,300 --> 00:07:48,050 e espero que todo corra ben. 167 00:07:57,200 --> 00:08:00,050 Vou construír basicamente esta web 168 00:08:00,050 --> 00:08:03,910 en un dos meus servidores remotos, e de que xeito podedes tamén 169 00:08:03,910 --> 00:08:06,310 ver o sitio web e acceder ao sitio, 170 00:08:06,310 --> 00:08:10,990 e tamén o ambiente é mellor que o meu configurar máquina remota, 171 00:08:10,990 --> 00:08:14,580 porque está a empregar Linux no canto de VOS X. 172 00:08:14,580 --> 00:08:16,260 Estamos literalmente vai comezar. 173 00:08:16,260 --> 00:08:18,110 KohanaFramework.org. 174 00:08:18,110 --> 00:08:21,350 Eu estou indo a baixar o código do sitio web. 175 00:08:21,350 --> 00:08:24,610 Vou copiar o enderezo da ligazón, 176 00:08:24,610 --> 00:08:29,770 ir ao meu servidor, baixalo, 177 00:08:29,770 --> 00:08:33,000 e eu estou indo a extraelo lo. 178 00:08:38,330 --> 00:08:45,710 >> [Estudante] O que é o máis grande que pode facer o texto? 179 00:08:45,710 --> 00:08:47,330 [Brandon Liu] Está mellor? 180 00:08:47,330 --> 00:08:50,070 [Estudante] É iso factible? >> [Brandon Liu] Si, iso é bo. 181 00:08:50,070 --> 00:08:54,500 Eu baixei un arquivo ZIP e abriu o zíper que nun directorio chamado Kohana, 182 00:08:54,500 --> 00:08:58,820 e nós imos cambiar o nome que CS50-Kohana, 183 00:08:58,820 --> 00:09:01,140 e imos alí dentro 184 00:09:01,140 --> 00:09:03,610 Incrible. 185 00:09:03,610 --> 00:09:06,870 Aquí vese unha morea de arquivos diferentes. 186 00:09:06,870 --> 00:09:10,140 A maioría de vós pode ignorar - estamos non vai pasar por todos os arquivos que están aquí 187 00:09:10,140 --> 00:09:13,130 por mor das nosas limitacións de tempo, 188 00:09:13,130 --> 00:09:16,310 pero normalmente cando se instala o Kohana, o primeiro que fai 189 00:09:16,310 --> 00:09:23,210 é que vaia ao directorio, 190 00:09:23,210 --> 00:09:26,050 e vai basicamente facer algunhas probas ambientais e outros adornos 191 00:09:26,050 --> 00:09:28,640 asegurarse de seu ambiente está configurado correctamente para realizar Kohana 192 00:09:28,640 --> 00:09:31,450 e asegúrese de que está todo ben. 193 00:09:31,450 --> 00:09:35,510 Podes ver que a maioría das cousas pasaron, pero normalmente sempre executar para este problema 1 194 00:09:35,510 --> 00:09:38,180 onde el se queixa de que algún directorio non pode escribir nel, 195 00:09:38,180 --> 00:09:40,410 e iso é debido a algúns permisos. 196 00:09:40,410 --> 00:09:43,080 Eu non sei o que vós aprenderon sobre permisos de arquivo en CS50, 197 00:09:43,080 --> 00:09:47,920 pero se fai de desenvolvemento web, vai se atopou con este problema moito. 198 00:09:47,920 --> 00:09:58,340 Eu estou indo para facelo escribir 199 00:09:58,340 --> 00:10:03,390 e eu creo que eu tamén teño que - alí imos nós. 200 00:10:03,390 --> 00:10:07,040 >> Ok, entón agora pode ver todo pasou, 201 00:10:07,040 --> 00:10:10,000 e agora vai dicir para cambiar o nome do ficheiro install.php. 202 00:10:10,000 --> 00:10:15,630 Vou mover o ficheiro install.php para installed.php, 203 00:10:15,630 --> 00:10:19,610 e agora, se eu actualizar, 204 00:10:19,610 --> 00:10:22,810 dáme un erro, e é aí onde a depuración vén dentro 205 00:10:22,810 --> 00:10:25,610 Este é o lugar onde se pode ver o que está realmente vai ocorrer. 206 00:10:25,610 --> 00:10:28,460 A cousa é, por defecto, Kohana asume que 207 00:10:28,460 --> 00:10:31,480 seu proxecto está no directorio raíz do seu dominio, 208 00:10:31,480 --> 00:10:35,920 polo que está esperando por ti para ser a demo.brandonkliu.com. 209 00:10:35,920 --> 00:10:37,540 Debemos dicir que é realmente en un subcartafol. 210 00:10:37,540 --> 00:10:39,820 Está nunha subcarpeta chamada CS50 Kohana. 211 00:10:39,820 --> 00:10:42,640 A cousa é, está interpretando mal CS50-Kohana 212 00:10:42,640 --> 00:10:45,680 como calquera outra cousa, que eu vou explicar a vostede en un segundo. 213 00:10:45,680 --> 00:10:49,910 Pero debo dicirlle que é algo que é de esperar. 214 00:10:49,910 --> 00:10:53,700 O que imos facer é que nós estamos indo a ir a esta carpeta chamada bootstrap.php, 215 00:10:53,700 --> 00:10:59,260 que é o cartafol de configuración, onde unha chea de cousas distintas son creados. 216 00:10:59,260 --> 00:11:01,570 Abro isto. 217 00:11:01,570 --> 00:11:09,790 Entón, talvez, unha das primeiras cousas que eu vou facer é cambiar a zona horaria. 218 00:11:09,790 --> 00:11:13,910 >> E entón imos ver. 219 00:11:13,910 --> 00:11:15,180 Aha! Ben aquí. 220 00:11:15,180 --> 00:11:18,690 Hai un grupo de proverbios diferentes de configuración aquí, 221 00:11:18,690 --> 00:11:21,700 pero o que eu estou buscando é esa cousa chamada URL base, 222 00:11:21,700 --> 00:11:24,570 e, por defecto, eu entendo establecido para Kohana, 223 00:11:24,570 --> 00:11:29,020 pero eu vou cambiar isto para CS50-Kohana, 224 00:11:29,020 --> 00:11:32,880 e eu creo que debe resolve-lo. 225 00:11:32,880 --> 00:11:34,150 Si, gran. 226 00:11:34,150 --> 00:11:39,530 Por defecto, ao ver que está a traballar, el di: "Ola Mundo". 227 00:11:39,530 --> 00:11:42,930 Onde é que isto veu? Como chegamos a Ola Mundo? 228 00:11:42,930 --> 00:11:47,640 Onde exactamente é o código que realmente escribiu isto? 229 00:11:47,640 --> 00:11:50,240 Para entender iso, vou presentar este concepto chamado de enrutamento. 230 00:11:50,240 --> 00:11:52,590 Practicamente todos os frameworks web ten o concepto chamado de enrutamento, 231 00:11:52,590 --> 00:11:57,230 cal é a parte do programa que ha mapear unha determinada URL 232 00:11:57,230 --> 00:12:01,550 a un determinado anaco de código dentro do seu cadro. 233 00:12:01,550 --> 00:12:07,510 Por exemplo, se tes algunha URL e ir a algún URL como foo.com / blog / all 234 00:12:07,510 --> 00:12:11,170 a continuación, o que o cadro vai facer - ou polo menos o que Kohana vai facer - 235 00:12:11,170 --> 00:12:15,540 é o que vai atopar unha clase chamada controlador de blog, 236 00:12:15,540 --> 00:12:18,720 e está indo para executar a función chamada acción todos. 237 00:12:18,720 --> 00:12:20,160 Sei que estou a falar de clase e funcións, 238 00:12:20,160 --> 00:12:23,860 e sei que vós non cobren clases e funcións 239 00:12:23,860 --> 00:12:26,470 en CS50 aínda, pero, polo momento, 240 00:12:26,470 --> 00:12:29,800 pode pensar en clases como só un grupo de funcións, 241 00:12:29,800 --> 00:12:32,900 unha forma de agrupar as funcións en conxunto. 242 00:12:32,900 --> 00:12:37,690 Isto é realmente todo o que precisa saber. 243 00:12:37,690 --> 00:12:43,120 >> Agora, se miramos para a nosa estrutura de carpetas, 244 00:12:43,120 --> 00:12:47,110 dentro do cartafol da aplicación hai outra carpeta chamada clases 245 00:12:47,110 --> 00:12:49,200 e as outras carpetas son chamadas de Controladoria e Modelo. 246 00:12:49,200 --> 00:12:52,530 Se ollar dentro do cartafol Controller, 247 00:12:52,530 --> 00:12:56,330 vemos que hai un ficheiro chamado Benvido, 248 00:12:56,330 --> 00:13:00,370 e pode ver aquí é unha clase chamada Controlador Benvido, 249 00:13:00,370 --> 00:13:02,340 e hai unha función chamada Índice Acción, 250 00:13:02,340 --> 00:13:06,360 eo que fai é que define o corpo da súa resposta a Ola Mundo. 251 00:13:06,360 --> 00:13:08,730 Isto é onde o código está escrito. 252 00:13:08,730 --> 00:13:11,610 A outra cuestión é, ben, eu non ir 253 00:13:11,610 --> 00:13:13,680 blah, blah, blah, / welcome / index. 254 00:13:13,680 --> 00:13:16,250 Como é que vin parar aquí? 255 00:13:16,250 --> 00:13:20,410 Ben, iso é simplemente porque 256 00:13:20,410 --> 00:13:22,410 aquí no fondo do noso arquivo de inicialización 257 00:13:22,410 --> 00:13:24,550 onde montar nosas rutas 258 00:13:24,550 --> 00:13:26,570 podes ver que definir algúns patróns para ti. 259 00:13:26,570 --> 00:13:28,990 O controlador por defecto é benvido. A acción por defecto é Index. 260 00:13:28,990 --> 00:13:31,600 É por iso que cando poñemos nada alí el automaticamente se ao controlador de Benvido 261 00:13:31,600 --> 00:13:33,940 ea Acción índice. 262 00:13:33,940 --> 00:13:37,460 >> Todo ten sentido ata agora? 263 00:13:37,460 --> 00:13:40,850 Agora, pode facer máis que ir ao Controlador 264 00:13:40,850 --> 00:13:43,670 e unha acción específica. 265 00:13:43,670 --> 00:13:48,480 Tamén pode pasar parámetros para o controlador. 266 00:13:48,480 --> 00:13:56,390 Só como exemplo, 267 00:13:56,390 --> 00:14:04,070 Eu estou indo a engadir outra acción para este controlador para lle amosar. 268 00:14:04,070 --> 00:14:09,130 Imos chamar esta acción Echo, porque lle vai dicir o que dá, 269 00:14:09,130 --> 00:14:17,510 e entón eu estou basicamente vai pegar 270 00:14:17,510 --> 00:14:20,960 un parámetro que será enviada a través de min para o programa de enrutamento, 271 00:14:20,960 --> 00:14:24,440 e como podes ver aquí, 272 00:14:24,440 --> 00:14:28,440 esta liña ben aquí, pode ver que 273 00:14:28,440 --> 00:14:31,270 iso basicamente significa que ten control, e ten a /, 274 00:14:31,270 --> 00:14:33,480 e ten acción, e ten máis /, 275 00:14:33,480 --> 00:14:39,140 e que será parámetros, e por que temos este nome ID 276 00:14:39,140 --> 00:14:42,450 dentro corchetes, o que significa que estamos nomeando este parámetro ID. 277 00:14:42,450 --> 00:14:45,490 Máis tarde, o meu código do controlador, se eu quere incorporarse un soto de que o parámetro, 278 00:14:45,490 --> 00:14:51,790 Podo usar o código que escribín, atopar o parámetro nomeado ID. 279 00:14:51,790 --> 00:14:59,290 Iso é o que eu fixen aquí, e eu vou volver e dicir: 280 00:14:59,290 --> 00:15:07,090 "Vostede dixo" iso. 281 00:15:07,090 --> 00:15:10,760 E agora, se eu for a nosa web, 282 00:15:10,760 --> 00:15:19,550 Vou para cs50-kohana/welcome/echo/Helloooo-- 283 00:15:19,550 --> 00:15:21,420 Oh, iso é certo. 284 00:15:21,420 --> 00:15:23,930 Existe un paso que deixei de fóra. 285 00:15:23,930 --> 00:15:27,020 Iso forma parte da idea de codificación en directo. 286 00:15:27,020 --> 00:15:36,100 >> Aquí está unha cousa. Imos ver. 287 00:15:36,100 --> 00:15:38,870 Entón, normalmente, por defecto, con unha morea desas aplicacións web 288 00:15:38,870 --> 00:15:42,820 ten que incluír esa cousa index.php na súa URL, 289 00:15:42,820 --> 00:15:46,410 porque a idea é index.php é unha especie de punto de entrada 290 00:15:46,410 --> 00:15:48,250 da súa aplicación, aínda que por suposto, 291 00:15:48,250 --> 00:15:50,110 que é unha especie de chat ter. 292 00:15:50,110 --> 00:15:53,790 Non quere ter index.php aparecer na súa URL, 293 00:15:53,790 --> 00:15:56,080 e practicamente todos os framework web fóra da caixa 294 00:15:56,080 --> 00:15:58,440 ten este problema index.php, 295 00:15:58,440 --> 00:16:03,370 e entón ten que tomar algunhas medidas para ser capaz de eliminar iso. 296 00:16:03,370 --> 00:16:07,540 E así, neste caso, 297 00:16:07,540 --> 00:16:11,450 o que nós imos facer é que imos empregar un ficheiro chamado. htaccess 298 00:16:11,450 --> 00:16:13,900 e iso é algo que é específico para o servidor web Apache, 299 00:16:13,900 --> 00:16:16,290 e pode facer cousas como reescrita de URL 300 00:16:16,290 --> 00:16:19,350 e redireccionar URLs e así por diante e así por diante, 301 00:16:19,350 --> 00:16:24,280 e Kohana é bo o suficiente para proporcionar un arquivo htaccess modelo. que podemos utilizar. 302 00:16:24,280 --> 00:16:28,300 >> Como verás, hai un ficheiro alí chamado example.htaccess, 303 00:16:28,300 --> 00:16:33,410 e imos copiar tanto para. htaccess. 304 00:16:33,410 --> 00:16:36,950 Vou abrir este e editalo, 305 00:16:36,950 --> 00:16:40,840 e, basicamente, fai unha morea de cousas distintas. 306 00:16:40,840 --> 00:16:45,320 A liña de clave que pode querer ollar é ben aquí. 307 00:16:45,320 --> 00:16:49,840 A idea é que esta establece unha regra que di que, 308 00:16:49,840 --> 00:16:56,400 "Todo ben, todo o que escribe, preceder index.php para iso." 309 00:16:56,400 --> 00:16:58,710 Podes ver iso. 310 00:16:58,710 --> 00:17:00,370 A. * Significa nada, corresponde a nada, 311 00:17:00,370 --> 00:17:03,300 e logo, a segunda parte é index.php / $ 0, 312 00:17:03,300 --> 00:17:07,410 e US $ 0 refírese a todo o que foi combinado previamente. 313 00:17:07,410 --> 00:17:09,500 Será que isto ten sentido? 314 00:17:09,500 --> 00:17:12,190 Pero a cousa realmente fundamental quero cambiar é cambiar esta base de reescrita, 315 00:17:12,190 --> 00:17:14,300 que é a base de URL. 316 00:17:14,300 --> 00:17:17,780 É unha especie de toma onde está a traballar. 317 00:17:17,780 --> 00:17:22,560 Eu estou indo a engadir CS50 Kohana para que, 318 00:17:22,560 --> 00:17:26,530 e de que xeito, agora se eu eliminar o index.php, 319 00:17:26,530 --> 00:17:32,110 debe funcionar, e eu estou indo a engadir algúns números 320 00:17:32,110 --> 00:17:36,380 para amosar que realmente non funcionou. 321 00:17:36,380 --> 00:17:38,130 Parece bo. 322 00:17:38,130 --> 00:17:40,260 >> Todas as preguntas ata agora? 323 00:17:40,260 --> 00:17:42,300 [Estudante] Como foi saber para facer o 123? 324 00:17:42,300 --> 00:17:44,120 Isto é un argumento? 325 00:17:44,120 --> 00:17:46,560 Exactamente. Podes pensar niso como un argumento. 326 00:17:46,560 --> 00:17:52,410 Pero o máis estraño, con todo, é que o xeito no que o fai Kohana 327 00:17:52,410 --> 00:17:54,910 é que non fan iso exactamente como un argumento. 328 00:17:54,910 --> 00:17:56,930 Ten que agarrá-lo así. 329 00:17:56,930 --> 00:18:01,030 Ten que incorporarse o obxecto da solicitude e solicitar o parámetro que se chama ID, 330 00:18:01,030 --> 00:18:03,240 e que o nome vén do ID que ficheiro de arranque 331 00:18:03,240 --> 00:18:06,990 que eu mostre antes, eo nome do ID era naqueles corchetes, 332 00:18:06,990 --> 00:18:11,580 e é así que incorporarse eses parámetros. 333 00:18:11,580 --> 00:18:14,010 Incrible. 334 00:18:14,010 --> 00:18:17,550 Algunha pregunta? 335 00:18:17,550 --> 00:18:20,500 Como dixen, os controladores, eles lidan coa lóxica da aplicación, 336 00:18:20,500 --> 00:18:22,980 de xeito que é un caso en que se pode ver iso é - 337 00:18:22,980 --> 00:18:24,830 é moi básico, pero aínda é a lóxica da aplicación, 338 00:18:24,830 --> 00:18:27,980 a idea de coller o parámetro e crear unha nova cadea 339 00:18:27,980 --> 00:18:31,920 que di: "Vostede dixo que bla," e despois cuspindo que volta para ti. 340 00:18:31,920 --> 00:18:34,030 E, xeralmente, o que fai é crear controladores diferentes. 341 00:18:34,030 --> 00:18:36,450 Se crea controladores separados para diferentes partes do seu sitio. 342 00:18:36,450 --> 00:18:38,160 >> Hoxe imos facer un sitio moi sinxelo, 343 00:18:38,160 --> 00:18:40,420 e iso vai ser un blog moi básico. 344 00:18:40,420 --> 00:18:43,780 Nós imos facer un novo controlador só para os cargos en un blog. 345 00:18:43,780 --> 00:18:47,060 Pero, entón, se eu fose para engadir tamén os comentarios ao post do blog, 346 00:18:47,060 --> 00:18:50,140 entón eu probablemente quere facer un novo controlador para estes comentarios. 347 00:18:50,140 --> 00:18:53,380 Se eu quixese engadir usuarios, eu probablemente quere engadir un novo controlador para os usuarios, 348 00:18:53,380 --> 00:18:57,000 e, en xeral, a idea é que cada vez que tes un novo modelo, 349 00:18:57,000 --> 00:18:59,630 un novo obxecto de datos que está lidando, 350 00:18:59,630 --> 00:19:02,970 ten un único controlador para o obxecto de datos. 351 00:19:02,970 --> 00:19:04,370 Hoxe nós só imos traballar cun obxecto de datos, 352 00:19:04,370 --> 00:19:06,250 e que será mensaxes, 353 00:19:06,250 --> 00:19:08,710 e tamén pode pensar en obxectos de datos como correspondendo ás táboas. 354 00:19:08,710 --> 00:19:12,160 Xeralmente cada táboa corresponde a un tipo de obxecto de datos, 355 00:19:12,160 --> 00:19:15,160 así a táboa de pos terá un modelo de post, 356 00:19:15,160 --> 00:19:18,230 que terá un controlador de post correspondente a este, 357 00:19:18,230 --> 00:19:22,190 e mesmo para comentarios, a mesma para os usuarios, e así por diante e así por diante. 358 00:19:22,190 --> 00:19:24,070 E iso é unha regra xeral. 359 00:19:24,070 --> 00:19:27,460 Non van haber casos especiais onde pode ser distinta da que, 360 00:19:27,460 --> 00:19:29,300 pero o 90% do tempo é o que vai estar facendo, 361 00:19:29,300 --> 00:19:32,810 e eu vou amosar-lle que é o que imos facer hoxe. 362 00:19:32,810 --> 00:19:35,490 1 máis concepto, antes de mergullar ao seu código, 363 00:19:35,490 --> 00:19:37,710 esa idea de mapeamento obxecto relacional. 364 00:19:37,710 --> 00:19:41,200 >> Vós xa fixeron un desenvolvemento pset web, 365 00:19:41,200 --> 00:19:43,820 e viu que faga unha consulta SQL, 366 00:19:43,820 --> 00:19:46,510 e todo o que el retorna a vostede son liñas. 367 00:19:46,510 --> 00:19:50,040 Vostede está con esas liñas, e indexa-los por algún nome, 368 00:19:50,040 --> 00:19:55,480 o nome da columna e da táboa, 369 00:19:55,480 --> 00:19:57,630 e é así que se traballa con el, 370 00:19:57,630 --> 00:19:59,290 e pode ser un pouco máis complicado. 371 00:19:59,290 --> 00:20:01,810 Pero ademais, se ten relacións dentro do seu banco de datos, 372 00:20:01,810 --> 00:20:05,280 como, por exemplo, se eu tivera comentarios e artigos, 373 00:20:05,280 --> 00:20:11,240 entón quizais eu queira incorporarse o post pai dun comentario. 374 00:20:11,240 --> 00:20:14,350 Se eu usar só liñas en SQL, entón todo o que podo chegar é o ID 375 00:20:14,350 --> 00:20:19,310 do post pai e non o propio post real. 376 00:20:19,310 --> 00:20:21,680 Pero cando estamos a codificación, o que nós realmente queremos é realmente coller 377 00:20:21,680 --> 00:20:23,550  o pai poñer-se algunhas veces. 378 00:20:23,550 --> 00:20:25,730 O mapeamento obxecto relacional fai é 379 00:20:25,730 --> 00:20:29,480 leva os resultados da consulta de base de datos 380 00:20:29,480 --> 00:20:32,420 e poñelas obxectos para ti, que son moito máis agradable para traballar con 381 00:20:32,420 --> 00:20:34,770 de matrices simples e liñas. 382 00:20:34,770 --> 00:20:37,550 >> Por exemplo, agora, cando ten un comentario, se cadra, 383 00:20:37,550 --> 00:20:40,900 e quero coller o seu posto pai, 384 00:20:40,900 --> 00:20:43,440 e eu quizais comentar post frecha, 385 00:20:43,440 --> 00:20:45,230 a continuación, el vai realmente me dar o obxecto post 386 00:20:45,230 --> 00:20:47,940 correspondente ó cargo de pai real, e non só algúns ID, 387 00:20:47,940 --> 00:20:52,210 que eu tería doutra forma de usar e facer outra consulta SQL para incorporarse o post, 388 00:20:52,210 --> 00:20:57,430 que é pesado e innecesario. 389 00:20:57,430 --> 00:21:01,840 E ademais, mapeando todas estas liñas de datos en obxectos, 390 00:21:01,840 --> 00:21:03,760 Tamén pode engadir máis funcións aos obxectos, 391 00:21:03,760 --> 00:21:09,700 así, por exemplo, eu falei sobre como as clases son esencialmente grupos de funcións. 392 00:21:09,700 --> 00:21:11,620 Pode pensar así. 393 00:21:11,620 --> 00:21:15,290 Por exemplo, é posible que teña ese obxecto post, 394 00:21:15,290 --> 00:21:17,830 e quizais me gustaría ter algún tipo de función conectado a el 395 00:21:17,830 --> 00:21:20,300 que basicamente dime que foi recentemente publicou? 396 00:21:20,300 --> 00:21:23,570 Foi publicado na última semana, verdadeiro ou falso? 397 00:21:23,570 --> 00:21:27,320 E esa é unha función que eu poida achegar o obxecto que, 398 00:21:27,320 --> 00:21:31,300 e é moi conveniente para telo no mesmo lugar, 399 00:21:31,300 --> 00:21:33,820 e hai unha serie de funcións distintas que pode crear 400 00:21:33,820 --> 00:21:37,990 para estes obxectos, e é moi bo para ser capaz de anexo-lo a unha clase, 401 00:21:37,990 --> 00:21:41,700 a un obxecto, mentres que, se só tiña liñas que veñen de base de datos, 402 00:21:41,700 --> 00:21:43,790 entón realmente non pode achegar calquera función para iso. 403 00:21:43,790 --> 00:21:47,850 É, literalmente, só datos. 404 00:21:47,850 --> 00:21:50,550 Calquera dúbida sobre iso en todo? 405 00:21:50,550 --> 00:21:52,710 ORMs son o desenvolvemento web moi común, 406 00:21:52,710 --> 00:21:56,330 e hai un gran número de diferentes tipos de ORMs, 407 00:21:56,330 --> 00:21:58,450 Kohana e ten o seu propio ORM. 408 00:21:58,450 --> 00:22:05,050 É moi básico, pero vai ter un gostinho do que parece. 409 00:22:05,050 --> 00:22:08,780 >> Imos crear un modelo para os nosos artigos, 410 00:22:08,780 --> 00:22:12,350 eo primeiro que obviamente que facer é crear unha táboa real 411 00:22:12,350 --> 00:22:16,680 dentro do noso banco de datos para almacenar os nosos datos, en realidade, a eses lugares. 412 00:22:16,680 --> 00:22:19,260 O primeiro que vou facer é ir ao phpMyAdmin. 413 00:22:19,260 --> 00:22:21,410 Vós xa usado phpMyAdmin antes? 414 00:22:21,410 --> 00:22:23,400 Ok, impresionante, entón vós xa saben o que é, 415 00:22:23,400 --> 00:22:32,200 e eu estou indo a crear unha nova táboa chamada Kohana Mensaxes, 416 00:22:32,200 --> 00:22:37,820 e iso vai ser moi sinxelo. 417 00:22:37,820 --> 00:22:40,190 Vou facer o login para atrás dentro 418 00:23:02,620 --> 00:23:04,640 Todo o que nós imos facer hoxe é ter un autor e un corpo, 419 00:23:04,640 --> 00:23:11,930 só mantela simple. 420 00:23:11,930 --> 00:23:15,620 Eu estou indo a crear esa táboa, 421 00:23:15,620 --> 00:23:19,620 e agora só temos unha táboa representando nosos artigos 422 00:23:19,620 --> 00:23:23,370 con 2 campos para o noso autor e noso corpo. 423 00:23:23,370 --> 00:23:26,290 A outra cousa que eu vou facer agora é 424 00:23:26,290 --> 00:23:29,820 configurar miña aplicación web para que saiba como se conectar á base de datos, 425 00:23:29,820 --> 00:23:31,950 e este, unha vez máis, é algo que vai ter que facer todas as aplicacións web. 426 00:23:31,950 --> 00:23:34,790 Ten que dicir a el o nome de usuario eo contrasinal 427 00:23:34,790 --> 00:23:36,990 e nome da base de datos e así por diante e así por diante 428 00:23:36,990 --> 00:23:40,000 para descubrir como realmente conectarse ao seu banco de datos. 429 00:23:40,000 --> 00:23:58,710 >> En Kohana temos algo chamado un módulo de base de datos, 430 00:23:58,710 --> 00:24:02,690 e no cartafol de configuración temos esta carpeta chamada base de datos, 431 00:24:02,690 --> 00:24:07,330 e como se pode ver, hai unha morea de opcións que ten que definir aquí 432 00:24:07,330 --> 00:24:09,860 para dicir o que é o nome de usuario eo contrasinal 433 00:24:09,860 --> 00:24:13,110 para a base de datos para que eu poida realmente conectarse a el. 434 00:24:13,110 --> 00:24:15,010 E desde que eu non quero que vostedes realmente saben 435 00:24:15,010 --> 00:24:17,190 nome de usuario e contrasinal do meu banco de datos, 436 00:24:17,190 --> 00:24:23,840 Eu teño un arquivo onde xa definir todo, e eu vou copiar e pegalo sobre. 437 00:24:33,080 --> 00:24:36,870 Incrible. 438 00:24:36,870 --> 00:24:39,880 Okay. Creo que esa é toda a configuración que eu teño que facer, 439 00:24:39,880 --> 00:24:41,070 pero imos ver. 440 00:24:41,070 --> 00:24:43,720 Seguiremos a traballar nel, e se algo falla, 441 00:24:43,720 --> 00:24:47,490 entón nós imos resolve-lo. 442 00:24:47,490 --> 00:24:51,830 Agora o que eu vou facer é que eu vou crear un novo controlador. 443 00:24:51,830 --> 00:24:53,190 Ou, en realidade, me desculpe. 444 00:24:53,190 --> 00:24:55,080 Primeiro eu teño que crear un novo modelo. 445 00:24:55,080 --> 00:25:01,620 Vou crear un novo modelo chamado Post.php, 446 00:25:01,620 --> 00:25:12,440 eo que nós imos facer é que imos chamalo de clase Model_Post. 447 00:25:12,440 --> 00:25:15,390 Obter un destaque de sintaxe en, 448 00:25:15,390 --> 00:25:19,750 e así, cando eu digo, "esténdese ORM", que é basicamente 449 00:25:19,750 --> 00:25:21,210 algo máis de programación orientada a obxectos, 450 00:25:21,210 --> 00:25:23,340 que, por desgraza, vostedes non aprenderon en CS50 aínda, 451 00:25:23,340 --> 00:25:25,290 pero é moi fácil de incorporarse. 452 00:25:25,290 --> 00:25:27,950 Tanto me dá toda esta función extra que ven neste paquete ORM, 453 00:25:27,950 --> 00:25:31,120 e así eu recibín unha morea de funcións extra e outras cousas de balde, 454 00:25:31,120 --> 00:25:34,810 que vai ver algo nun segundo. 455 00:25:34,810 --> 00:25:37,670 >> Agora, en realidade, todo o que eu teño que facer é crear esta clase. 456 00:25:37,670 --> 00:25:39,160 Eu nin sequera precisa facer calquera función ou calquera cousa, 457 00:25:39,160 --> 00:25:41,770 pero eu creei unha clase que representa a táboa, 458 00:25:41,770 --> 00:25:44,140 e por que eu teño estendido esta clase ORM, 459 00:25:44,140 --> 00:25:51,080 Eu recibín unha morea de cousas de balde, así que polo de agora non ten que configurar algo máis para arriba. 460 00:25:51,080 --> 00:25:53,530 E agora o que vou facer é que eu vou crear un novo controlador, 461 00:25:53,530 --> 00:25:58,480 que eu vou citar blog.php, 462 00:25:58,480 --> 00:26:04,350 e eu vou copiar o controlador de benvida 463 00:26:04,350 --> 00:26:11,950 entón eu non teño que redigitar algunhas cousas, 464 00:26:11,950 --> 00:26:20,720 e agora eu teño que cambiar o nome deste. 465 00:26:20,720 --> 00:26:24,710 Agora o que eu vou facer para probar para asegurarse que todo está dando certo, 466 00:26:24,710 --> 00:26:27,820 Vou incorporarse o primeiro post do meu banco de datos 467 00:26:27,820 --> 00:26:32,680 e imprimir o corpo da mensaxe na pantalla. 468 00:26:32,680 --> 00:26:37,920 Para iso o que eu vou facer primeiro é que eu vou gardar as mensaxes 469 00:26:37,920 --> 00:26:48,770 a unha variable de xeito que nós imos facer é - 470 00:26:48,770 --> 00:26:52,090 en Kohana o que fai é ir o obxecto post 471 00:26:52,090 --> 00:26:55,380 é medio complicado, pero ten que facer esa cousa chamada ORM :: fábrica, 472 00:26:55,380 --> 00:26:57,750 e entón pasar o nome do modelo que quere, 473 00:26:57,750 --> 00:27:00,490 e el retorna o obxecto ORM que representa este modelo. 474 00:27:00,490 --> 00:27:04,860 E entón, como dixen, cando estenden o obxecto ORM, 475 00:27:04,860 --> 00:27:07,320 temos todos estes métodos de balde, así, por exemplo, 476 00:27:07,320 --> 00:27:09,200 temos esa nova función chamada "atopar todos", 477 00:27:09,200 --> 00:27:12,160 que retorna automaticamente cada post na base de datos, 478 00:27:12,160 --> 00:27:14,850 o que é moi cómodo. 479 00:27:14,850 --> 00:27:17,480 >> E agora no corpo eu vou volver 480 00:27:17,480 --> 00:27:24,860 o primeiro post e voltar o seu corpo. 481 00:27:24,860 --> 00:27:27,930 E, por suposto, eu teño crear un post, 482 00:27:27,930 --> 00:27:31,880 entón imos introducir un novo post. 483 00:27:31,880 --> 00:27:37,870 Eu vou dicir: "Brandon, o meu primeiro post." 484 00:27:37,870 --> 00:27:40,010 Incrible. 485 00:27:40,010 --> 00:27:45,910 E agora nós estamos indo a ir a blogs 486 00:27:45,910 --> 00:27:50,960 e se todo funciona ben - Oh, iso é outra cousa de permisos de ficheiro mudo de novo. 487 00:27:50,960 --> 00:27:56,090 Espere un segundo. É unha especie de absurdo. 488 00:28:06,700 --> 00:28:08,490 Alí imos nós. Okay. 489 00:28:08,490 --> 00:28:10,040 Eu que problema de permisos. 490 00:28:10,040 --> 00:28:12,040 Estaba intentando crear algúns arquivos e algúns rexistro, 491 00:28:12,040 --> 00:28:15,400 e os permisos, unha vez máis, non foron debidamente configurado, entón eu fixen iso 492 00:28:15,400 --> 00:28:18,320 para que os arquivos foron escribir e executable 493 00:28:18,320 --> 00:28:21,090 para que el puidese realmente facer sesión ás cousas. 494 00:28:21,090 --> 00:28:24,220 Agora que está me dando outro dito excepción ", clase ORM non atopado" 495 00:28:24,220 --> 00:28:26,960 e iso é porque eu esquezo outra etapa. 496 00:28:26,960 --> 00:28:37,010 Iso é moi malo. 497 00:28:37,010 --> 00:28:40,270 O arquivo de pasta de arranque, existen estes módulos aquí, 498 00:28:40,270 --> 00:28:42,480 que pode optar por activar ou desactivar. 499 00:28:42,480 --> 00:28:44,340 Trátase de unha chea de características diferentes que pode optar por usar 500 00:28:44,340 --> 00:28:46,180 dentro Kohana, que é unha especie de bo. 501 00:28:46,180 --> 00:28:49,090 >> Por exemplo, eles teñen un módulo de autenticación 502 00:28:49,090 --> 00:28:51,170 que pode usar para autenticar usuarios. 503 00:28:51,170 --> 00:28:53,390 Teñen un módulo de almacenamento en memoria, se quere aplicar 504 00:28:53,390 --> 00:28:57,870 algún tipo de caché de back-end para facer o traballo de aplicación máis rápida e outros enfeites. 505 00:28:57,870 --> 00:29:02,140 Necesitamos permitir que a base de datos eo módulo ORM, 506 00:29:02,140 --> 00:29:04,280 porque como dixen, estamos a usar a base de datos, por suposto, 507 00:29:04,280 --> 00:29:08,200 e nós tamén necesitamos activar o módulo ORM, 508 00:29:08,200 --> 00:29:12,220 porque nós queremos ter a funcionalidade extra, que é bo ter. 509 00:29:12,220 --> 00:29:14,240 Todo o que teño que facer é descomentar estas dúas liñas, 510 00:29:14,240 --> 00:29:18,760 e agora, se eu actualizar, el me deu outro erro. 511 00:29:18,760 --> 00:29:22,100 Ela di: "Clase Model_Post Non se atopou." 512 00:29:22,100 --> 00:29:30,210 Agora este é un problema bo de ter. 513 00:29:30,210 --> 00:29:37,660 Imos ver. 514 00:29:37,660 --> 00:29:42,200 Facelo público. 515 00:29:42,200 --> 00:29:46,450 Non Espere. 516 00:30:11,610 --> 00:30:13,160 Oh, querida. 517 00:30:13,160 --> 00:30:18,590 Eu non sei por que non é capaz de atopar isto. 518 00:30:18,590 --> 00:30:21,030 Iso é moi raro. 519 00:30:21,030 --> 00:30:23,820 Eu teño esa clase ben aquí. 520 00:30:23,820 --> 00:30:28,650 Eu creo que eu podería ter que - oh. 521 00:30:28,650 --> 00:30:32,010 Eu son tan burro. Esquecín de engadir un código PHP. 522 00:30:32,010 --> 00:30:34,670 É por iso. 523 00:30:34,670 --> 00:30:41,260 Agora eu teño que desfacer este cambio 1 eu fixen. 524 00:30:41,260 --> 00:30:44,270 >> Okay. Alí imos nós. 525 00:30:44,270 --> 00:30:47,500 Iso foi moi parvo. Eu non tiña unha etiqueta PHP apertura. 526 00:30:47,500 --> 00:30:49,900 Pero, como podes ver, agora funciona correctamente, non? 527 00:30:49,900 --> 00:30:51,240 Temos un post. 528 00:30:51,240 --> 00:30:54,730 Pegamos o primeiro post, e agora nós impreso o seu corpo. 529 00:30:54,730 --> 00:30:58,010 Grande. Fantástico. 530 00:30:58,010 --> 00:31:01,470 Todas as preguntas ata agora? 531 00:31:01,470 --> 00:31:04,100 Non? Algunha pregunta? 532 00:31:04,100 --> 00:31:08,340 Ok, entón nós acabamos de crear o modelo de post, moi básico, 533 00:31:08,340 --> 00:31:10,930 e nós imos engadir algunhas funcións máis tarde. 534 00:31:10,930 --> 00:31:13,600 Podemos engadir validações e filtrado. 535 00:31:13,600 --> 00:31:15,650 As validacións son unha das cousas 536 00:31:15,650 --> 00:31:18,150 que os cadros resolver para ti moi, moi ben, 537 00:31:18,150 --> 00:31:21,310 e eu non creo que vostedes tiñan que facelo para o pset CS50, 538 00:31:21,310 --> 00:31:24,000 pero se fai de desenvolvemento web para o seu proxecto final, 539 00:31:24,000 --> 00:31:26,280 probablemente vai querer facer algún tipo de validación, 540 00:31:26,280 --> 00:31:28,290 como non ter nomes de usuario en branco, 541 00:31:28,290 --> 00:31:31,950 quizais ter un contrasinal con, polo menos, algún tempo, cousas así. 542 00:31:31,950 --> 00:31:34,750 E é realmente complicado de aplicar esas cousas por nós mesmos, 543 00:31:34,750 --> 00:31:37,390 e practicamente todos os framework web único fai por ti 544 00:31:37,390 --> 00:31:41,140 e permite que fai iso dun xeito moi limpa. 545 00:31:41,140 --> 00:31:44,340 E o modelo é o lugar onde se adoita expresar esas regras de validación, 546 00:31:44,340 --> 00:31:48,790 porque é validar un modelo é válido ou non. 547 00:31:48,790 --> 00:31:51,350 >> Pero, por agora, imos poñer isto até máis tarde, 548 00:31:51,350 --> 00:31:53,520 e polo de agora imos traballar noutra parte, 549 00:31:53,520 --> 00:31:55,400 e imos tratar de facer unha nova visión 550 00:31:55,400 --> 00:31:59,580 que lista todas as mensaxes. 551 00:31:59,580 --> 00:32:02,490 As etapas implicadas na toma de unha nova acción para consultar todas as mensaxes 552 00:32:02,490 --> 00:32:04,810 é incorporarse unha lista de todas as mensaxes 553 00:32:04,810 --> 00:32:11,990 e logo, facer unha lista de todas as mensaxes a través dun punto de vista. 554 00:32:11,990 --> 00:32:16,420 Aquí, por sorte o suficiente, xa colleu todas as mensaxes 555 00:32:16,420 --> 00:32:20,310 empregando esta primeira liña, a atopar todas as funcións, 556 00:32:20,310 --> 00:32:22,520 e agora o que imos facer é ata agora 557 00:32:22,520 --> 00:32:25,350 Teño está a establecer directamente o corpo da resposta 558 00:32:25,350 --> 00:32:29,090 pasando a corda, pero agora quero usar un punto de vista, 559 00:32:29,090 --> 00:32:31,870 ea diferenza entre unha vista e só facendo iso 560 00:32:31,870 --> 00:32:35,330 está con unha visión que eu poida ter un bo, modelo gran HTML, 561 00:32:35,330 --> 00:32:37,710 eo que podo facer é pasar algunhas variables 562 00:32:37,710 --> 00:32:42,200 e, a continuación, ter a visión de encher automáticamente o seu modelo 563 00:32:42,200 --> 00:32:44,690 usando estas variables. 564 00:32:44,690 --> 00:32:50,780 O que vou facer é que eu vou crear un novo punto de vista, 565 00:32:50,780 --> 00:32:55,940 e eu vou citar o punto de vista algo como "Blog / index" 566 00:32:55,940 --> 00:33:08,480 e eu vou conectar basicamente iso - Oh, o que estou escribindo? 567 00:33:08,480 --> 00:33:12,910 O meu cerebro está noutro lugar. 568 00:33:12,910 --> 00:33:16,600 Vou chamar as variables para a exhibición mensaxes, 569 00:33:16,600 --> 00:33:19,950 de xeito que forma o punto de vista ten acceso a esta variable post. 570 00:33:19,950 --> 00:33:26,140 >> E agora eu teño para crear ese punto de vista, 571 00:33:26,140 --> 00:33:28,500 entón aquí temos esta carpeta chamada "Visto", 572 00:33:28,500 --> 00:33:32,150 e en primeiro lugar, eu vou crear un novo cartafol no que chama "Blog". 573 00:33:32,150 --> 00:33:35,810 Iso é bo. Desta forma, podemos ter unha xerarquía agradable para os nosos puntos de vista. 574 00:33:35,810 --> 00:33:43,910 E entón eu vou crear outro ficheiro alí chama "index.php". 575 00:33:43,910 --> 00:33:45,780 Incrible. 576 00:33:45,780 --> 00:33:52,930 De feito, imos ter os dous aquí. 577 00:33:52,930 --> 00:33:56,760 Facendo un arquivo de vista, probablemente é a parte máis sinxela de todo isto, 578 00:33:56,760 --> 00:33:59,090 e estas son probablemente as cousas que xa está familiarizado. 579 00:33:59,090 --> 00:34:01,240 Nós imos facer algo moi sinxelo, 580 00:34:01,240 --> 00:34:05,360 comezar a dicir: "A miña lista de artigos do blog." 581 00:34:05,360 --> 00:34:14,860 Entón, podemos pasar, 582 00:34:14,860 --> 00:34:17,920 e nós pode percorrer a matriz mensaxes, 583 00:34:17,920 --> 00:34:21,760 coller cada post e dicir algo así como - 584 00:34:21,760 --> 00:34:25,290 quizais engadir unha liña 585 00:34:25,290 --> 00:34:42,460 e, a continuación, imprimir o autor eo corpo. 586 00:34:42,460 --> 00:34:44,480 Isto ten sentido ata agora? 587 00:34:44,480 --> 00:34:50,870 E imos ver se funciona. 588 00:34:50,870 --> 00:34:53,489 Non pasou nada. 589 00:34:53,489 --> 00:34:55,090 Eu me pregunta por que. 590 00:34:55,090 --> 00:34:58,760 Oh, eu perda un paso. Moi parvo de min. 591 00:34:58,760 --> 00:35:01,640 Eu creei un punto de vista, pero eu non definir a vista como a resposta, 592 00:35:01,640 --> 00:35:03,190 así que ten que facer unha cousa. 593 00:35:03,190 --> 00:35:12,610 Ten que facer ", este corpo de resposta" e configuralo para ser a vista. 594 00:35:12,610 --> 00:35:14,760 Alí imos nós. 595 00:35:14,760 --> 00:35:17,200 Temos o noso campo, e entón temos un post, 596 00:35:17,200 --> 00:35:20,500 e só por diversión, imos introducir un outro post 597 00:35:20,500 --> 00:35:23,390 para que poidamos ver unha lista. 598 00:35:31,800 --> 00:35:36,650 E inserir estas dúas mensaxes, 599 00:35:36,650 --> 00:35:39,500 e agora eu actualizar a páxina, 600 00:35:39,500 --> 00:35:42,060 vemos todos estes artigos aquí. 601 00:35:42,060 --> 00:35:44,250 >> Será que ten sentido ata agora? 602 00:35:44,250 --> 00:35:46,400 Si, unha pregunta? Oh, todo ben. 603 00:35:46,400 --> 00:35:51,440 Como verás, fomos capaces de separar todos estes códigos para fóra 604 00:35:51,440 --> 00:35:53,920 en seccións diferentes, e entón podes ver que é máis claro, co código de punto de vista. 605 00:35:53,920 --> 00:35:57,810 Este ficheiro aquí que representa o punto de vista, 606 00:35:57,810 --> 00:36:01,220 el só se preocupa coa representación de datos, mostrando datos. 607 00:36:01,220 --> 00:36:04,310 El é pasado algún tipo de datos, e todo o que fai é só mostra-lo a vostede. 608 00:36:04,310 --> 00:36:07,660 En todas as outras partes do seu código, non terá que preocuparse de nada diso, 609 00:36:07,660 --> 00:36:10,480 e do mesmo xeito, o seu código de vista non ten que preocupar-se sobre calquera cousa 610 00:36:10,480 --> 00:36:13,390 como acceder a base de datos e así por diante e así por diante, 611 00:36:13,390 --> 00:36:19,950 o que é moi bo e fai que o seu código moito máis fácil de manter. 612 00:36:19,950 --> 00:36:23,390 Como dixen, puntos de vista, son dinámicos en que 613 00:36:23,390 --> 00:36:27,080 é un ficheiro, pero ía xerar diferentes puntos de vista 614 00:36:27,080 --> 00:36:29,940 con base nas variables que realmente pasar en, 615 00:36:29,940 --> 00:36:32,370 e, ademais, hai un gran número de funcións auxiliares 616 00:36:32,370 --> 00:36:34,230 que pode usar para axudar a escribir o seu código máis rápido, 617 00:36:34,230 --> 00:36:36,320 que eu vou lle amosar en só un segundo. 618 00:36:36,320 --> 00:36:38,050 É. 619 00:36:38,050 --> 00:36:42,490 >> [Estudante] Entón $ 0 é un controlador, non? 620 00:36:42,490 --> 00:36:44,000 Esta segunda cousa. 621 00:36:44,000 --> 00:36:46,090 A pregunta é é de R $ 0 a controlador? 622 00:36:46,090 --> 00:36:48,610 $ 0 é unha variable que eu creei aquí. 623 00:36:48,610 --> 00:36:51,320 Eu creei unha visión de primeira. Eu lle atribúe a algunha variable. 624 00:36:51,320 --> 00:36:54,960 Entón, eu pase a esta función, axustalo como o corpo da resposta. 625 00:36:54,960 --> 00:36:57,260 Será que isto ten sentido? 626 00:36:57,260 --> 00:37:02,200 [Estudante] Entón, é vista :: Factory, é vista como unha clase 627 00:37:02,200 --> 00:37:06,610 ou unha biblioteca [inaudível] función de fábrica? 628 00:37:06,610 --> 00:37:10,640 A cuestión é sobre a función de visualización :: fábrica, 629 00:37:10,640 --> 00:37:14,020 e, basicamente, este é un pouco máis de programación orientada a obxectos esencialmente. 630 00:37:14,020 --> 00:37:18,000 Ver é a clase vista, e el ten un método chamado "Fábrica" 631 00:37:18,000 --> 00:37:24,170 e iso é un xeito de coller o obxecto que está co nome "Blog / index." 632 00:37:24,170 --> 00:37:27,140 E iso é un pouco de material de programación orientada a obxecto 633 00:37:27,140 --> 00:37:33,010 que eu non vou entrar aquí moito. 634 00:37:33,010 --> 00:37:36,400 Agora, obviamente, queremos crear novas mensaxes, 635 00:37:36,400 --> 00:37:38,790 pero non quero ter que facelo a través dun banco de datos, 636 00:37:38,790 --> 00:37:41,280 entón imos crear unha nova acción para a creación dun novo post, 637 00:37:41,280 --> 00:37:43,050 e hai unha morea de cousas que temos que facer. 638 00:37:43,050 --> 00:37:45,910 >> O primeiro que imos facer - imos afrontar esas cousas un por un. 639 00:37:45,910 --> 00:37:48,320 O primeiro que imos facer é que temos que crear un formulario 640 00:37:48,320 --> 00:37:54,460 para a inserción dun novo post, 641 00:37:54,460 --> 00:37:57,360 pero eu tamén estou indo a engadir unha nova acción en primeiro lugar, 642 00:37:57,360 --> 00:38:01,050 así que engadir unha nova acción é tan fácil como 643 00:38:01,050 --> 00:38:03,490 engadindo unha nova función co seu controlador, 644 00:38:03,490 --> 00:38:13,710 e agora eu vou facer algo moi básico, 645 00:38:13,710 --> 00:38:20,850 basta incorporarse este punto de vista e public-lo, só tes que indicalo lo para ti. 646 00:38:20,850 --> 00:38:26,220 E entón agora eu vou crear un novo ficheiro de punto de vista, 647 00:38:26,220 --> 00:38:33,690 e eu vou comezar a escribir algunhas cousas. 648 00:38:33,690 --> 00:38:36,540 Que é agradable sobre Kohana é que fornecen unha gran cantidade de diferentes funcións auxiliares 649 00:38:36,540 --> 00:38:38,790 para ti escribir código vista con máis facilidade, 650 00:38:38,790 --> 00:38:41,970 e unha desas funcións auxiliares ou módulos auxiliares 651 00:38:41,970 --> 00:38:45,860 está en torno de formas de escribir. 652 00:38:45,860 --> 00:38:49,460 Para escribir as formas, eu realmente non teño que escribir directamente calquera HTML min. 653 00:38:49,460 --> 00:38:51,100 Vostedes escribiron formularios HTML. 654 00:38:51,100 --> 00:38:54,850 Vostede sabe como pode ser moi, moi doloroso e complicado para escribir formas. 655 00:38:54,850 --> 00:38:59,970 Non é divertido, polo que, por sorte, 656 00:38:59,970 --> 00:39:04,860 podemos basicamente escribir un formulario mediante Kohana do 657 00:39:04,860 --> 00:39:11,190 formar funcións auxiliares para facelo por nós. 658 00:39:11,190 --> 00:39:17,340 Estamos indo a basicamente ter campos para cada cousa que temos, 659 00:39:17,340 --> 00:39:23,160 así un para autores e outra para os corpos. 660 00:39:23,160 --> 00:39:27,090 Nós imos ter unha etiqueta, e nós imos ter unha entrada. 661 00:39:37,450 --> 00:39:41,360 >> E entón, finalmente, nós imos ter unha submisión. 662 00:39:49,350 --> 00:39:52,230 E como podes ver, este é moito máis limpo para escribir 663 00:39:52,230 --> 00:39:58,150 que todo o que HTML desorde, o que é ben legal. 664 00:39:58,150 --> 00:40:00,930 Concedido, hai outros frameworks web que teñen aínda máis limpo do que iso, 665 00:40:00,930 --> 00:40:04,440 pero polo menos é mellor que escribir o código HTML mesmo. 666 00:40:09,400 --> 00:40:11,130 Impresionante, entón iso é o que ve. 667 00:40:11,130 --> 00:40:13,530 Isto é medio confuso, 668 00:40:13,530 --> 00:40:19,720 entón eu estou indo a engadir un salto de liña non 669 00:40:19,720 --> 00:40:21,180 para facer este ollar un pouco máis agradable. 670 00:40:21,180 --> 00:40:23,330 Ben, por suposto, aínda parece moi, moi malo, pero nós estamos só enfocados 671 00:40:23,330 --> 00:40:26,050 en función de agora e non na estética. 672 00:40:26,050 --> 00:40:28,010 Sen tempo para facer todo. 673 00:40:28,010 --> 00:40:30,600 E como se pode ver, agora temos unha forma de super básico, 674 00:40:30,600 --> 00:40:32,080 o que é ben legal. 675 00:40:32,080 --> 00:40:36,730 Este código eu diría que é máis limpo do que tentando escribir un HTML formar-se, 676 00:40:36,730 --> 00:40:40,290 de xeito que é bo. 677 00:40:40,290 --> 00:40:42,030 Cal é o próximo? 678 00:40:42,030 --> 00:40:49,260 Agora necesitamos facer as cousas coa acción. 679 00:40:49,260 --> 00:40:51,240 Normalmente, cando escribir formularios HTML, 680 00:40:51,240 --> 00:40:54,070 tes que dicir onde vai enviar o formulario para. 681 00:40:54,070 --> 00:40:56,050 Por defecto, na maioría dos frameworks web, 682 00:40:56,050 --> 00:40:58,200 somete ao mesmo exacto, así que a cousa é, 683 00:40:58,200 --> 00:41:01,310 se publique unha solicitude GET a / blog / new, 684 00:41:01,310 --> 00:41:03,240 debe amosar-lle a forma, 685 00:41:03,240 --> 00:41:06,810 pero se enviar unha solicitude POST a / blog / novo cos datos, 686 00:41:06,810 --> 00:41:10,000 debe realmente intentar salvar este post 687 00:41:10,000 --> 00:41:13,300 e facer algo con el. 688 00:41:20,630 --> 00:41:22,180 >> O que imos facer é 689 00:41:22,180 --> 00:41:25,320 basicamente todo o que temos que facer para ver se é unha proposta post ou unha solicitude get 690 00:41:25,320 --> 00:41:29,350 é comprobar cales son as variables post pode definir. 691 00:41:29,350 --> 00:41:34,560 E se a variable cargo está definido, entón imos tentar crear un novo post. 692 00:41:34,560 --> 00:41:38,440 Unha vez máis, nós só facemos iso, 693 00:41:38,440 --> 00:41:41,090 e polo que se crea un novo post, e nós estamos indo literalmente para 694 00:41:41,090 --> 00:41:51,150 definir os seus campos como este, 695 00:41:51,150 --> 00:41:55,640 e logo, imos salvalo. 696 00:41:55,640 --> 00:41:59,200 E entón eu vou para redireccionar 697 00:41:59,200 --> 00:42:07,660 á páxina de índice para que se poidan ver a nosa lista de mensaxes. 698 00:42:07,660 --> 00:42:09,620 Imos tentar iso. 699 00:42:09,620 --> 00:42:15,160 Eu vou dicir: "Brandon" 700 00:42:15,160 --> 00:42:18,140 e, a continuación, enviar o post, e si todo vai ben, 701 00:42:18,140 --> 00:42:21,390 como se pode ver, el me redirixido á páxina do índice, 702 00:42:21,390 --> 00:42:24,140 e se eu vaia ata o final, temos un novo post inserida. 703 00:42:24,140 --> 00:42:26,430 Yay! 704 00:42:26,430 --> 00:42:28,430 Si, pregunta. 705 00:42:28,430 --> 00:42:31,760 >> [Estudante] E se tivese entrado exactamente a mesma cousa 706 00:42:31,760 --> 00:42:33,380 entrou antes? 707 00:42:33,380 --> 00:42:36,950 Será que comproba que non ten duplicado 708 00:42:36,950 --> 00:42:38,810 o mesmo submisión? 709 00:42:38,810 --> 00:42:41,660 Sexa por defecto, non, porque, por defecto - 710 00:42:41,660 --> 00:42:46,470 Sentímolo, a pregunta é se introducir nos mesmos datos en forma 711 00:42:46,470 --> 00:42:50,180 e alegan que, permitirá a inserción dun obxecto duplicado, 712 00:42:50,180 --> 00:42:52,550 unha entrada duplicada, esencialmente? 713 00:42:52,550 --> 00:42:54,070 Agora si, permitirá que faga iso, 714 00:42:54,070 --> 00:42:58,860 porque en bases de datos é perfectamente válido ter liñas totalmente duplicados, 715 00:42:58,860 --> 00:43:02,260 pero se isto é un problema, entón podes engadir validações, por exemplo, 716 00:43:02,260 --> 00:43:06,430 asegurarse de que, se este é exactamente o mesmo como algo que xa existe, 717 00:43:06,430 --> 00:43:08,720 logo dicir que é un obxecto válido, 718 00:43:08,720 --> 00:43:11,200 e entón pode incluso especificar a súa mensaxe de erro 719 00:43:11,200 --> 00:43:14,390 e dicir: "non é válido porque iso xa existe" ou algo parecido. 720 00:43:14,390 --> 00:43:22,420 Pero, neste caso, eu podería simplemente crear algo duplicado. 721 00:43:22,420 --> 00:43:26,010 Agora imos tratar de engadir algunhas validações. 722 00:43:26,010 --> 00:43:30,400 O problema con isto agora é que 723 00:43:30,400 --> 00:43:34,220 Podería literalmente enviar unha mensaxe completamente en branco. 724 00:43:34,220 --> 00:43:37,500 I pode premer neste botón, agora, e alí imos nós. 725 00:43:37,500 --> 00:43:40,290 Non pode realmente velo, pero esa liña extra aquí 726 00:43:40,290 --> 00:43:43,830 indica que, literalmente, ter un novo post. 727 00:43:43,830 --> 00:43:46,050 El só ten un autor en branco e un corpo en branco, 728 00:43:46,050 --> 00:43:48,630 e nós non queremos que a xente para facelo. 729 00:43:48,630 --> 00:43:52,550 Este é o lugar onde a validación vén dentro 730 00:43:52,550 --> 00:43:57,540 >> Eu podo ir ao meu modelo de obxecto, 731 00:43:57,540 --> 00:43:59,530 e agora eu creo unha nova función que especifica 732 00:43:59,530 --> 00:44:02,000 que as regras de validación que eu debería engadir a este modelo 733 00:44:02,000 --> 00:44:06,840 para asegurarse de que é válido ou para especificar o que significa ser un post válido? 734 00:44:06,840 --> 00:44:10,210 E quero dicir que non é máis que un post válido se o autor eo corpo 735 00:44:10,210 --> 00:44:15,150 non están en branco, e iso é como facelo en Kohana. 736 00:44:15,150 --> 00:44:18,750 Se crea unha nova función chamada "regras" 737 00:44:18,750 --> 00:44:20,210 e entón basicamente voltar un array asociativo 738 00:44:20,210 --> 00:44:24,230 que define as regras de validación para este obxecto. 739 00:44:24,230 --> 00:44:27,530 Estamos indo para volver a matriz, a continuación, o que imos facer é 740 00:44:27,530 --> 00:44:32,820 dicir "autor", que vai para unha matriz, 741 00:44:32,820 --> 00:44:37,720 que vai a outro array chamado "non está baleiro." 742 00:44:37,720 --> 00:44:41,480 E entón eu vou dicir "corpo". 743 00:44:50,980 --> 00:44:54,120 Vale, ea sintaxe para iso e estrutura para este 744 00:44:54,120 --> 00:44:56,530 pode parecer un pouco complicado e un pouco complicado. 745 00:44:56,530 --> 00:44:59,330 Se ler a documentación, é moi sinxelo de descubrir, 746 00:44:59,330 --> 00:45:02,500 Pero, esencialmente, iso é o que hai que facer para especificar 747 00:45:02,500 --> 00:45:04,130 algunhas regras de validación, e hai unha serie de regras distintas 748 00:45:04,130 --> 00:45:06,810 Kohana que lle vai dar de balde, como pode engadir regras para dicir 749 00:45:06,810 --> 00:45:08,410 debe ser polo menos este lonxitude. 750 00:45:08,410 --> 00:45:11,800 Quizais ten que ser numérico. Quizais teña que ser alfanumérico. 751 00:45:11,800 --> 00:45:14,410 Quizais que ten que ser, como máximo, este longo, así por diante e así por diante. 752 00:45:14,410 --> 00:45:17,730 Hai unha serie de regras distintas que Kohana ofrece para ti, 753 00:45:17,730 --> 00:45:19,610 e pode ir no seu sitio web, ollar para a documentación, 754 00:45:19,610 --> 00:45:23,150 e podes ver todas as cousas distintas que podes facer. 755 00:45:23,150 --> 00:45:25,650 >> Pero iso é todo o que teño que facer, 756 00:45:25,650 --> 00:45:30,490 e agora imos ver que pasa 757 00:45:30,490 --> 00:45:34,060 se eu enviar unha mensaxe en branco. 758 00:45:34,060 --> 00:45:36,960 O que vai ocorrer? Oh, non, eu recibín un erro. 759 00:45:36,960 --> 00:45:39,440 Recibo unha excepción de validación. 760 00:45:39,440 --> 00:45:41,070 Ben, iso é bo. 761 00:45:41,070 --> 00:45:43,200 El me dixo que o meu modelo non é válido, 762 00:45:43,200 --> 00:45:45,780 pero eu non quero poñer unha excepción 763 00:45:45,780 --> 00:45:48,720 para os meus usuarios cando tentan enviar algo incorrecto, non? 764 00:45:48,720 --> 00:45:51,560 Quero darlles algún tipo de mensaxe de erro agradable 765 00:45:51,560 --> 00:45:53,610 cando algo dá mal. 766 00:45:53,610 --> 00:46:01,830 O que imos facer é que imos 767 00:46:01,830 --> 00:46:04,490 envolver todo en un loop try catch. 768 00:46:04,490 --> 00:46:06,750 En realidade, eu creo que iso tamén é algo que aínda non aprendeu 769 00:46:06,750 --> 00:46:10,820 en CS50, xa C, a linguaxe de programación C, 770 00:46:10,820 --> 00:46:14,000 non ten excepcións, pero case todos os demais idioma 771 00:46:14,000 --> 00:46:16,700 ten excepcións, de xeito moi, moi brevemente, 772 00:46:16,700 --> 00:46:19,430 unha excepción é algo que unha peza de código pode 773 00:46:19,430 --> 00:46:21,430 lanzar unha excepción cando algo dá mal, 774 00:46:21,430 --> 00:46:23,410 pero entón quizais algún outro anaco de código máis arriba 775 00:46:23,410 --> 00:46:25,810 pode capturar esa excepción e facer algo con el. 776 00:46:25,810 --> 00:46:27,710 >> Por exemplo, neste caso, 777 00:46:27,710 --> 00:46:29,940 o anaco de código que está a tratar de salvar un modelo, 778 00:46:29,940 --> 00:46:33,170 el valida o modelo, e se di: "Vale, este modelo non é válido", 779 00:46:33,170 --> 00:46:36,150 que vai publicar unha excepción, e iso é unha especie de equivalente a 780 00:46:36,150 --> 00:46:39,870 en C que pode volver a -1 ou algo parecido. 781 00:46:39,870 --> 00:46:42,320 E entón, para min, esta función, o meu código 782 00:46:42,320 --> 00:46:46,310 a un nivel superior, podo tentar incorporarse esta excepción 783 00:46:46,310 --> 00:46:49,330 e, basicamente, dicir: "ben, se eu incorporarse á excepción, o que eu vou facer?" 784 00:46:49,330 --> 00:46:51,570 Ou eu podería optar por non capturar esa excepción e deixar alguén máis arriba 785 00:46:51,570 --> 00:46:54,400 capturar a excepción, ou se ninguén pega, 786 00:46:54,400 --> 00:46:56,820 entón todo o programa traba e di: 787 00:46:56,820 --> 00:46:59,170 "Algo deu mal, e eu non podía tratar con isto." 788 00:46:59,170 --> 00:47:04,490 >> Pero o que facemos é que enrole unha peza de código nun bloque try, 789 00:47:04,490 --> 00:47:09,030 e entón tamén engadir algo chamado un bloque catch, 790 00:47:09,030 --> 00:47:17,300 cal é o tipo de código que pode tentar capturar excepcións que se poidan producir. 791 00:47:17,300 --> 00:47:20,430 E entón se eu incorporarse esta excepción particular 792 00:47:20,430 --> 00:47:23,110 ou excepción invalidação, entón o que eu vou facer é 793 00:47:23,110 --> 00:47:31,210 Eu estou indo a definir os erros - Eu creo que é como fago iso - 794 00:47:31,210 --> 00:47:35,370 e eu estou indo a definir os erros dalgún obxecto. 795 00:47:35,370 --> 00:47:40,920 E entón, o que vou facer é se alcanza esa excepción, 796 00:47:40,920 --> 00:47:43,090 non está indo a redireccionar, e se non redireccionar, 797 00:47:43,090 --> 00:47:46,160 que vai saír do caso do blog 798 00:47:46,160 --> 00:47:49,920 e bater este blog / new, que é quere que quero facer. 799 00:47:49,920 --> 00:47:53,190 Se hai un erro, entón eu quero volver á forma 800 00:47:53,190 --> 00:47:55,100 e amosar eses erros. 801 00:47:55,100 --> 00:48:00,780 Agora o que quero facer é que quero pasar estes erros 802 00:48:00,780 --> 00:48:07,010 vista. 803 00:48:07,010 --> 00:48:10,360 Ok, eu creo que eu teño o punto de vista aquí, 804 00:48:10,360 --> 00:48:14,660 e, basicamente, quero amosar estes erros se os houbese. 805 00:48:14,660 --> 00:48:19,740 Antes de escribir o código HTML para iso, eu vou realmente rápido 806 00:48:19,740 --> 00:48:21,720 mostrar o que a estrutura deste erros miradas variables como, 807 00:48:21,720 --> 00:48:23,080 e esta é unha boa práctica en xeral. 808 00:48:23,080 --> 00:48:25,070 Moitas veces recibe algo de volta dalgún método, 809 00:48:25,070 --> 00:48:27,250 algunha función no ámbito web, 810 00:48:27,250 --> 00:48:29,410 e non sabe o que a variable parecer, 811 00:48:29,410 --> 00:48:31,210 así que non sabe como traballar con el. 812 00:48:31,210 --> 00:48:37,790 Vou usar un método de impresión r basicamente imprimir lo. 813 00:48:37,790 --> 00:48:41,100 >> E como podes ver, el me di que é unha matriz de asociado, 814 00:48:41,100 --> 00:48:44,880 e ten unha chave, autor, os puntos a esta corda, 815 00:48:44,880 --> 00:48:47,050 autor non pode estar baleiro, e outra chave, corpo, 816 00:48:47,050 --> 00:48:49,680 apunta a outra cadea, o corpo non pode estar baleiro. 817 00:48:49,680 --> 00:48:52,130 Eu son como, así, legal. 818 00:48:52,130 --> 00:48:56,230 Así que pode percorrer a matriz e imprimir cada mensaxe. 819 00:48:56,230 --> 00:49:02,150 É basicamente como unha matriz asociativa con unha morea de mensaxes. 820 00:49:02,150 --> 00:49:13,500 O que vou facer é "erros" 821 00:49:13,500 --> 00:49:17,140 e eu estou indo a crear unha lista non ordenada, 822 00:49:17,140 --> 00:49:20,860 e eu estou indo a percorrer os erros. 823 00:49:33,730 --> 00:49:38,710 E iso, e agora eu vou tentar presentar este novo, 824 00:49:38,710 --> 00:49:41,200 e imos ver o que temos. 825 00:49:41,200 --> 00:49:45,370 Agora temos esta boa lista de erros, 826 00:49:45,370 --> 00:49:48,630 e iso aínda é moi feo, pero iso, obviamente, pode ser formatado para unha boa aparencia, 827 00:49:48,630 --> 00:49:51,620 pero a idea básica é só en poucas liñas de código, 828 00:49:51,620 --> 00:49:53,720 fomos capaces de validar o noso modelo, 829 00:49:53,720 --> 00:49:56,510 asegúrese de que certos campos non estaban baleiras, 830 00:49:56,510 --> 00:49:59,740 e se algo deu mal, a continuación, voltar algún tipo de mensaxe de erro 831 00:49:59,740 --> 00:50:01,760 Podería, entón, presentar para o usuario. 832 00:50:01,760 --> 00:50:03,910 Tamén pode personalizar a súa validación 833 00:50:03,910 --> 00:50:07,590 de xeito que realmente pode ter unha mensaxe de erro 834 00:50:07,590 --> 00:50:09,620 que é máis específico para a súa aplicación, ou algo así. 835 00:50:09,620 --> 00:50:14,600 Todo o que é xeralmente personalizable. 836 00:50:14,600 --> 00:50:17,150 >> Por desgraza, estamos correndo contra o tempo, 837 00:50:17,150 --> 00:50:20,040 entón eu vou ter que cortar a sesión de codificación en directo aquí. 838 00:50:20,040 --> 00:50:22,980 Hai unha morea de outras características que quero demostrar para ti 839 00:50:22,980 --> 00:50:25,650 neste exemplo. 840 00:50:25,650 --> 00:50:27,620 Por exemplo, pode engadir modelos para a súa web, 841 00:50:27,620 --> 00:50:31,110 entón quizais haxa algún tipo de código HTML que quere aplicar 842 00:50:31,110 --> 00:50:35,190 para cada páxina no seu sitio web, e en vez de pegar que 843 00:50:35,190 --> 00:50:40,630 en cada ficheiro visión única que ten, o que obviamente sería unha mala práctica, 844 00:50:40,630 --> 00:50:43,020 basicamente pode definir eses modelos, 845 00:50:43,020 --> 00:50:46,660 e logo, no seu controlador dicir: "Ok, eu estou usando este modelo." 846 00:50:46,660 --> 00:50:50,130 "Ter todos os meus puntos de vista usar este modelo." 847 00:50:50,130 --> 00:50:52,470 E a última cousa que quero demostrar a ti tamén 848 00:50:52,470 --> 00:50:57,800 que non ten tempo para cross-site scripting, 849 00:50:57,800 --> 00:51:01,430 e, basicamente, eu creo que vostedes probablemente xa viu en CS50 - 850 00:51:01,430 --> 00:51:03,770 Eu creo que David Malan probablemente falou sobre como pode xeralmente inxectar 851 00:51:03,770 --> 00:51:08,040 O código JavaScript en - vostede falou sobre iso? 852 00:51:08,040 --> 00:51:10,220 Quizais? Quizais non? 853 00:51:10,220 --> 00:51:12,670 >> Pero moitas veces pode inxectar código JavaScript malicioso 854 00:51:12,670 --> 00:51:15,630 na base de datos de alguén, e se eles non escapan que correctamente, 855 00:51:15,630 --> 00:51:18,280 entón, cando eles presentan os datos de volta para o usuario, 856 00:51:18,280 --> 00:51:21,310 entón pode realizar algún tipo de código JavaScript acaso non quere que aconteza, 857 00:51:21,310 --> 00:51:23,050 e eu estaba indo a demostrar como faría iso dentro Kohana. 858 00:51:23,050 --> 00:51:25,380 É realmente moi, moi fácil. 859 00:51:25,380 --> 00:51:31,920 Podería facelo agora en 2 segundos literalmente. 860 00:51:31,920 --> 00:51:34,560 Todo o que tes que facer é basicamente romper esas cousas 861 00:51:34,560 --> 00:51:46,920 nesta cousa chamada entidades HTML. 862 00:51:46,920 --> 00:51:51,180 E iso vai escapar automaticamente todos os caracteres correctamente 863 00:51:51,180 --> 00:51:54,730 e asegúrese de non obter este problema. 864 00:51:54,730 --> 00:51:57,220 [Estudante] Inseriu a primeira proba de forma incorrecta. 865 00:51:57,220 --> 00:52:01,030 [Brandon Liu] Oh, oops. 866 00:52:01,030 --> 00:52:06,420 >> Ok, iso é todo o que eu tiña que compartir con vostedes hoxe. 867 00:52:06,420 --> 00:52:09,930 Estes diapositivas van ser publicadas, pero estes son xeralmente 868 00:52:09,930 --> 00:52:13,900 os únicos recursos que ten que realmente necesita para comezar co Kohana. 869 00:52:13,900 --> 00:52:16,770 Pode ir para o sitio. Teñen unha guía do usuario, e eles tamén teñen un explorador API. 870 00:52:16,770 --> 00:52:20,630 Podemos explorar todas as diferentes funcións e funcións auxiliares que teñen para ti. 871 00:52:20,630 --> 00:52:22,070 Eles xeralmente teñen información suficiente sobre o sitio web 872 00:52:22,070 --> 00:52:25,310 que pode usar para comezar e ir andando con Kohana. 873 00:52:25,310 --> 00:52:30,840 Non hai que moitos tutoriais, creo, para Kohana, fóra do 874 00:52:30,840 --> 00:52:33,880 o que teñen na páxina web aquí, entón este pode ser a súa mellor aposta. 875 00:52:33,880 --> 00:52:35,600 Pero se quere ir co framework web 876 00:52:35,600 --> 00:52:37,120 e non quere ter que incorporarse un novo idioma, 877 00:52:37,120 --> 00:52:39,780 e quere algo que é relativamente lixeiro e ten unha curva de aprendizaxe fácil, 878 00:52:39,780 --> 00:52:41,570 Quere definitivamente suxerir Kohana. 879 00:52:41,570 --> 00:52:44,040 Esta é probablemente a mellor oferta para iso. 880 00:52:44,040 --> 00:52:46,830 O máis divertido, con todo, é se estivésemos usando Ruby on Rails, 881 00:52:46,830 --> 00:52:48,550 poderiamos ter replicado o que fixemos 882 00:52:48,550 --> 00:52:51,430 e, probablemente, máis en menos de 3 minutos. 883 00:52:51,430 --> 00:52:54,710 Non é broma, pero aprender Ruby on Rails leva moito máis tempo 884 00:52:54,710 --> 00:52:56,780 do que sería necesario para aprender Kohana. 885 00:52:56,780 --> 00:52:58,840 É basicamente a súa elección sobre o que quere escoller para aprender, 886 00:52:58,840 --> 00:53:01,260 pero se queres comezar a traballar rapidamente, 887 00:53:01,260 --> 00:53:03,870 Kohana é sempre unha opción moi boa. 888 00:53:03,870 --> 00:53:06,730 >> Algunha última pregunta antes de rematar? Si 889 00:53:06,730 --> 00:53:08,020 [Estudante] Como poderiamos integrar este 890 00:53:08,020 --> 00:53:13,120 nun cadro CSS como estaba usando cando estaba instruíndo? 891 00:53:13,120 --> 00:53:16,700 A cuestión é como é que integramos que, cun cadro de CSS? 892 00:53:16,700 --> 00:53:18,740 Que probablemente quere facer é que probablemente incluiría 893 00:53:18,740 --> 00:53:21,090 un novo cartafol onde queremos botan todos os nosos arquivos CSS, 894 00:53:21,090 --> 00:53:23,010 e entón nós tamén quere engadir un novo modelo. 895 00:53:23,010 --> 00:53:26,090 No modelo de nós incluír eses arquivos CSS 896 00:53:26,090 --> 00:53:28,410 para asegurarse de que eles están referenciados en cada páxina, 897 00:53:28,410 --> 00:53:32,220 e entón cando realmente está escribindo HTML, 898 00:53:32,220 --> 00:53:34,010 que acaba de engadir clases e outros adornos adecuados, 899 00:53:34,010 --> 00:53:36,100 e, por exemplo, cando está a usar algo parecido coa forma 900 00:53:36,100 --> 00:53:40,710 función auxiliar, podes engadir máis parámetros despois 901 00:53:40,710 --> 00:53:42,830 para especificar cales clases quere ser conectado a varias cousas 902 00:53:42,830 --> 00:53:47,820 así poderían denominala lo correctamente, e iso é basicamente como ía. 903 00:53:47,820 --> 00:53:50,100 >> Algunha pregunta? 904 00:53:50,100 --> 00:53:52,090 Incrible. 905 00:53:52,090 --> 00:53:58,540 Grazas polo seu tempo, e grazas por ter benvida. 906 00:53:58,540 --> 00:54:05,170 Eu non estaba indo para engadir moito máis, 907 00:54:05,170 --> 00:54:08,560 pero unha cousa realmente rápida é que non temos unha ligazón 908 00:54:08,560 --> 00:54:12,590 a forma. 909 00:54:12,590 --> 00:54:14,310 Realmente burro. 910 00:54:14,310 --> 00:54:20,110 Imos engadir un - en realidade, a vista, blog, índice, 911 00:54:20,110 --> 00:54:23,890 imos moi rapidamente engadir unha ligazón que vai cara á nova páxina, 912 00:54:23,890 --> 00:54:26,770 a páxina onde podemos introducir un novo post. 913 00:54:26,770 --> 00:54:29,950 Nós imos facer. 914 00:54:29,950 --> 00:54:34,020 O que é bo é que hai todo este grupo de funcións auxiliares HTML 915 00:54:34,020 --> 00:54:37,090 que facer cousas distintas para vostede, entón xa viu as entidades 916 00:54:37,090 --> 00:54:41,980 funciona aquí, pero eles tamén teñen unha función chamada "Referencia", 917 00:54:41,980 --> 00:54:45,400 que se pode escribir no Blog / novo 918 00:54:45,400 --> 00:54:49,550 e dicir: "Publicar un novo blog." 919 00:54:49,550 --> 00:54:51,850 E sería crear este link para ti, 920 00:54:51,850 --> 00:54:54,120 e iso parece realmente sinxelo de se facer, pero iso é bo, 921 00:54:54,120 --> 00:54:58,720 porque supoño que está movendo a súa web a partir dun dominio a outro. 922 00:54:58,720 --> 00:55:01,390 E se acaba de escribir os URL a si mesmo, 923 00:55:01,390 --> 00:55:04,350 entón tería que cambiar todas as URLs 924 00:55:04,350 --> 00:55:06,850 Ou quizais cambiou-se a partir do 1 subcartafol para outra subcartafol. 925 00:55:06,850 --> 00:55:08,790 Vostede tería que cambiar todas as URLs a si mesmo, 926 00:55:08,790 --> 00:55:12,180 e iso non é divertido. 927 00:55:12,180 --> 00:55:14,510 Podes empregar esta áncora aquí, 928 00:55:14,510 --> 00:55:18,950 e pode cambiar o dominio ou o prefixo subcartafol 929 00:55:18,950 --> 00:55:20,640 no ficheiro de configuración unha vez máis, 930 00:55:20,640 --> 00:55:22,980 e logo, que vai aplicar iso en todas as partes, e iso é, unha vez máis, 931 00:55:22,980 --> 00:55:26,930 un gran exemplo de non repetir-se, secando o código para fóra. 932 00:55:26,930 --> 00:55:30,370 Onde queira que se está repetindo, e tentar extraer nalgún tipo de ficheiro de configuración 933 00:55:30,370 --> 00:55:34,160 ou a unha función diferente e telo tratar con isto para ti. 934 00:55:34,160 --> 00:55:42,930 >> E a última cousa que eu quería te amosar era 935 00:55:42,930 --> 00:55:50,250 Supoño que estamos de volta neste post, e eu compuxera algúns realmente longo ensaio, 936 00:55:50,250 --> 00:55:52,670 pero eu esquezo de engadir o meu autor. 937 00:55:52,670 --> 00:55:55,210 Agora, cando eu faga clic en "Enviar mensaxe" 938 00:55:55,210 --> 00:55:57,270 Acabo de perder todo. 939 00:55:57,270 --> 00:56:00,000 Non! Realmente triste. 940 00:56:00,000 --> 00:56:03,870 Entón, como trata sobre iso? 941 00:56:03,870 --> 00:56:06,070 Isto é o que nós facemos. 942 00:56:06,070 --> 00:56:09,340 Que facemos aquí é para estas funcións de entrada e área de texto, 943 00:56:09,340 --> 00:56:12,700 incluír un segundo parámetro, entón o valor de devandito segundo parámetro 944 00:56:12,700 --> 00:56:16,620 será o que o campo será cuberto inicialmente con. 945 00:56:16,620 --> 00:56:23,570 O que podemos facer é na nosa controlador blog, 946 00:56:23,570 --> 00:56:25,360 puidésemos chamar outra variable. 947 00:56:25,360 --> 00:56:27,050 Chamalo de "valores", quizais. 948 00:56:27,050 --> 00:56:30,620 E pasar na matriz post, literalmente. 949 00:56:30,620 --> 00:56:32,620 Isto significa que, se a validación fallou, 950 00:56:32,620 --> 00:56:36,570 pasar para min o cargo matriz que submeti desde o último solicitude, 951 00:56:36,570 --> 00:56:38,420 e de que xeito podo usar os valores da miña última presentación 952 00:56:38,420 --> 00:56:44,540 para repoboar os campos. 953 00:56:44,540 --> 00:56:49,600 Agora podo facer algo parecido con valores autor 954 00:56:49,600 --> 00:56:55,180 e valores do corpo, e así agora se eu fai algo aleatoria 955 00:56:55,180 --> 00:57:01,490 e prema en "Enviar mensaxe", el permanece alí. 956 00:57:01,490 --> 00:57:03,830 Pero imos a funcionar a outro problema. 957 00:57:03,830 --> 00:57:07,670 Isto funciona, pero se eu for á páxina por primeira vez, 958 00:57:07,670 --> 00:57:09,720 vai caer, e iso é porque a primeira vez 959 00:57:09,720 --> 00:57:13,730 imos á páxina, esta variable cargo aínda non foi definido. 960 00:57:13,730 --> 00:57:18,170 É nulo. Non existe. 961 00:57:18,170 --> 00:57:21,630 >> E o que queremos dicir é que si esta chave existir, 962 00:57:21,630 --> 00:57:27,750 logo voltar o valor desta matriz, 963 00:57:27,750 --> 00:57:30,450 pero se a chave non existir, a continuación, regresar unha cadea en branco. 964 00:57:30,450 --> 00:57:32,150 Esta é a característica que queremos aquí. 965 00:57:32,150 --> 00:57:34,690 Queremos comprobar se a chave existe antes de acceder á matriz, 966 00:57:34,690 --> 00:57:36,580 e, por sorte, o suficiente, 967 00:57:36,580 --> 00:57:38,570 Kohana tamén nos dá unha función auxiliar para iso. 968 00:57:38,570 --> 00:57:41,040 Teñen todo este conxunto de funcións 969 00:57:41,040 --> 00:57:43,660 baixo o nome de ARR, abreviación de matriz, 970 00:57:43,660 --> 00:57:45,800 e eles teñen unha función chamada "get" 971 00:57:45,800 --> 00:57:48,690 e pode pasar na matriz, 972 00:57:48,690 --> 00:57:50,740 e pode pasar o nome da chave. 973 00:57:50,740 --> 00:57:54,330 Entón, basicamente, o que vai facer é que vai obter a clave, 974 00:57:54,330 --> 00:57:56,470 pero se esa clave non existir na matriz, 975 00:57:56,470 --> 00:58:00,900 a continuación, el pode voltar en branco, ou tamén podemos especificar un patrón, eu creo, 976 00:58:00,900 --> 00:58:03,500 que é bo. 977 00:58:09,740 --> 00:58:13,150 Agora, se facemos o mesmo de novo, 978 00:58:13,150 --> 00:58:15,970 entón ve agora funciona na primeira vez, 979 00:58:15,970 --> 00:58:18,080 e de novo, se escribir algo aleatoria 980 00:58:18,080 --> 00:58:23,210 e tentar presentar, a continuación, el permanece alí. 981 00:58:23,210 --> 00:58:31,640 >> E eu creo que eu tamén podo amosar-lle como engadir un patrón moi rapidamente. 982 00:58:31,640 --> 00:58:36,140 Que podemos facer en primeiro lugar é que podemos engadir unha nova exhibición chamada "template.php" 983 00:58:36,140 --> 00:58:38,890 dentro do cartafol Views, 984 00:58:38,890 --> 00:58:44,730 eo que vou facer é que eu vou imprimir algo chamado "contido" 985 00:58:44,730 --> 00:58:49,130 cal será o meu contido principal. 986 00:58:49,130 --> 00:58:51,380 E quizais ben no fondo eu vou engadir, por exemplo, 987 00:58:51,380 --> 00:58:53,340 copyright. 988 00:58:53,340 --> 00:58:56,150 [Pregunta estudante inaudível] 989 00:58:56,150 --> 00:58:58,050 [Brandon Liu] Quizais este é un modelo moi básico que quero usar. 990 00:58:58,050 --> 00:59:02,840 Eu quero ter un cartafol cos meus dereitos de autor en cada páxina, 991 00:59:02,840 --> 00:59:05,560 e agora o que eu vou facer o meu controlador 992 00:59:05,560 --> 00:59:07,740 agora, en vez de dicir, "esténdese Controller" 993 00:59:07,740 --> 00:59:11,870 Eu vou dicir: "se estende Controller_Template" 994 00:59:11,870 --> 00:59:15,890 e agora, en vez de dicir, "corpo de resposta é igual a este punto de vista," 995 00:59:15,890 --> 00:59:24,110 Eu vou dicir: "este contido modelo -" 996 00:59:24,110 --> 00:59:27,690 e eu creo - podo poñer un sinal de igualdade? 997 00:59:27,690 --> 00:59:32,710 Eu esquezo. Si, eu penso así. 998 00:59:32,710 --> 00:59:37,710 E agora eu definir esa variable contido para igualar a vista. 999 00:59:37,710 --> 00:59:40,960 Eu podo facer o mesmo aquí. 1000 00:59:49,620 --> 00:59:57,170 E agora, se eu actualizar, podes ver agora, este autor se engade alí, 1001 00:59:57,170 --> 01:00:00,350 e só facer algúns post ao chou 1002 01:00:00,350 --> 01:00:06,760 e despois, de novo, podes ver que o dereito de autor é na parte inferior da páxina. 1003 01:00:06,760 --> 01:00:10,730 >> Grande. Isto é todo o que eu quería amosar para vós. 1004 01:00:10,730 --> 01:00:14,970 [Aplausos] 1005 01:00:14,970 --> 01:00:18,950 Algunha pregunta? 1006 01:00:18,950 --> 01:00:21,000 [CS50.TV]