1 00:00:00,000 --> 00:00:02,150 >> [Seminar] [Kohana: Lahka PHP Framework] 2 00:00:02,150 --> 00:00:04,000 [Brandon Liu] [Harvard University] 3 00:00:04,000 --> 00:00:07,270 [To je CS50.] [CS50.TV] 4 00:00:07,270 --> 00:00:09,130 >> Pozdravljeni vsi skupaj. Moje ime je Brandon. 5 00:00:09,130 --> 00:00:11,000 Jaz sem junior tu na akademiji tem računalništva, danes bomo govorili o 6 00:00:11,000 --> 00:00:14,460 Kohana, ki je okvir PHP razvoj spletnih. 7 00:00:14,460 --> 00:00:17,260 Danes se bo živo kodiranje seminar, 8 00:00:17,260 --> 00:00:21,000 tako da sem v bistvu dogaja, da preživijo 5-10 minut razloži, kaj Kohana je, 9 00:00:21,000 --> 00:00:25,000 in potem sem dobesedno bo za izgradnjo super preprost blog 10 00:00:25,000 --> 00:00:28,570 za vas tukaj dobesedno iz nič. 11 00:00:28,570 --> 00:00:32,229 Mi bomo za prenos kode na spletni strani Kohana, 12 00:00:32,229 --> 00:00:35,000 in bomo začeli graditi blog, in upajmo, da bo to zelo poučna 13 00:00:35,000 --> 00:00:37,000 saj boste videli, morda bom mogoče naredil nekaj napak, 14 00:00:37,000 --> 00:00:39,000 in boste me videli opomore od njih, 15 00:00:39,000 --> 00:00:42,040 ali pa boš videl mojega miselnega procesa, kot sem graditi skozi ta blog, 16 00:00:42,040 --> 00:00:44,000 in medtem, boste tudi dobili seznanjeni z okvirom sama. 17 00:00:44,000 --> 00:00:48,000 Upajmo, da bo to zelo poučna vaja. 18 00:00:48,000 --> 00:00:51,370 >> Najprej, kaj točno je okvir? 19 00:00:51,370 --> 00:00:54,000 Če ste bili ob CS50 doslej niste zares sodelovali s katerim koli 20 00:00:54,000 --> 00:00:56,000 okviri še, in stvar je to. 21 00:00:56,000 --> 00:01:00,000 Verjetno ste naredili 1 izdelava spletnih strani pset že, 22 00:01:00,000 --> 00:01:03,000 in recimo, da boste še naprej graditi spletnih strani in vodi izgradnjo spletnih strani. 23 00:01:03,000 --> 00:01:05,000 Boste začeli opažati nekaj stvari. 24 00:01:05,000 --> 00:01:07,000 Prva stvar, ki jo boste opazili, da ste verjetno delaš iste stvari 25 00:01:07,000 --> 00:01:09,150 znova in znova ves čas, 26 00:01:09,150 --> 00:01:13,000 stvari, kot so čiščenje vhodnih podatkov uporabnika, 27 00:01:13,000 --> 00:01:17,250 stvari, kot so organiziranje datotek na določen način. 28 00:01:17,250 --> 00:01:19,000 Druga stvar, ki jo bom verjetno tudi opazili, da se vaša koda 29 00:01:19,000 --> 00:01:21,000 lahko začne, da postane zelo, zelo grdo, 30 00:01:21,000 --> 00:01:24,000 in lahko pustite grdo in samo še zelo težko jo ohranja, 31 00:01:24,000 --> 00:01:26,000 ali pa se boste lahko začeli strukturirati kodo in zaradi česar je modularna 32 00:01:26,000 --> 00:01:28,510 na določene načine, da bi bilo več vzdrževati. 33 00:01:28,510 --> 00:01:31,020 >> To je, če web okviri v bistvu prišel noter 34 00:01:31,020 --> 00:01:33,680 Ti ljudje, ki so zgradili veliko spletnih strani, ki jih je povedal, 35 00:01:33,680 --> 00:01:35,820 "Mi ne potrebujemo redo to vsak čas gradimo na spletni strani." 36 00:01:35,820 --> 00:01:39,050 "Zakaj ne bi le, da paket, ki počne vse te stvari za vas 37 00:01:39,050 --> 00:01:41,250 vsak čas želite zgraditi spletno stran? " 38 00:01:41,250 --> 00:01:43,030 In tako, da, ko bo novo spletno stran, 39 00:01:43,030 --> 00:01:45,880 se osredotočite samo na to, kaj točno to posebno spletno stran je približno. 40 00:01:45,880 --> 00:01:48,630 Vam ni treba ponavljati vse različne konfiguracije 41 00:01:48,630 --> 00:01:53,070 in ločevanje oznak in reportaža koda 42 00:01:53,070 --> 00:01:56,180 da ste pogosto storiti, ko delaš spletne strani. 43 00:01:56,180 --> 00:01:59,410 Ideja je, da okvir vam omogoča pisanje kode na višji ravni 44 00:01:59,410 --> 00:02:01,030 ne da bi morali skrbeti za podrobnosti, na nižji ravni. 45 00:02:01,030 --> 00:02:03,670 Detajl na nižji ravni bi bilo nekaj podobnega 46 00:02:03,670 --> 00:02:07,250 , ki se ukvarjajo s čiščenjem vhodne podatke uporabnikov. 47 00:02:07,250 --> 00:02:09,320 To je nekaj, kar ne bi bilo res treba skrbeti. 48 00:02:09,320 --> 00:02:12,370 Vi bi se morali osredotočiti na to, kaj vaše spletne dodelitev dejansko gre. 49 00:02:12,370 --> 00:02:14,790 Odpravlja veliko boiler kode. 50 00:02:14,790 --> 00:02:16,640 To je arhitektura za vaš projekt. 51 00:02:16,640 --> 00:02:18,680 >> Najbolj priljubljen bi bilo Model-View-Controller, 52 00:02:18,680 --> 00:02:20,380 katerih bom govoril o na sekundo. 53 00:02:20,380 --> 00:02:22,790 In veliko krat ti okviri poosebljajo niz postopkov, 54 00:02:22,790 --> 00:02:25,750 Pravila in najboljše prakse za vas, da uporabite 55 00:02:25,750 --> 00:02:28,190 tako da, ko sprejme okvir spletni 56 00:02:28,190 --> 00:02:30,050 moraš napisati svojo kodo na določen način, 57 00:02:30,050 --> 00:02:32,430 in to je ponavadi dogovorjen niz načel 58 00:02:32,430 --> 00:02:34,290 ki ga je skupnost, ki je splošno sprejeto, da je 59 00:02:34,290 --> 00:02:36,230 dober način za pisanje kode. 60 00:02:36,230 --> 00:02:38,260 To naredi kodo bolj vzdrževati, bolj uporabno, 61 00:02:38,260 --> 00:02:40,030 tako naprej in tako naprej. 62 00:02:40,030 --> 00:02:42,740 In končno, kar želim poudariti, o okvirih 63 00:02:42,740 --> 00:02:45,980 v primerjavi s knjižnicami je ta ideja o inverzija nadzora, in stvar je to. 64 00:02:45,980 --> 00:02:48,430 Razlika med knjižnica in okvira je, da s knjižnico 65 00:02:48,430 --> 00:02:51,990 ste še vedno pišete glavni program, 66 00:02:51,990 --> 00:02:54,460 in ste nekako sklicevanjem knjižnico 67 00:02:54,460 --> 00:02:56,810 in pozvala knjižnici narediti nekaj za vas. 68 00:02:56,810 --> 00:02:58,180 Razlika med knjižnico in okvir 69 00:02:58,180 --> 00:03:01,620 je, da je okvir začne s kontrolo, 70 00:03:01,620 --> 00:03:03,260 in se sklicuje na svojo kodo, 71 00:03:03,260 --> 00:03:06,190 tako da lahko pomislite, da je - to je razlog, zakaj se imenuje okvir - 72 00:03:06,190 --> 00:03:09,700 Okvir določa ta okvir in strukturo za kodo, 73 00:03:09,700 --> 00:03:11,320 in izpolnite v luknje, 74 00:03:11,320 --> 00:03:13,990 in to bo postal bolj očiten sekundo 75 00:03:13,990 --> 00:03:16,670 ko vidiš, da začnem pisati kodo v kontekstu okvira. 76 00:03:16,670 --> 00:03:19,130 Videli boste, da sem zapolnitev vrzeli, 77 00:03:19,130 --> 00:03:22,450 in okvir nekako nadzoruje vse gibljive kosov, 78 00:03:22,450 --> 00:03:27,420 in moram dati kosov na pravih mestih. 79 00:03:27,420 --> 00:03:29,360 >> Danes bomo govorili o Kohana, 80 00:03:29,360 --> 00:03:31,610 ki je eden od mnogih PHP okvirov. 81 00:03:31,610 --> 00:03:34,550 Obstajajo spletne okviri, in tam so tisti, v skoraj vsakem posameznem jeziku, 82 00:03:34,550 --> 00:03:38,330 in sem pobiral Kohana ker Kohana je nedvomno 83 00:03:38,330 --> 00:03:43,250 in na splošno priznana kot najlažji okvir PHP, da poberem. 84 00:03:43,250 --> 00:03:45,940 To je najbolj lahek. 85 00:03:45,940 --> 00:03:48,470 Obstajajo tudi druge tisti, tam zunaj, ki prihajajo z veliko, veliko več funkcij, 86 00:03:48,470 --> 00:03:51,590 vendar se nagibajo k bolj težko, da poberem. 87 00:03:51,590 --> 00:03:54,920 In končno, Kohana uporablja arhitekturo MVC. 88 00:03:54,920 --> 00:03:57,780 To je dovolj lahka, da lahko dobesedno zgraditi projekt 89 00:03:57,780 --> 00:03:59,620 Tukaj je tik pred vašimi očmi, in lahko precej 90 00:03:59,620 --> 00:04:02,780 sledite skupaj precej enostavno. 91 00:04:02,780 --> 00:04:04,420 >> Kaj je arhitektura MVC? 92 00:04:04,420 --> 00:04:06,540 To je kratica za Model-View-Controller, 93 00:04:06,540 --> 00:04:09,560 in morda, če menite o kodi pišete doslej 94 00:04:09,560 --> 00:04:11,280 za nekatere od vaših spletnih razvojnih psets 95 00:04:11,280 --> 00:04:14,710 boste lahko videli nekaj, ampak ponavadi, ko začnete pisati 96 00:04:14,710 --> 00:04:16,500 bolj zapletena spletna aplikacija, 97 00:04:16,500 --> 00:04:21,209 delitev med temi 3 segmente postaja vse bolj očitna. 98 00:04:21,209 --> 00:04:26,740 Jaz določeno MVC tu nekako kot dimnik, 99 00:04:26,740 --> 00:04:29,920 in pogosto boste slišali ljudi govoriti o kupih v razvoj spletnih strani, 100 00:04:29,920 --> 00:04:33,760 in to je za ponazoritev idejo, da 101 00:04:33,760 --> 00:04:37,510 vsak sloj, vsaka komponenta res poskušal le sporoči 102 00:04:37,510 --> 00:04:40,750 med 2 drugih komponent. 103 00:04:40,750 --> 00:04:44,550 Nekdo dostopa do vaše spletne strani, kot stranko ali brskalnika. 104 00:04:44,550 --> 00:04:48,870 Njihova interakcija z vašim programom skozi pogled kodo. 105 00:04:48,870 --> 00:04:50,500 Pogled koda komunicira s krmilnikom. 106 00:04:50,500 --> 00:04:52,400 Krmilnik komunicira z vzorcem, 107 00:04:52,400 --> 00:04:55,090 in model, komunicira z bazo podatkov SQL. 108 00:04:55,090 --> 00:04:59,670 In ni skokov vmes, če ste pravilno napisati svojo kodo. 109 00:04:59,670 --> 00:05:01,670 >> Kaj te stvari narediti? 110 00:05:01,670 --> 00:05:06,020 Model, v bistvu je del kode, ki se ukvarja z vašimi podatki. 111 00:05:06,020 --> 00:05:09,100 Vse, ki se ukvarja z zbirko podatkov, s predmeti, ki jih shranjujejo, 112 00:05:09,100 --> 00:05:11,280 ali pridobivanje te predmete v zbirki podatkov, 113 00:05:11,280 --> 00:05:13,450 to je vse ravna z modelom. 114 00:05:13,450 --> 00:05:15,290 Morda imate predmetov v zbirki podatkov. 115 00:05:15,290 --> 00:05:17,700 Bomo ustvarili model, ki ima opraviti z delovnimi mesti, 116 00:05:17,700 --> 00:05:19,760 Tako sporočilo je lahko nekaj atributov do nje. 117 00:05:19,760 --> 00:05:23,900 Morda imate funkcije okoli shranjevanje teh sporočil ali pridobivanje delovnih mest 118 00:05:23,900 --> 00:05:26,270 ali filtriranje delovnih mest in tako naprej in tako naprej, 119 00:05:26,270 --> 00:05:28,880 in to je vse kode, ki se ravna z modelom. 120 00:05:28,880 --> 00:05:31,780 Regulator je neke vrste logike aplikacij, 121 00:05:31,780 --> 00:05:37,910 in lahko gredo veliko različnih stvari v logike aplikacij. 122 00:05:37,910 --> 00:05:39,790 Če ste v pogovoru z drugačnim API, 123 00:05:39,790 --> 00:05:42,310 da se lahko, če imate opravka z logiko aplikacije. 124 00:05:42,310 --> 00:05:47,990 Če ste poskušali pripeljati na podatke iz več različnih modelov 125 00:05:47,990 --> 00:05:51,540 in so jih kombinira na nek način, da lahko pogosto ravna s krmilnikom. 126 00:05:51,540 --> 00:05:53,820 Na primer, na Facebook, če ste prijatelj je nekdo, 127 00:05:53,820 --> 00:05:58,500 potem morda, da akt o ustanovitvi to razmerje 128 00:05:58,500 --> 00:06:00,490 se lahko stori s krmilnikom. 129 00:06:00,490 --> 00:06:04,350 >> In končno, pogled je koda, ki se ustvarjajo tisto, kar dejansko videli. 130 00:06:04,350 --> 00:06:07,410 Veliko krat Mislim, da v CS50 psets 131 00:06:07,410 --> 00:06:10,050 ti si res ne spodbujajo fantje ločiti teh 3 stvari. 132 00:06:10,050 --> 00:06:12,430 Verjetno boste imeli to veliko, dolgo datoteko, kjer je na vrhu 133 00:06:12,430 --> 00:06:15,130 naredite nekaj SQL poizvedbo in morda narediti nekatere obdelave 134 00:06:15,130 --> 00:06:17,020 na podatke, ki jih pridobi iz zbirke podatkov, 135 00:06:17,020 --> 00:06:19,370 in potem imate vse svoje HTML na dnu. 136 00:06:19,370 --> 00:06:22,840 In morda boste ugotovili, da je, kot ste ustvarili več in več strani 137 00:06:22,840 --> 00:06:25,790 da boste imeli nekaj kode ponovitev, in tudi, 138 00:06:25,790 --> 00:06:29,600 Stvar je datoteka postane zelo velika in dolga 139 00:06:29,600 --> 00:06:32,370 in postane okoren za upravljanje. 140 00:06:32,370 --> 00:06:34,500 Razlog, zakaj je MVC tako tudi obravnavati 141 00:06:34,500 --> 00:06:36,120 je zaradi številnih razlogov. 142 00:06:36,120 --> 00:06:38,110 Prva stvar, ki je nekaj, kar se imenuje ločitev skrbi 143 00:06:38,110 --> 00:06:40,370 kar je ideja, da ko imate - 144 00:06:40,370 --> 00:06:43,520 v najboljšem primeru 1. del kode je treba storiti, 1 stvar in to res dobro, 145 00:06:43,520 --> 00:06:47,210 in ne bi smeli združiti koščke kode, ki naredijo raznolike stvari. 146 00:06:47,210 --> 00:06:49,230 Na primer, poglejte kodo in vzorčno kodo, 147 00:06:49,230 --> 00:06:51,040 ne res, da so povezani. 148 00:06:51,040 --> 00:06:53,290 Nimajo biti v isti datoteki, tako da, če lahko, jih ločite od 149 00:06:53,290 --> 00:06:55,300 tako da je enostaven za vzdrževanje. 150 00:06:55,300 --> 00:06:57,130 >> Druga stvar je koda ponovno. 151 00:06:57,130 --> 00:06:59,770 Morda boste sami pišete isto poizvedbo SQL ali delaš 152 00:06:59,770 --> 00:07:03,060 podobna vprašanja, ki se lahko načrpane v 1 funkcijo, 153 00:07:03,060 --> 00:07:05,440 in to je ideja modelov in nadzorniki, 154 00:07:05,440 --> 00:07:09,690 jo imajo v ločeni funkciji, ki jo je mogoče ponovno uporabiti v različnih krajih v vašem projektu. 155 00:07:09,690 --> 00:07:12,420 In na koncu, ki je vezana na sušenje kodo, 156 00:07:12,420 --> 00:07:14,700 ali pa se ne ponavljajo, ne ponavljaj se. 157 00:07:14,700 --> 00:07:18,090 To je zelo razumljivo v razvoju. 158 00:07:18,090 --> 00:07:20,110 Kadarkoli lahko, da ne želite, da se ponavljam, ker če ste sami ponoviti, 159 00:07:20,760 --> 00:07:23,400  to je veliko dražji za vzdrževanje. 160 00:07:23,400 --> 00:07:26,040 Če želite spremeniti 1 stvar, boste morali spremeniti povsod, 161 00:07:26,040 --> 00:07:30,230 in ki vodi do napak, in to je grozno. 162 00:07:30,230 --> 00:07:32,010 >> V redu. 163 00:07:32,010 --> 00:07:37,270 Kakšna vprašanja o Kohana sploh? 164 00:07:37,270 --> 00:07:39,200 Super. 165 00:07:39,200 --> 00:07:42,300 Zdaj bomo, da se potopite v živo kodiranje seji, 166 00:07:42,300 --> 00:07:48,050 in upajmo, da bo šlo vse dobro. 167 00:07:57,200 --> 00:08:00,050 Jaz bom v bistvu izgradnjo te spletne strani 168 00:08:00,050 --> 00:08:03,910 na enem od mojih oddaljenih strežnikih, in na ta način vidva lahko tudi 169 00:08:03,910 --> 00:08:06,310 glej spletno stran in dostop do spletne strani, 170 00:08:06,310 --> 00:08:10,990 in tudi okolje je bolje konfiguriran kot moj oddaljenem računalniku, 171 00:08:10,990 --> 00:08:14,580 saj teče Linux namesto OS X. 172 00:08:14,580 --> 00:08:16,260 Mi smo dobesedno bo začela. 173 00:08:16,260 --> 00:08:18,110 KohanaFramework.org. 174 00:08:18,110 --> 00:08:21,350 Grem prenesti kodo iz spletne strani. 175 00:08:21,350 --> 00:08:24,610 Grem kopirati link naslov, 176 00:08:24,610 --> 00:08:29,770 pojdi na mojem strežniku, jo naložite, 177 00:08:29,770 --> 00:08:33,000 in bom citat. 178 00:08:38,330 --> 00:08:45,710 >> [Študent] Kaj je največja si lahko besedilo? 179 00:08:45,710 --> 00:08:47,330 [Brandon Liu] Je zdaj bolje? 180 00:08:47,330 --> 00:08:50,070 [Študent] Je to izvedljivo? >> [Brandon Liu] Ja, to je v redu. 181 00:08:50,070 --> 00:08:54,500 I prenesli ZIP datoteko in razpakirati, da v mapi Kohana, 182 00:08:54,500 --> 00:08:58,820 in bomo preimenuje CS50-Kohana, 183 00:08:58,820 --> 00:09:01,140 in greva noter 184 00:09:01,140 --> 00:09:03,610 Super. 185 00:09:03,610 --> 00:09:06,870 Tukaj lahko vidite kup različnih datotek. 186 00:09:06,870 --> 00:09:10,140 Večina od vas mogoče ignorirati - Ne bomo šli skozi vsako posamezno datoteko, ki je tu 187 00:09:10,140 --> 00:09:13,130 zaradi naših časovnih omejitev, 188 00:09:13,130 --> 00:09:16,310 ampak na splošno, ko namestite Kohana, je prva stvar, ki jo storite 189 00:09:16,310 --> 00:09:23,210 se greš v imenik, 190 00:09:23,210 --> 00:09:26,050 in boste v bistvu narediti nekaj okoljskih preskusov in drugih malenkosti 191 00:09:26,050 --> 00:09:28,640 da se prepričajte, da je vaše okolje pravilno nastavljen za zagon Kohana 192 00:09:28,640 --> 00:09:31,450 in se prepričajte, da je vse v redu. 193 00:09:31,450 --> 00:09:35,510 Ogledate si lahko večina stvari mimo, ampak na splošno vedno vodijo v to 1 problem 194 00:09:35,510 --> 00:09:38,180 kjer se pritožuje, da je nekaj imenik ni zapisljiv, 195 00:09:38,180 --> 00:09:40,410 in da je zaradi nekaterih dovoljenj. 196 00:09:40,410 --> 00:09:43,080 Ne vem, koliko so fantje spoznali dovoljenja datotek v CS50, 197 00:09:43,080 --> 00:09:47,920 ampak če boste to storili web razvoj, ste tekoč teči v to vprašanje veliko. 198 00:09:47,920 --> 00:09:58,340 Grem, da bi bilo mogoče pisati 199 00:09:58,340 --> 00:10:03,390 in mislim, da moram tudi - tam gremo. 200 00:10:03,390 --> 00:10:07,040 >> Ok, zdaj lahko vidite vse, kar je minilo, 201 00:10:07,040 --> 00:10:10,000 zdaj pa vam bo povedal, da preimenujete datoteko install.php. 202 00:10:10,000 --> 00:10:15,630 Grem, da se premaknete datoteko install.php, da installed.php, 203 00:10:15,630 --> 00:10:19,610 in zdaj, če sem osvežiti, 204 00:10:19,610 --> 00:10:22,810 to mi daje neko napako, in to je, če debugging pride noter 205 00:10:22,810 --> 00:10:25,610 To je, kjer si lahko ogledate, kaj se dejansko dogaja, da se zgodi. 206 00:10:25,610 --> 00:10:28,460 Stvar je v tem, privzeto Kohana predpostavlja, da 207 00:10:28,460 --> 00:10:31,480 vaš projekt je v korenski imenik vaše domene, 208 00:10:31,480 --> 00:10:35,920 tako da je pričakoval, da bo na demo.brandonkliu.com. 209 00:10:35,920 --> 00:10:37,540 Moramo povedati, da je pravzaprav v podmapo. 210 00:10:37,540 --> 00:10:39,820 To je v podmapo imenovano CS50 Kohana. 211 00:10:39,820 --> 00:10:42,640 Stvar je v tem, da je napačno razlagal CS50-Kohana 212 00:10:42,640 --> 00:10:45,680 kot nekaj drugega, kar bom razložil v drugem. 213 00:10:45,680 --> 00:10:49,910 Ampak naj vam povem, da je to nekaj, kar je bilo pričakovati. 214 00:10:49,910 --> 00:10:53,700 Kaj bomo storili je, da smo šli v to mapo, imenovano bootstrap.php, 215 00:10:53,700 --> 00:10:59,260 ki je mapa konfiguracijo, kjer se veliko različnih stvari ustanovi. 216 00:10:59,260 --> 00:11:01,570 Odprem to. 217 00:11:01,570 --> 00:11:09,790 Potem pa ena od prvih stvari, bom storiti, je spremeniti časovni pas. 218 00:11:09,790 --> 00:11:13,910 >> In potem poglejmo. 219 00:11:13,910 --> 00:11:15,180 Aha! Tukaj. 220 00:11:15,180 --> 00:11:18,690 Obstaja kup različnih konfiguracijskih izrekov tukaj, 221 00:11:18,690 --> 00:11:21,700 ampak ena iščem je ta stvar imenovano bazo URL, 222 00:11:21,700 --> 00:11:24,570 in privzeto dobim nastavljena na Kohana, 223 00:11:24,570 --> 00:11:29,020 ampak bom za spremembo, da bi CS50-Kohana, 224 00:11:29,020 --> 00:11:32,880 in mislim, da bi morali to popraviti. 225 00:11:32,880 --> 00:11:34,150 Ja, super. 226 00:11:34,150 --> 00:11:39,530 Privzeto je, da vidimo, da je to delovalo, pravi: "Hello World". 227 00:11:39,530 --> 00:11:42,930 Od kod se je vzela? Kako smo prišli do Hello svetu? 228 00:11:42,930 --> 00:11:47,640 Kje točno je oznaka, ki v resnici napisal? 229 00:11:47,640 --> 00:11:50,240 Da bi razumeli, da bom predstavil ta koncept se imenuje usmerjanje. 230 00:11:50,240 --> 00:11:52,590 Precej vse spletne okvire koncept imenovano usmerjanje, 231 00:11:52,590 --> 00:11:57,230 , ki je del programske opreme, ki bo karto določeno URL 232 00:11:57,230 --> 00:12:01,550 na določen del kode v vašem okvira. 233 00:12:01,550 --> 00:12:07,510 Na primer, če imate nekaj URL in greš do neke URL kot foo.com / blog / all 234 00:12:07,510 --> 00:12:11,170 kaj potem okvir bo naredil - ali vsaj kaj Kohana bo naredil - 235 00:12:11,170 --> 00:12:15,540 se dogaja, da bi našli skupino, imenovano krmilnik blog, 236 00:12:15,540 --> 00:12:18,720 in to se dogaja, da zaženete funkcijo imenovan dejanje vse. 237 00:12:18,720 --> 00:12:20,160 Vem, da sem govoril o razredu in funkcije, 238 00:12:20,160 --> 00:12:23,860 In vem, da fantje niso zajeti razredov in funkcij 239 00:12:23,860 --> 00:12:26,470 V CS50 še, ampak za zdaj, 240 00:12:26,470 --> 00:12:29,800 lahko si misliš razrede, kot samo skupino funkcij, 241 00:12:29,800 --> 00:12:32,900 način združevanja funkcij skupaj. 242 00:12:32,900 --> 00:12:37,690 To je res vse, kar morate vedeti. 243 00:12:37,690 --> 00:12:43,120 >> Zdaj, če se ozremo na našo strukturo map, 244 00:12:43,120 --> 00:12:47,110 znotraj mape aplikacij obstaja še ena mapa razredi, 245 00:12:47,110 --> 00:12:49,200 in druge mape se imenujejo Controller in model. 246 00:12:49,200 --> 00:12:52,530 Če pogledaš v notranjosti mape Controller, 247 00:12:52,530 --> 00:12:56,330 smo videli, da je datoteka z imenom Dobrodošli, 248 00:12:56,330 --> 00:13:00,370 in si lahko ogledate tukaj je razred imenuje nadzornika Dobrodošli, 249 00:13:00,370 --> 00:13:02,340 in je funkcija imenuje akcijski indeks 250 00:13:02,340 --> 00:13:06,360 in kaj počne, je, da določa telo vaš odziv na Hello World. 251 00:13:06,360 --> 00:13:08,730 To je, če se koda napisano. 252 00:13:08,730 --> 00:13:11,610 Drugo vprašanje je, no, nisem šel k 253 00:13:11,610 --> 00:13:13,680 bla, bla, bla, / welcome / indeks. 254 00:13:13,680 --> 00:13:16,250 Kako sem končal tukaj? 255 00:13:16,250 --> 00:13:20,410 No, to je preprosto zato, ker 256 00:13:20,410 --> 00:13:22,410 tu na dnu našega bootstrap datoteke 257 00:13:22,410 --> 00:13:24,550 kjer smo postavili naše poti 258 00:13:24,550 --> 00:13:26,570 lahko vidite, da so postavili nekaj privzetih vrednosti. 259 00:13:26,570 --> 00:13:28,990 Privzeta krmilnik Dobrodošli. Privzeto dejanje je indeks. 260 00:13:28,990 --> 00:13:31,600 Zato, ko smo dal ničesar notri samodejno odšel v pozdravnem krmilnik 261 00:13:31,600 --> 00:13:33,940 in indeks delovanje. 262 00:13:33,940 --> 00:13:37,460 >> Vse smisla doslej? 263 00:13:37,460 --> 00:13:40,850 Sedaj lahko naredi več kot le pojdite na nadzornika 264 00:13:40,850 --> 00:13:43,670 in specifični ukrepi. 265 00:13:43,670 --> 00:13:48,480 Lahko prenese tudi na parametre krmilnika. 266 00:13:48,480 --> 00:13:56,390 Samo kot primer, 267 00:13:56,390 --> 00:14:04,070 Jaz bom dodal še en ukrep za to napravo, da ti pokažem. 268 00:14:04,070 --> 00:14:09,130 Recimo to dejanje Echo, saj se dogaja, da vam povem, karkoli ga dal, 269 00:14:09,130 --> 00:14:17,510 in tako sem v bistvu dogaja, da zgrabite 270 00:14:17,510 --> 00:14:20,960 parameter, ki se dogaja, da se pošlje po meni, da program usmerjanja, 271 00:14:20,960 --> 00:14:24,440 in kot lahko vidite tukaj, 272 00:14:24,440 --> 00:14:28,440 ta vrstica tukaj, lahko vidite, da 273 00:14:28,440 --> 00:14:31,270 To v bistvu pomeni, da imate krmilnik, in imate /, 274 00:14:31,270 --> 00:14:33,480 in imate dejanje, in imate še /, 275 00:14:33,480 --> 00:14:39,140 in da se dogaja, da se parametri, in ker imamo to ime ID 276 00:14:39,140 --> 00:14:42,450 v kotnih oklepajih, kar pomeni, da smo poimenovanje tega parametra ID. 277 00:14:42,450 --> 00:14:45,490 Kasneje v mojo kodo krmilnika, če želim, da zgrabite imajo za ta parameter, 278 00:14:45,490 --> 00:14:51,790 Lahko uporabite kodo sem napisal, poiščite parameter z imenom ID. 279 00:14:51,790 --> 00:14:59,290 To je tisto, kar sem tu in bom vrnil in rekel: 280 00:14:59,290 --> 00:15:07,090 "Rekel si," da. 281 00:15:07,090 --> 00:15:10,760 In tako zdaj, če grem na naši spletni strani, 282 00:15:10,760 --> 00:15:19,550 Grem na cs50-kohana/welcome/echo/Helloooo-- 283 00:15:19,550 --> 00:15:21,420 oh, to je res. 284 00:15:21,420 --> 00:15:23,930 Je 1. korak sem odšel ven. 285 00:15:23,930 --> 00:15:27,020 To je del žive kodiranja idejo. 286 00:15:27,020 --> 00:15:36,100 >> Tukaj je 1 stvar. Pa poglejmo. 287 00:15:36,100 --> 00:15:38,870 Torej običajno privzeto z veliko teh spletnih aplikacij 288 00:15:38,870 --> 00:15:42,820 morate vključiti to index.php stvar v vašem URL, 289 00:15:42,820 --> 00:15:46,410 ker je ideja index.php je neke vrste vstopno točko 290 00:15:46,410 --> 00:15:48,250 vaše vloge, ampak seveda, 291 00:15:48,250 --> 00:15:50,110 to je nekako nadležno, da imajo. 292 00:15:50,110 --> 00:15:53,790 Vi ne želite imeti index.php pojavijo v vašem URL, 293 00:15:53,790 --> 00:15:56,080 in precej vsak web okvir iz škatle 294 00:15:56,080 --> 00:15:58,440 ima ta index.php težave, 295 00:15:58,440 --> 00:16:03,370 in tako da boste morali sprejeti nekatere ukrepe, da bi lahko odstranili to. 296 00:16:03,370 --> 00:16:07,540 Zato v tem primeru 297 00:16:07,540 --> 00:16:11,450 kaj bomo storiti je, da bomo uporabili datoteko z imenom. htaccess, 298 00:16:11,450 --> 00:16:13,900 in to je nekaj, kar je specifično za spletni strežnik Apache, 299 00:16:13,900 --> 00:16:16,290 in lahko naredi stvari, kot Reportaža URL-jev 300 00:16:16,290 --> 00:16:19,350 in preusmeritev URL in tako naprej in tako naprej, 301 00:16:19,350 --> 00:16:24,280 in Kohana je dovolj prijazen, da predloži predloge. htaccess datoteke, ki jih lahko uporabite. 302 00:16:24,280 --> 00:16:28,300 >> Kot lahko vidite, da je slika tam poklical example.htaccess, 303 00:16:28,300 --> 00:16:33,410 in bomo kopirali, da. htaccess. 304 00:16:33,410 --> 00:16:36,950 Bom odprl to in ga urediti, 305 00:16:36,950 --> 00:16:40,840 in v bistvu je pa cel kup različnih stvari. 306 00:16:40,840 --> 00:16:45,320 Ključna postavka, boste morda želeli pogledati, je tukaj. 307 00:16:45,320 --> 00:16:49,840 Ideja je, da ta vzpostavlja pravilo, ki pravi, 308 00:16:49,840 --> 00:16:56,400 "V redu, kar vnesete v, prepend index.php na to." 309 00:16:56,400 --> 00:16:58,710 Vidite lahko, da. 310 00:16:58,710 --> 00:17:00,370 . * Stoji za nič, ujemajo ničesar, 311 00:17:00,370 --> 00:17:03,300 in drugi del je index.php / $ 0, 312 00:17:03,300 --> 00:17:07,410 in $ 0 se nanaša na vse, kar je bilo prej ujemajo. 313 00:17:07,410 --> 00:17:09,500 Ali to smiselno? 314 00:17:09,500 --> 00:17:12,190 Ampak res ključna stvar, ki jo želite spremeniti, spremeniti to reportaža osnove, 315 00:17:12,190 --> 00:17:14,300 ki je osnovni naslov. 316 00:17:14,300 --> 00:17:17,780 To nekako predpostavlja, kjer delate z. 317 00:17:17,780 --> 00:17:22,560 Bom dodati CS50 Kohana na to, 318 00:17:22,560 --> 00:17:26,530 in na ta način zdaj, če sem odstraniti index.php, 319 00:17:26,530 --> 00:17:32,110 Sistem bi moral delovati, in bom dodati nekaj številk 320 00:17:32,110 --> 00:17:36,380 da ti pokažem, da je res naredil delo. 321 00:17:36,380 --> 00:17:38,130 Sliši se dobro. 322 00:17:38,130 --> 00:17:40,260 >> Kakšna vprašanja? 323 00:17:40,260 --> 00:17:42,300 [Študent] Kako je vedeti, da bo 123? 324 00:17:42,300 --> 00:17:44,120 Je to argument? 325 00:17:44,120 --> 00:17:46,560 Točno tako. Lahko si o njej mislijo tako kot argument. 326 00:17:46,560 --> 00:17:52,410 Ampak čudno, čeprav je, da način Kohana to počne 327 00:17:52,410 --> 00:17:54,910 se tega ne stori natanko tako kot argument. 328 00:17:54,910 --> 00:17:56,930 Moraš ga zgrabi, kot je ta. 329 00:17:56,930 --> 00:18:01,030 Moraš zgrabi zahtevek predmet in prosi za parameter, ki je z imenom ID, 330 00:18:01,030 --> 00:18:03,240 in da ID Ime izvira iz tega bootstrap datoteke 331 00:18:03,240 --> 00:18:06,990 da sem že prej pokazala, in ime ID je bilo v teh kotnikov, 332 00:18:06,990 --> 00:18:11,580 in to je, kako ste zgrabi te parametre. 333 00:18:11,580 --> 00:18:14,010 Super. 334 00:18:14,010 --> 00:18:17,550 Še kakšno vprašanje? 335 00:18:17,550 --> 00:18:20,500 Kot sem rekel, krmilniki obvladujejo aplikacijsko logiko, 336 00:18:20,500 --> 00:18:22,980 tako da je 1 primer, kjer lahko vidite that - 337 00:18:22,980 --> 00:18:24,830 to je zelo osnovna, vendar je še vedno logika aplikacije, 338 00:18:24,830 --> 00:18:27,980 Ideja oprijemalne parameter in ustvarjanje nove niz 339 00:18:27,980 --> 00:18:31,920 , ki pravi: "Rekel si bla," in potem pljuvanje, da vrnem k tebi. 340 00:18:31,920 --> 00:18:34,030 In na splošno, kar morate storiti, je, da ustvarite različne krmilnike. 341 00:18:34,030 --> 00:18:36,450 Sami ustvarite ločene krmilnikov za različne dele vaše spletne strani. 342 00:18:36,450 --> 00:18:38,160 >> Danes se bomo, da bi zelo preprosto spletno stran, 343 00:18:38,160 --> 00:18:40,420 in to bo zelo osnovni blog. 344 00:18:40,420 --> 00:18:43,780 Bomo narediti nov krmilnik samo za delovna mesta v blog. 345 00:18:43,780 --> 00:18:47,060 Ampak potem, če bi bil jaz dodate tudi komentarje na blog post, 346 00:18:47,060 --> 00:18:50,140 potem bi verjetno želeli, da bi nov krmilnik za te pripombe. 347 00:18:50,140 --> 00:18:53,380 Če sem hotel dodati uporabnike, bi verjetno dodali nov krmilnik za tiste uporabnike, 348 00:18:53,380 --> 00:18:57,000 in na splošno, ideja je, da vsakič, ko imate nov model, 349 00:18:57,000 --> 00:18:59,630 Novi podatki predmet, ki ste se ukvarjajo z, 350 00:18:59,630 --> 00:19:02,970 imate enotnega nadzornika za tega podatkovnega objekta. 351 00:19:02,970 --> 00:19:04,370 Danes smo samo delali z 1 podatkovnega objekta, 352 00:19:04,370 --> 00:19:06,250 in da se dogaja, da se delovna mesta, 353 00:19:06,250 --> 00:19:08,710 in tako si lahko zamislite podatkovnih objektov, kot ustreza tabel. 354 00:19:08,710 --> 00:19:12,160 Običajno ima vsak Tabela ustreza 1 vrsto podatkovnega objekta, 355 00:19:12,160 --> 00:19:15,160 tako da bo po tabela ima 1 prispevek modela, 356 00:19:15,160 --> 00:19:18,230 ki bo imela 1 prispevek krmilnik, ki ustreza tisti, 357 00:19:18,230 --> 00:19:22,190 in enako za komentarje, enaka za uporabnike, in tako naprej in tako naprej. 358 00:19:22,190 --> 00:19:24,070 In to je splošno pravilo palca. 359 00:19:24,070 --> 00:19:27,460 Tam se bodo posebni primeri, v katerih boste lahko razlikujejo od tega, 360 00:19:27,460 --> 00:19:29,300 ampak 90% časa, ki je tisto, kar boste počeli, 361 00:19:29,300 --> 00:19:32,810 in ti bom pokazal, da je tisto, kar bomo danes počeli. 362 00:19:32,810 --> 00:19:35,490 1. več koncept, preden se spustimo nazaj v kodi, 363 00:19:35,490 --> 00:19:37,710 Ta ideja objektno relacijske preslikave. 364 00:19:37,710 --> 00:19:41,200 >> Ste vi že storili spletno razvojno pset, 365 00:19:41,200 --> 00:19:43,820 in videli ste, da ste jih naredili poizvedbo SQL, 366 00:19:43,820 --> 00:19:46,510 in karkoli se vrne v vas, so vrstice. 367 00:19:46,510 --> 00:19:50,040 Boste dobili te vrstice, in ti indeks, ki jim jih nekaj ime, 368 00:19:50,040 --> 00:19:55,480 ime stolpca in tabele 369 00:19:55,480 --> 00:19:57,630 in to je, kako delate z njim, 370 00:19:57,630 --> 00:19:59,290 in je lahko malce nerodno. 371 00:19:59,290 --> 00:20:01,810 Ampak tudi, če imate odnose v zbirki podatkov, 372 00:20:01,810 --> 00:20:05,280 kot na primer, če imam pripombe in prispevke, 373 00:20:05,280 --> 00:20:11,240 potem pa želim, da zgrabite matično delovno mesto komentarja. 374 00:20:11,240 --> 00:20:14,350 Če uporabim samo vrstice v SQL, nato pa vse, kar lahko dobite, je ID 375 00:20:14,350 --> 00:20:19,310 matičnega delovnega mesta in ni dejanski sama tabla. 376 00:20:19,310 --> 00:20:21,680 Toda, ko smo kodiranja, kaj dejansko želimo je, da dejansko zgrabite 377 00:20:21,680 --> 00:20:23,550  staršev se objavljajo včasih. 378 00:20:23,550 --> 00:20:25,730 Kaj predmet relacijska preslikava pa je 379 00:20:25,730 --> 00:20:29,480 je potrebno rezultate poizvedbe zbirke podatkov 380 00:20:29,480 --> 00:20:32,420 in ga postavi v objekte za vas, ki so veliko lepše delati z 381 00:20:32,420 --> 00:20:34,770 kot navaden nizi in vrstic. 382 00:20:34,770 --> 00:20:37,550 >> Na primer, sedaj, ko imam pripombo morda, 383 00:20:37,550 --> 00:20:40,900 in želim, da zgrabite svojo matično delovno mesto, 384 00:20:40,900 --> 00:20:43,440 in jaz morda komentar arrow post, 385 00:20:43,440 --> 00:20:45,230 potem bo to dejansko mi post predmet 386 00:20:45,230 --> 00:20:47,940 ustreza dejanskemu matično delovno mesto, ne le nekatere ID, 387 00:20:47,940 --> 00:20:52,210 ki bi sicer morali uporabiti in narediti še SQL poizvedbo, da zgrabite mesto, 388 00:20:52,210 --> 00:20:57,430 ki je okoren in nepotrebna. 389 00:20:57,430 --> 00:21:01,840 In poleg tega s preslikavo vse te podatkovne vrstice v objektih, 390 00:21:01,840 --> 00:21:03,760 lahko dodate tudi več funkcij za predmete, 391 00:21:03,760 --> 00:21:09,700 Tako, na primer, sem govoril o tem, kako so razredi v bistvu skupine funkcij. 392 00:21:09,700 --> 00:21:11,620 Lahko si o njej mislijo tako. 393 00:21:11,620 --> 00:21:15,290 Na primer, morda imam to objavo predmeta, 394 00:21:15,290 --> 00:21:17,830 in morda bi rad imel neko funkcijo v zvezi z njo 395 00:21:17,830 --> 00:21:20,300 da mi je v bistvu pove, je bil pred kratkim posted? 396 00:21:20,300 --> 00:21:23,570 Je bil objavljen v zadnjem tednu, drži ali ne? 397 00:21:23,570 --> 00:21:27,320 In to je funkcija mi lahko pritrdite na ta predmet, 398 00:21:27,320 --> 00:21:31,300 in to je res priročno, da ga imajo na istem mestu, 399 00:21:31,300 --> 00:21:33,820 in obstajajo številne različne funkcije, ki jih lahko ustvarite 400 00:21:33,820 --> 00:21:37,990 za te objekte, in to je res lepo, da se lahko pripne na razred, 401 00:21:37,990 --> 00:21:41,700 predmetu, ker se, če si imel vrstice, ki prihajajo iz zbirke podatkov, 402 00:21:41,700 --> 00:21:43,790 potem si ne morem priložiti nobene funkcije za to. 403 00:21:43,790 --> 00:21:47,850 To je dobesedno samo podatki. 404 00:21:47,850 --> 00:21:50,550 Vsa vprašanja o tem sploh? 405 00:21:50,550 --> 00:21:52,710 ORMs so zelo pogosti izdelava spletnih strani, 406 00:21:52,710 --> 00:21:56,330 in obstaja veliko različnih vrst ORMs, 407 00:21:56,330 --> 00:21:58,450 in Kohana ima svoj ORM. 408 00:21:58,450 --> 00:22:05,050 To je zelo osnovna, vendar boste dobili okus, kako izgleda. 409 00:22:05,050 --> 00:22:08,780 >> Pa ustvariti model za naše blog delovnih mest, 410 00:22:08,780 --> 00:22:12,350 in prva stvar, ki jo očitno morali storiti, je ustvariti dejansko tabelo 411 00:22:12,350 --> 00:22:16,680 v naši bazi podatkov, da bi dejansko shranjevanje naših podatkov za ta delovna mesta. 412 00:22:16,680 --> 00:22:19,260 Prva stvar, ki jo bom naredil je, pojdite na phpMyAdmin. 413 00:22:19,260 --> 00:22:21,410 Vidva pred uporablja phpMyAdmin? 414 00:22:21,410 --> 00:22:23,400 Ok, super, tako da vi že veste, kaj to je, 415 00:22:23,400 --> 00:22:32,200 in bom, da ustvarite novo tabelo, imenovano Kohana Sporočila, 416 00:22:32,200 --> 00:22:37,820 in to se dogaja, da se res preprosta. 417 00:22:37,820 --> 00:22:40,190 Jaz bom moral prijaviti nazaj noter 418 00:23:02,620 --> 00:23:04,640 Vse bomo storili danes, je imel avtor in telo, 419 00:23:04,640 --> 00:23:11,930 samo, da bo enostavno. 420 00:23:11,930 --> 00:23:15,620 Grem ustvariti tisto mizo, 421 00:23:15,620 --> 00:23:19,620 in zdaj imamo samo tabelo, ki predstavlja naše prispevke 422 00:23:19,620 --> 00:23:23,370 z 2 polji za našega avtorja in naše telo. 423 00:23:23,370 --> 00:23:26,290 Druga stvar, bom sedaj storiti je, 424 00:23:26,290 --> 00:23:29,820 nastaviti mojo spletno aplikacijo, tako da ve, kako se povezati z bazo podatkov, 425 00:23:29,820 --> 00:23:31,950 in to, še enkrat, je nekaj, kar boste morali storiti z vsemi spletnimi aplikacijami. 426 00:23:31,950 --> 00:23:34,790 Moraš mu povedati, uporabniško ime in geslo 427 00:23:34,790 --> 00:23:36,990 in ime baze in tako naprej in tako naprej 428 00:23:36,990 --> 00:23:40,000 da ugotovimo, kako dejansko povezavo z zbirko podatkov. 429 00:23:40,000 --> 00:23:58,710 >> V Kohana, imamo nekaj, kar ti modul zbirke podatkov, 430 00:23:58,710 --> 00:24:02,690 in v mapi konfiguracije imamo to mapo z imenom baze podatkov, 431 00:24:02,690 --> 00:24:07,330 in kot lahko vidite, obstaja kup nastavitev, morate nastaviti tukaj 432 00:24:07,330 --> 00:24:09,860 da je povedal, kaj je uporabniško ime in geslo 433 00:24:09,860 --> 00:24:13,110 za bazo podatkov, da bom lahko dejansko povezati z njim. 434 00:24:13,110 --> 00:24:15,010 In ker ne želim vama, da bi dejansko vedeli 435 00:24:15,010 --> 00:24:17,190 uporabniško ime in geslo moji zbirki podatkov, 436 00:24:17,190 --> 00:24:23,840 Imam datoteko, kjer sem že vse ustanovi, in bom, da kopirate in ga prilepite konec. 437 00:24:33,080 --> 00:24:36,870 Super. 438 00:24:36,870 --> 00:24:39,880 Ok. Mislim, da je vse konfiguracije moram storiti, 439 00:24:39,880 --> 00:24:41,070 ampak poglejmo. 440 00:24:41,070 --> 00:24:43,720 Mi bomo še naprej delajo v njem, in če se kaj sesuje, 441 00:24:43,720 --> 00:24:47,490 potem bomo to popraviti. 442 00:24:47,490 --> 00:24:51,830 Kaj bom storiti zdaj je, da bom ustvariti nov krmilnik. 443 00:24:51,830 --> 00:24:53,190 Ali dejansko, mi je žal. 444 00:24:53,190 --> 00:24:55,080 Najprej sem moral ustvariti nov model. 445 00:24:55,080 --> 00:25:01,620 Jaz bom ustvariti nov model, imenovan Post.php, 446 00:25:01,620 --> 00:25:12,440 in kaj bomo storili je, da bomo ga pokličete razred Model_Post. 447 00:25:12,440 --> 00:25:15,390 Get nekatere sintakso poudarjanje naprej, 448 00:25:15,390 --> 00:25:19,750 in tako, ko sem rekel, "se razteza ORM," ki je v bistvu 449 00:25:19,750 --> 00:25:21,210 nekaj več objektno programiranje, 450 00:25:21,210 --> 00:25:23,340 ki žal so fantje niso naučili v CS50 še ni, 451 00:25:23,340 --> 00:25:25,290 ampak to je precej enostavno, da poberem. 452 00:25:25,290 --> 00:25:27,950 To mi daje vse te dodatne funkcionalnosti, ki prihaja v tem ORM paketu, 453 00:25:27,950 --> 00:25:31,120 in tako sem dobil kup dodatnih funkcij in drugih malenkosti za brezplačno, 454 00:25:31,120 --> 00:25:34,810 ki boste videli malo v sekundi. 455 00:25:34,810 --> 00:25:37,670 >> Zdaj pravzaprav vse, kar morate storiti, je ustvariti ta razred. 456 00:25:37,670 --> 00:25:39,160 Saj sploh ne potrebujete, da bi funkcijo ali karkoli, 457 00:25:39,160 --> 00:25:41,770 vendar sem ustvaril razred, ki predstavlja tabelo, 458 00:25:41,770 --> 00:25:44,140 in ker sem razširiti to ORM razred, 459 00:25:44,140 --> 00:25:51,080 Sem dobil kup stvari zastonj, tako da za zdaj vam ni treba nastaviti kaj več navzgor. 460 00:25:51,080 --> 00:25:53,530 In zdaj, kaj bom storiti, je, da bom ustvariti nov krmilnik, 461 00:25:53,530 --> 00:25:58,480 ki bom ime blog.php, 462 00:25:58,480 --> 00:26:04,350 in bom, da bi kopirali več kot pozdravnem krmilnika 463 00:26:04,350 --> 00:26:11,950 tako da mi ni treba znova nekaj stvari, 464 00:26:11,950 --> 00:26:20,720 in zdaj moram preimenovati to. 465 00:26:20,720 --> 00:26:24,710 Kaj bom naredil, da test in se prepričajte, vse deluje ven, 466 00:26:24,710 --> 00:26:27,820 Grem, da zgrabite prvi post iz moje zbirke podatkov 467 00:26:27,820 --> 00:26:32,680 in tiskanje telo pošti na zaslonu. 468 00:26:32,680 --> 00:26:37,920 Da bi to dosegli, kaj bom storiti najprej se grem, da shranite objav 469 00:26:37,920 --> 00:26:48,770 spremenljivki kaj bomo storili, je - 470 00:26:48,770 --> 00:26:52,090 v Kohana kar morate storiti, je, da zgrabite post predmet 471 00:26:52,090 --> 00:26:55,380 to je nekako nerodno, ampak moraš narediti to stvar, imenovano ORM :: tovarne, 472 00:26:55,380 --> 00:26:57,750 nato pa se boste peljali v imenu modela, ki ga želite, 473 00:26:57,750 --> 00:27:00,490 in se vrne predmet ORM, ki predstavlja ta model. 474 00:27:00,490 --> 00:27:04,860 In potem, kot sem rekel, ko smo se podaljša ORM predmet, 475 00:27:04,860 --> 00:27:07,320 smo dobili vse te metode za brezplačno, tako na primer, 476 00:27:07,320 --> 00:27:09,200 smo dobili to novo funkcijo imenovano "našli vse," 477 00:27:09,200 --> 00:27:12,160 ki samodejno vrne vsako posamezno delovno mesto v zbirki podatkov, 478 00:27:12,160 --> 00:27:14,850 kar je zelo priročno. 479 00:27:14,850 --> 00:27:17,480 >> In zdaj v telesu se bom vrnil 480 00:27:17,480 --> 00:27:24,860 prvi post in se vrniti svoje telo. 481 00:27:24,860 --> 00:27:27,930 In seveda, moram ustvariti delovno mesto, 482 00:27:27,930 --> 00:27:31,880 tako da je vstaviti novo delovno mesto. 483 00:27:31,880 --> 00:27:37,870 Jaz bom rekel, "Brandon, moj prvi post." 484 00:27:37,870 --> 00:27:40,010 Super. 485 00:27:40,010 --> 00:27:45,910 In zdaj smo šli na blogih 486 00:27:45,910 --> 00:27:50,960 in če vse deluje dobro - oh, to je nekaj drugega neumna slika dovoljenje stvar znova. 487 00:27:50,960 --> 00:27:56,090 Počakaj 1 sekundo. To je neke vrste absurd. 488 00:28:06,700 --> 00:28:08,490 Takole. Ok. 489 00:28:08,490 --> 00:28:10,040 Popravil sem to dovoljenje problem. 490 00:28:10,040 --> 00:28:12,040 To je bil težaven, da ustvarite nekaj datotek in nekaj dnevnika, 491 00:28:12,040 --> 00:28:15,400 in dovoljenja, spet, niso bili pravilno nastavljen, tako da mi je uspelo 492 00:28:15,400 --> 00:28:18,320 zato te datoteke so bile pisati in izvršljiva 493 00:28:18,320 --> 00:28:21,090 tako da bi lahko dejansko prijavi na stvari. 494 00:28:21,090 --> 00:28:24,220 Zdaj pa mi je dal še eno izjemo rekel: "class ORM ni bilo mogoče najti" 495 00:28:24,220 --> 00:28:26,960 in to zato, ker sem pozabil še en korak. 496 00:28:26,960 --> 00:28:37,010 To je slabo. 497 00:28:37,010 --> 00:28:40,270 V datoteki mape bootstrap, so ti moduli tukaj, 498 00:28:40,270 --> 00:28:42,480 ki se lahko odločite, da omogočite ali onemogočite. 499 00:28:42,480 --> 00:28:44,340 To so kup različnih funkcij, ki se lahko odločite za uporabo 500 00:28:44,340 --> 00:28:46,180 v Kohana, ki je nekako lepo. 501 00:28:46,180 --> 00:28:49,090 >> Na primer, če imajo modul za preverjanje pristnosti 502 00:28:49,090 --> 00:28:51,170 , ki jo lahko uporabite za avtentikacijo uporabnikov. 503 00:28:51,170 --> 00:28:53,390 Imajo predpomnjenja modul, če želite izvajati 504 00:28:53,390 --> 00:28:57,870 neke vrste predpomnjenje nazaj konec, da bo delo aplikacija hitreje in malenkosti. 505 00:28:57,870 --> 00:29:02,140 Moramo omogočiti bazo podatkov in ORM modul, 506 00:29:02,140 --> 00:29:04,280 ker kot sem rekel, da smo z uporabo baze podatkov, je očitno, 507 00:29:04,280 --> 00:29:08,200 in moramo tudi omogočiti ORM modul, 508 00:29:08,200 --> 00:29:12,220 zato, ker bi radi imeli dodatne funkcionalnosti, kar je lepo, da so. 509 00:29:12,220 --> 00:29:14,240 Vse kar morate storiti je, odkomentirajte ti 2 vrstici, 510 00:29:14,240 --> 00:29:18,760 in zdaj, če sem osvežiti, da mi je dal še eno napako. 511 00:29:18,760 --> 00:29:22,100 Pravi: "Razred Model_Post ni mogoče najti." 512 00:29:22,100 --> 00:29:30,210 Zdaj je to dobro problem imeti. 513 00:29:30,210 --> 00:29:37,660 Pa poglejmo. 514 00:29:37,660 --> 00:29:42,200 Ga javno objavi. 515 00:29:42,200 --> 00:29:46,450 Ne Čakaj. 516 00:30:11,610 --> 00:30:13,160 Oh, draga. 517 00:30:13,160 --> 00:30:18,590 Ne vem, zakaj je ni uspelo najti to. 518 00:30:18,590 --> 00:30:21,030 To je res čudno. 519 00:30:21,030 --> 00:30:23,820 Imam razred tukaj. 520 00:30:23,820 --> 00:30:28,650 Mislim, da bi morali - oh. 521 00:30:28,650 --> 00:30:32,010 Jaz sem tako neumen. Pozabil sem dodati PHP oznako. 522 00:30:32,010 --> 00:30:34,670 To je, zakaj. 523 00:30:34,670 --> 00:30:41,260 Zdaj moram odpeti, da 1 sprememba sem storil. 524 00:30:41,260 --> 00:30:44,270 >> Ok. Takole. 525 00:30:44,270 --> 00:30:47,500 To je bilo res neumno. Nisem imel otvoritveno PHP oznako. 526 00:30:47,500 --> 00:30:49,900 Toda, kot lahko vidite, zdaj je pravilno deluje, kajne? 527 00:30:49,900 --> 00:30:51,240 Imamo 1 post. 528 00:30:51,240 --> 00:30:54,730 Zgrabil smo prvo mesto, zdaj pa smo natisnili svoje telo. 529 00:30:54,730 --> 00:30:58,010 Super. Fantastično. 530 00:30:58,010 --> 00:31:01,470 Kakšna vprašanja? 531 00:31:01,470 --> 00:31:04,100 Nope? Vsa vprašanja? 532 00:31:04,100 --> 00:31:08,340 Ok, tako da smo pravkar ustvarili model pošta, zelo osnovna, 533 00:31:08,340 --> 00:31:10,930 in bomo dodali nekaj funkcij kasneje. 534 00:31:10,930 --> 00:31:13,600 Mi lahko dodate validacij in filtriranje. 535 00:31:13,600 --> 00:31:15,650 Validacij so ena od stvari, 536 00:31:15,650 --> 00:31:18,150 da okviri rešiti za vas zelo, zelo dobro, 537 00:31:18,150 --> 00:31:21,310 in jaz ne mislim, da vama je bilo, da to stori za vaše CS50 pset, 538 00:31:21,310 --> 00:31:24,000 vendar, če vam spletni razvoj za svoj končni projekt, 539 00:31:24,000 --> 00:31:26,280 boste verjetno želeli narediti neke vrste potrditev, 540 00:31:26,280 --> 00:31:28,290 tako kot ne ob praznih uporabniških imen, 541 00:31:28,290 --> 00:31:31,950 Mogoče ima geslo z vsaj nekaj dolžine, take stvari. 542 00:31:31,950 --> 00:31:34,750 In to je res nerodno, da izvajajo te stvari, ki jih sami, 543 00:31:34,750 --> 00:31:37,390 in precej vsak okvir web to naredi za vas 544 00:31:37,390 --> 00:31:41,140 in vam omogoča, da to storite v zelo čist način. 545 00:31:41,140 --> 00:31:44,340 In model, kjer ste običajno izražajo ta pravila potrjevanja 546 00:31:44,340 --> 00:31:48,790 saj je potrditev, ali je model veljaven ali ne. 547 00:31:48,790 --> 00:31:51,350 >> Ampak za zdaj, bomo dal, da šele pozneje, 548 00:31:51,350 --> 00:31:53,520 in zdaj gremo na delo v drug del, 549 00:31:53,520 --> 00:31:55,400 in bomo poskusiti in narediti nov pogled 550 00:31:55,400 --> 00:31:59,580 , ki navaja vse prispevke. 551 00:31:59,580 --> 00:32:02,490 Koraki, ki sodelujejo pri oblikovanju nove ukrepe za uvrstitev na seznam vseh delovnih mest 552 00:32:02,490 --> 00:32:04,810 je, da zgrabite seznam vseh delovnih mest 553 00:32:04,810 --> 00:32:11,990 in potem postane seznam vseh delovnih mest s pogledom. 554 00:32:11,990 --> 00:32:16,420 Prav tu, na srečo dovolj, smo že zgrabil vse prispevke 555 00:32:16,420 --> 00:32:20,310 uporabljate to prvo linijo, našli vse funkcije, 556 00:32:20,310 --> 00:32:22,520 in zdaj, kaj bomo storili, je doslej 557 00:32:22,520 --> 00:32:25,350 Sem bil neposredno določitvijo telo odziva 558 00:32:25,350 --> 00:32:29,090 ob prehodu niz, zdaj pa želim uporabiti pogled, 559 00:32:29,090 --> 00:32:31,870 in razlika med namenom in prav to počne 560 00:32:31,870 --> 00:32:35,330 je z namenom, da lahko imam lepo, veliko predlogo HTML, 561 00:32:35,330 --> 00:32:37,710 in kaj lahko storim, je to nekatere spremenljivke mimo 562 00:32:37,710 --> 00:32:42,200 in potem so se pogled samodejno zapolnijo svojo predlogo 563 00:32:42,200 --> 00:32:44,690 uporabo teh spremenljivk. 564 00:32:44,690 --> 00:32:50,780 Kaj bom storiti, je, da bom ustvarite nov pogled, 565 00:32:50,780 --> 00:32:55,940 in bom ime pogleda nekaj podobnega "blog / indeksom" 566 00:32:55,940 --> 00:33:08,480 in bom v bistvu veže ta - oh, kaj pišem? 567 00:33:08,480 --> 00:33:12,910 Moji možgani so nekje drugje. 568 00:33:12,910 --> 00:33:16,600 Grem, da se veže delovnih mest variabilnih na pogled, 569 00:33:16,600 --> 00:33:19,950 tako da način, pogled ima dostop do tega po spremenljivki. 570 00:33:19,950 --> 00:33:26,140 >> In tako zdaj moram ustvariti to stališče, 571 00:33:26,140 --> 00:33:28,500 tako da tukaj imamo to mapo z imenom "Pogled", 572 00:33:28,500 --> 00:33:32,150 in prva, bom, da ustvarite novo mapo, v skladu s tem ti "blog". 573 00:33:32,150 --> 00:33:35,810 To je lepo. Na ta način bomo lahko imeli lepo hierarhijo za naše poglede. 574 00:33:35,810 --> 00:33:43,910 In potem bom ustvariti novo datoteko, kar se imenuje "index.php". 575 00:33:43,910 --> 00:33:45,780 Super. 576 00:33:45,780 --> 00:33:52,930 Pravzaprav, greva oba tu. 577 00:33:52,930 --> 00:33:56,760 Making file je verjetno najpreprostejši del vsega tega, 578 00:33:56,760 --> 00:33:59,090 in to so stvari, verjetno ste že seznanjeni. 579 00:33:59,090 --> 00:34:01,240 Mi boš naredil nekaj zelo preprostega, 580 00:34:01,240 --> 00:34:05,360 začetek reče: "Moj seznam blog delovnih mest." 581 00:34:05,360 --> 00:34:14,860 Potem lahko gremo skozi, 582 00:34:14,860 --> 00:34:17,920 in bomo lahko ponovitev prek sporočil matrike, 583 00:34:17,920 --> 00:34:21,760 zgrabi vsako posamezno delovno mesto in rekel nekaj takega - 584 00:34:21,760 --> 00:34:25,290 Mogoče dodajte vrstico 585 00:34:25,290 --> 00:34:42,460 in nato natisnete avtorja in telo. 586 00:34:42,460 --> 00:34:44,480 Da je smiselno tako daleč? 587 00:34:44,480 --> 00:34:50,870 In da vidim, če deluje. 588 00:34:50,870 --> 00:34:53,489 Nič se ni zgodilo. 589 00:34:53,489 --> 00:34:55,090 Sprašujem se, zakaj. 590 00:34:55,090 --> 00:34:58,760 Oh, sem zamudil 1. korak. Zelo neumno od mene. 591 00:34:58,760 --> 00:35:01,640 Ustvaril sem mnenja, vendar nisem določiti stališče, kot odgovor 592 00:35:01,640 --> 00:35:03,190 tako da boste morali narediti 1 stvar. 593 00:35:03,190 --> 00:35:12,610 Kar morate storiti, "ta odziv telesa" in jo nastavite, da se pogleda. 594 00:35:12,610 --> 00:35:14,760 Takole. 595 00:35:14,760 --> 00:35:17,200 Imamo naslov, in potem imamo delovno mesto, 596 00:35:17,200 --> 00:35:20,500 in samo za brcne, pa vstavite drugo delovno mesto 597 00:35:20,500 --> 00:35:23,390 Tako lahko vidimo seznam. 598 00:35:31,800 --> 00:35:36,650 In vstavite teh 2 delovnih mest, 599 00:35:36,650 --> 00:35:39,500 in zdaj, če sem osvežite stran, 600 00:35:39,500 --> 00:35:42,060 smo videli vse te prispevke tukaj. 601 00:35:42,060 --> 00:35:44,250 >> Ali to smiselno doslej? 602 00:35:44,250 --> 00:35:46,400 Ja, vprašanje? Oh, v redu. 603 00:35:46,400 --> 00:35:51,440 Kot lahko vidite, smo bili sposobni ločiti vse te kode iz 604 00:35:51,440 --> 00:35:53,920 v različnih oddelkih, in potem lahko vidite, da je najbolj jasno, s pogledom na kodo. 605 00:35:53,920 --> 00:35:57,810 Ta datoteka tukaj, da zastopa stališče, 606 00:35:57,810 --> 00:36:01,220 ga skrbi samo predstavlja podatke, prikaz podatkov. 607 00:36:01,220 --> 00:36:04,310 To gets opravili neke vrste podatkov, in vse kar naredi je samo pokazal. 608 00:36:04,310 --> 00:36:07,660 V vseh drugih delih kodo, vam ne bo treba skrbeti za nič od tega, 609 00:36:07,660 --> 00:36:10,480 in podobno, se vaš pogled koda ni treba skrbeti ničesar o 610 00:36:10,480 --> 00:36:13,390 kako dostopati do baze podatkov in tako naprej in tako naprej, 611 00:36:13,390 --> 00:36:19,950 ki je res dober in naredi kodo veliko več vzdrževati. 612 00:36:19,950 --> 00:36:23,390 Kot sem rekel, pogledov, oni so dinamični, da 613 00:36:23,390 --> 00:36:27,080 to je 1 slika, ampak bi ustvarila različne poglede 614 00:36:27,080 --> 00:36:29,940 temeljijo na spremenljivkah, ki jih dejansko gredo v, 615 00:36:29,940 --> 00:36:32,370 in poleg tega obstaja veliko različnih pomožne funkcije 616 00:36:32,370 --> 00:36:34,230 , ki ga lahko uporabite, da vam pomaga napisati svojo kodo hitreje, 617 00:36:34,230 --> 00:36:36,320 ki Pokazal ti bom, v samo sekundo. 618 00:36:36,320 --> 00:36:38,050 Ja. 619 00:36:38,050 --> 00:36:42,490 >> [Študent] Torej $ 0 je krmilnik, kajne? 620 00:36:42,490 --> 00:36:44,000 To je druga stvar. 621 00:36:44,000 --> 00:36:46,090 Vprašanje je $ 0 krmilnik? 622 00:36:46,090 --> 00:36:48,610 $ 0 je spremenljivka sem ustvaril tukaj. 623 00:36:48,610 --> 00:36:51,320 Ustvaril sem pogled prvi. I je dodeljena kakšne spremenljivke. 624 00:36:51,320 --> 00:36:54,960 Potem sem ga opravil v to funkcijo, jo nastavite kot telo odziva. 625 00:36:54,960 --> 00:36:57,260 Ali to smiselno? 626 00:36:57,260 --> 00:37:02,200 [Študent] Torej je pogled :: tovarne, je pogled kot razred 627 00:37:02,200 --> 00:37:06,610 ali knjižnica [neslišno] Tovarna funkcija? 628 00:37:06,610 --> 00:37:10,640 Vprašanje je o funkciji pogled :: tovarne, 629 00:37:10,640 --> 00:37:14,020 in v bistvu je to nekaj več objektno programiranje v bistvu. 630 00:37:14,020 --> 00:37:18,000 Pogled je pogled na razred, in ima metodo, imenovano "Factory" 631 00:37:18,000 --> 00:37:24,170 in to je način, da zgrabite predmet, ki je imenovan "blog / index." 632 00:37:24,170 --> 00:37:27,140 In to je nekaj več objektno programiranje stuff 633 00:37:27,140 --> 00:37:33,010 da ne bom šel v tu preveč. 634 00:37:33,010 --> 00:37:36,400 Zdaj je očitno, želimo ustvariti nova delovna mesta, 635 00:37:36,400 --> 00:37:38,790 vendar ne želimo imeti, da to storite s pomočjo baze podatkov, 636 00:37:38,790 --> 00:37:41,280 Tako bomo ustvarili nov ukrep za ustvarjanje novo delovno mesto, 637 00:37:41,280 --> 00:37:43,050 in tam je veliko stvari moramo storiti. 638 00:37:43,050 --> 00:37:45,910 >> Prva stvar, ki jo boš naredil - kaj je reševanje teh stvareh enega po enega. 639 00:37:45,910 --> 00:37:48,320 Prva stvar, ki jo bom naredil je, da imamo za ustvarjanje obrazca 640 00:37:48,320 --> 00:37:54,460 za vstavljanje novo delovno mesto, 641 00:37:54,460 --> 00:37:57,360 vendar sem tudi dogaja, da najprej dodate novo dejanje, 642 00:37:57,360 --> 00:38:01,050 tako dodal novo dejanje je prav tako enostavno, kot je 643 00:38:01,050 --> 00:38:03,490 dodal novo funkcijo s krmilnikom, 644 00:38:03,490 --> 00:38:13,710 in zdaj bom naredil nekaj zelo osnovne, 645 00:38:13,710 --> 00:38:20,850 Samo zgrabi to stališče in post, samo prikaz za tabo. 646 00:38:20,850 --> 00:38:26,220 In potem zdaj grem, da ustvarite nov pogled datoteko 647 00:38:26,220 --> 00:38:33,690 in bom, da začnete pisati nekaj stvari. 648 00:38:33,690 --> 00:38:36,540 Kaj je lepo o Kohana je, da zagotavljajo veliko različnih pomožne funkcije 649 00:38:36,540 --> 00:38:38,790 Za vas, da napišete kodo pogled lažje, 650 00:38:38,790 --> 00:38:41,970 in 1 od teh funkcij pomagač ali pomagač modulov 651 00:38:41,970 --> 00:38:45,860 je po pisanju obrazce. 652 00:38:45,860 --> 00:38:49,460 Za pisanje obrazcev, ne res, da neposredno pisati HTML sebe. 653 00:38:49,460 --> 00:38:51,100 Vidva sta napisana HTML obliki. 654 00:38:51,100 --> 00:38:54,850 Saj veš, kako je lahko zelo, zelo boleče in nerodno pisati obrazce. 655 00:38:54,850 --> 00:38:59,970 To ni zabavno, tako da na srečo, 656 00:38:59,970 --> 00:39:04,860 smo v bistvu lahko napišete obliko uporabo Kohana je 657 00:39:04,860 --> 00:39:11,190 tvorijo pomožne funkcije, da naredi za nas. 658 00:39:11,190 --> 00:39:17,340 Bomo v bistvu so polja za vsako stvar, ki jo imamo, 659 00:39:17,340 --> 00:39:23,160 Tako eden za avtorje in eno za organe. 660 00:39:23,160 --> 00:39:27,090 Bomo imeli etiketo in bomo imeli vhod. 661 00:39:37,450 --> 00:39:41,360 >> In potem na koncu, bomo morali svoje stališče. 662 00:39:49,350 --> 00:39:52,230 In kot lahko vidite, da je to precej čistejše, da napišete 663 00:39:52,230 --> 00:39:58,150 kot vse to grdo HTML, ki je nekako lepo. 664 00:39:58,150 --> 00:40:00,930 Odobrena, obstajajo druge spletne okviri, ki imajo celo čistejši od tistega, 665 00:40:00,930 --> 00:40:04,440 ampak vsaj je to bolje kot pisanje HTML sami. 666 00:40:09,400 --> 00:40:11,130 Super, tako da je to, kar vidite. 667 00:40:11,130 --> 00:40:13,530 To je nekako grdo, 668 00:40:13,530 --> 00:40:19,720 tako da bom dodati prelom vrstice tam 669 00:40:19,720 --> 00:40:21,180 da bi to izgleda malo lepše. 670 00:40:21,180 --> 00:40:23,330 No, seveda, še vedno izgleda res, res slabo, vendar smo šele osredotočili 671 00:40:23,330 --> 00:40:26,050 na funkcionalnost za zdaj, in ne o estetiki. 672 00:40:26,050 --> 00:40:28,010 Ni časa, da naredijo vse. 673 00:40:28,010 --> 00:40:30,600 In kot vidite, zdaj imamo super osnovno obliko, 674 00:40:30,600 --> 00:40:32,080 ki je nekako lepo. 675 00:40:32,080 --> 00:40:36,730 Ta koda bi rekel, je čistejši, kot poskuša pisati HTML oblikujejo sami, 676 00:40:36,730 --> 00:40:40,290 tako da je lepo. 677 00:40:40,290 --> 00:40:42,030 Kaj je naslednje? 678 00:40:42,030 --> 00:40:49,260 Zdaj moramo narediti stvari z akcijo. 679 00:40:49,260 --> 00:40:51,240 Običajno, ko pišete oblike HTML, 680 00:40:51,240 --> 00:40:54,070 moraš povedati, kje se dogaja, da predloži obrazec. 681 00:40:54,070 --> 00:40:56,050 Privzeto v večini spletnih okvirih, 682 00:40:56,050 --> 00:40:58,200 trdi, da točno isto URL, tako da stvar je, 683 00:40:58,200 --> 00:41:01,310 če boste poslali zahtevo priti do / blog / new, 684 00:41:01,310 --> 00:41:03,240 naj bi vam prikaže obrazec, 685 00:41:03,240 --> 00:41:06,810 ampak, če boste poslali prošnjo za delovno mesto, na / blog / new s podatki, 686 00:41:06,810 --> 00:41:10,000 to naj bi dejansko poskušali rešiti to delovno mesto 687 00:41:10,000 --> 00:41:13,300 in nekaj storiti z njim. 688 00:41:20,630 --> 00:41:22,180 >> Kaj bomo storili, je 689 00:41:22,180 --> 00:41:25,320 v bistvu vse, kar moramo storiti, da preveri, ali je zahteva po ali zahteva get 690 00:41:25,320 --> 00:41:29,350 je, da preverite, kaj so objave spremenljivke, ki jih lahko nastavite. 691 00:41:29,350 --> 00:41:34,560 In če je po spremenljivka nastavljena, potem bomo poskusili ustvariti novo delovno mesto. 692 00:41:34,560 --> 00:41:38,440 Spet smo samo to, 693 00:41:38,440 --> 00:41:41,090 in da ustvarja novo delovno mesto, in smo dobesedno bo 694 00:41:41,090 --> 00:41:51,150 določena področja, kot je ta svoje, 695 00:41:51,150 --> 00:41:55,640 in potem se bomo, da ga shranite. 696 00:41:55,640 --> 00:41:59,200 In potem bom preusmeriti 697 00:41:59,200 --> 00:42:07,660 na kazalo, da bodo lahko spet videli naš seznam delovnih mest. 698 00:42:07,660 --> 00:42:09,620 Poskusimo to. 699 00:42:09,620 --> 00:42:15,160 Jaz bom rekel, "Brandon" 700 00:42:15,160 --> 00:42:18,140 in nato predloži post, in če bo šlo vse dobro, 701 00:42:18,140 --> 00:42:21,390 Kot lahko vidite, to me je preusmerjen na strani s kazalom, 702 00:42:21,390 --> 00:42:24,140 in če sem se pomaknite na dno, imamo novo vstavljeno post. 703 00:42:24,140 --> 00:42:26,430 Yay! 704 00:42:26,430 --> 00:42:28,430 Ja, vprašanje. 705 00:42:28,430 --> 00:42:31,760 >> [Študent] Kaj če bi začela točno isto stvar 706 00:42:31,760 --> 00:42:33,380 ste vnesli prej? 707 00:42:33,380 --> 00:42:36,950 Ali preverite, ali niste podvojene 708 00:42:36,950 --> 00:42:38,810 Enako oddajo? 709 00:42:38,810 --> 00:42:41,660 Bodite privzeto, ne, saj privzeto - 710 00:42:41,660 --> 00:42:46,470 Žal mi je, vprašanje je, če vnesete v natančne istih podatkov v obliki 711 00:42:46,470 --> 00:42:50,180 in trdijo, da bo vam omogočajo, da vstavite dvojnika, 712 00:42:50,180 --> 00:42:52,550 dvojnik vstop v bistvu? 713 00:42:52,550 --> 00:42:54,070 Zdaj, ja, bo vam omogočajo, da to storim, 714 00:42:54,070 --> 00:42:58,860 ker v zbirkah podatkov je popolnoma velja, da imajo popolnoma podvojene vrstice, 715 00:42:58,860 --> 00:43:02,260 če pa je skrb, nato pa lahko dodate validacij, na primer, 716 00:43:02,260 --> 00:43:06,430 se prepričajte, da če je to popolnoma enako, kot nekaj, kar že obstaja, 717 00:43:06,430 --> 00:43:08,720 potem pa pravijo, da je neveljaven predmet, 718 00:43:08,720 --> 00:43:11,200 in potem si lahko tudi določite svoje sporočilo o napaki 719 00:43:11,200 --> 00:43:14,390 in reči, "Invalid ker je ta že obstaja" ali nekaj takega. 720 00:43:14,390 --> 00:43:22,420 Toda v tem primeru bi lahko samo ustvariti nekaj dvojnik. 721 00:43:22,420 --> 00:43:26,010 Zdaj pa poskusite in dodamo nekaj validacij. 722 00:43:26,010 --> 00:43:30,400 Problem pri tem je, da je zdaj 723 00:43:30,400 --> 00:43:34,220 Jaz bi dobesedno predloži povsem prazno mesto. 724 00:43:34,220 --> 00:43:37,500 Jaz lahko s klikom na ta gumb zdaj, in tam gremo. 725 00:43:37,500 --> 00:43:40,290 Ti pa res ne vidim, ampak to dodatno vrstica tukaj 726 00:43:40,290 --> 00:43:43,830 kaže, da imam dobesedno novo delovno mesto. 727 00:43:43,830 --> 00:43:46,050 Treba ga je le prazno avtorja in slepo telo, 728 00:43:46,050 --> 00:43:48,630 in ne želimo, da bi ljudje za to. 729 00:43:48,630 --> 00:43:52,550 To je, če pride noter validacija 730 00:43:52,550 --> 00:43:57,540 >> Ne morem iti na moj modela objekta, 731 00:43:57,540 --> 00:43:59,530 in zdaj lahko dodam novo funkcijo, ki določa 732 00:43:59,530 --> 00:44:02,000 kaj potrjevanje pravila naj dodam, da ta model 733 00:44:02,000 --> 00:44:06,840 se prepričajte, da je veljavna ali, da določite, kaj pomeni biti veljaven pošta? 734 00:44:06,840 --> 00:44:10,210 In hočem reči, da je veljavno le, če po tako avtor in telo 735 00:44:10,210 --> 00:44:15,150 niso prazne, in to je, kako si to naredil v Kohana. 736 00:44:15,150 --> 00:44:18,750 Ustvarite novo funkcijo imenovano "pravila", 737 00:44:18,750 --> 00:44:20,210 in potem si v bistvu vrnil asociativno paleto 738 00:44:20,210 --> 00:44:24,230 , ki določa pravila o potrjevanju za ta objekt. 739 00:44:24,230 --> 00:44:27,530 Bomo vrne niz, nato pa, kaj bomo storili, je 740 00:44:27,530 --> 00:44:32,820 pravijo "avtor", da gre za paleto, 741 00:44:32,820 --> 00:44:37,720 ki gre v drugo matriko, imenovano "ni prazna." 742 00:44:37,720 --> 00:44:41,480 In potem bom rekel "telo". 743 00:44:50,980 --> 00:44:54,120 Ok, in sintakso za to in strukturo za to 744 00:44:54,120 --> 00:44:56,530 lahko izgleda malo nerodno in nekoliko zapletena. 745 00:44:56,530 --> 00:44:59,330 Če ste prebrali dokumentacijo, to je zelo enostavno ugotoviti, 746 00:44:59,330 --> 00:45:02,500 Ampak v bistvu je to tisto, kar morate storiti, da določite 747 00:45:02,500 --> 00:45:04,130 nekatera pravila za veljavnost, in obstaja veliko različnih pravil 748 00:45:04,130 --> 00:45:06,810 da bo Kohana daš zastonj, kot si lahko dodate pravila za povedati 749 00:45:06,810 --> 00:45:08,410 da mora biti vsaj ta dolžina. 750 00:45:08,410 --> 00:45:11,800 Mogoče mora biti numerična. Mogoče je, da bi alfa številčna. 751 00:45:11,800 --> 00:45:14,410 Mogoče je, da bi največ ta dolžina, tako naprej in tako naprej. 752 00:45:14,410 --> 00:45:17,730 Obstaja veliko različnih pravil, ki Kohana zagotavlja za vas, 753 00:45:17,730 --> 00:45:19,610 in lahko greš na njihovi spletni strani, pogled na dokumentacijo, 754 00:45:19,610 --> 00:45:23,150 in si lahko ogledate vse različne stvari, ki jih lahko storite. 755 00:45:23,150 --> 00:45:25,650 >> Ampak to je vse, kar moram storiti, 756 00:45:25,650 --> 00:45:30,490 zdaj pa poglejmo, kaj se zgodi 757 00:45:30,490 --> 00:45:34,060 če oddam prazno mesto. 758 00:45:34,060 --> 00:45:36,960 Kaj se bo zgodilo? Oh, ne, dobim napako. 759 00:45:36,960 --> 00:45:39,440 Dobim izjemo potrjevanja. 760 00:45:39,440 --> 00:45:41,070 No, to je dobro. 761 00:45:41,070 --> 00:45:43,200 To mi je povedal, da je moj model neveljavna, 762 00:45:43,200 --> 00:45:45,780 vendar ne želim prikazati izjemo 763 00:45:45,780 --> 00:45:48,720 za moje uporabnike, ko skušajo predloži nekaj neveljavno, kajne? 764 00:45:48,720 --> 00:45:51,560 Želim, da se jim neke vrste prijateljsko sporočilo o napaki 765 00:45:51,560 --> 00:45:53,610 ko gre kaj narobe. 766 00:45:53,610 --> 00:46:01,830 Kaj bomo storili je, da bomo 767 00:46:01,830 --> 00:46:04,490 zaviti vse, kar je v zanki poskus ulova. 768 00:46:04,490 --> 00:46:06,750 Pravzaprav, mislim, da je to tudi nekaj, kar še niso naučili 769 00:46:06,750 --> 00:46:10,820 V CS50, ker C, programski jezik C, 770 00:46:10,820 --> 00:46:14,000 nima izjem, ampak skoraj vsakega Drugi jezik 771 00:46:14,000 --> 00:46:16,700 ima izjeme, tako zelo, zelo na kratko, 772 00:46:16,700 --> 00:46:19,430 Izjema je nekaj, kar lahko del kode 773 00:46:19,430 --> 00:46:21,430 vrgel izjemo, ko gre kaj narobe, 774 00:46:21,430 --> 00:46:23,410 potem pa morda kakšen drug del kode višje 775 00:46:23,410 --> 00:46:25,810 ujeti to izjemo in naredil z njim nekaj. 776 00:46:25,810 --> 00:46:27,710 >> Na primer, v tem primeru 777 00:46:27,710 --> 00:46:29,940 del kode, ki poskuša rešiti model, 778 00:46:29,940 --> 00:46:33,170 to potrjuje model, če pa pravi: "V redu, ta model je neveljaven" 779 00:46:33,170 --> 00:46:36,150 da se bo vrgel izjemo, in to je nekako enakovredni 780 00:46:36,150 --> 00:46:39,870 v C morda vrne -1 ali kaj takega. 781 00:46:39,870 --> 00:46:42,320 In potem mi je ta funkcija, moja koda 782 00:46:42,320 --> 00:46:46,310 na višji ravni, lahko poskusite in ujeti to izjemo 783 00:46:46,310 --> 00:46:49,330 in v bistvu rekel: "V redu, če sem ujeti izjemo, kaj bom naredil?" 784 00:46:49,330 --> 00:46:51,570 Ali pa sem se odločil, da ne ujeti izjemo in naj nekdo višje 785 00:46:51,570 --> 00:46:54,400 ulov izjeme, ali če nihče ne ujame, 786 00:46:54,400 --> 00:46:56,820 potem celoten program zruši, in pravi, 787 00:46:56,820 --> 00:46:59,170 "Nekaj ​​je šlo narobe, in nisem mogel ravnati z njimi." 788 00:46:59,170 --> 00:47:04,490 >> Toda tisto, kar počnemo je, da zaviti košček kode v try bloku, 789 00:47:04,490 --> 00:47:09,030 nato pa dodate tudi nekaj, kar ti blok ulov, 790 00:47:09,030 --> 00:47:17,300 , ki je neke vrste kodo, ki bo skušal ujeti in izjeme, ki se lahko pojavijo. 791 00:47:17,300 --> 00:47:20,430 In tako, če sem ujeti to posebno izjemo 792 00:47:20,430 --> 00:47:23,110 ali razveljavitev izjeme, nato pa kaj bom storiti, je 793 00:47:23,110 --> 00:47:31,210 Bom nastaviti napake - mislim, da je, kako sem to naredil - 794 00:47:31,210 --> 00:47:35,370 in bom, da nastavite napak v določenem predmetu. 795 00:47:35,370 --> 00:47:40,920 In kaj bom storiti, potem je, če zadene to izjemo, 796 00:47:40,920 --> 00:47:43,090 da ne gre za preusmeritev, in če se ne preusmeri, 797 00:47:43,090 --> 00:47:46,160 to se dogaja, da pridejo ven iz if blog 798 00:47:46,160 --> 00:47:49,920 in zadeti ta blog / nova, ki se želijo želim storiti. 799 00:47:49,920 --> 00:47:53,190 Če je napaka, potem pa hočem iti nazaj v obliki 800 00:47:53,190 --> 00:47:55,100 in prikaz teh napak. 801 00:47:55,100 --> 00:48:00,780 Zdaj, kar želim storiti, je, želim prenesti v teh napak 802 00:48:00,780 --> 00:48:07,010 na pogled. 803 00:48:07,010 --> 00:48:10,360 Ok, mislim, da imam pogled tukaj, 804 00:48:10,360 --> 00:48:14,660 in v bistvu hočem prikazati tiste napake, če ti obstajajo. 805 00:48:14,660 --> 00:48:19,740 Preden sem napisati HTML za to, da bom res hitro 806 00:48:19,740 --> 00:48:21,720 ti pokažem, kaj struktura tega napak spremenljivi izgleda, 807 00:48:21,720 --> 00:48:23,080 in to je dobra praksa na splošno. 808 00:48:23,080 --> 00:48:25,070 Veliko časa boste dobili nekaj nazaj od neke metode, 809 00:48:25,070 --> 00:48:27,250 nekateri pa v okviru spletnega, 810 00:48:27,250 --> 00:48:29,410 in ne veste, kaj spremenljivka izgleda, 811 00:48:29,410 --> 00:48:31,210 tako da ne vem, kako delati z njim. 812 00:48:31,210 --> 00:48:37,790 Bom uporabila metodo print r, da ga v bistvu natisniti. 813 00:48:37,790 --> 00:48:41,100 >> In kot vidite, mi pove, da je sodelavec matrika, 814 00:48:41,100 --> 00:48:44,880 in imate ključ, avtor, opozarja, da ta niz, 815 00:48:44,880 --> 00:48:47,050 avtor ne sme biti prazno, in še en ključni, telo, 816 00:48:47,050 --> 00:48:49,680 opozarja na drugi niz, telo ne sme biti prazno. 817 00:48:49,680 --> 00:48:52,130 Jaz sem kot, v redu, v redu. 818 00:48:52,130 --> 00:48:56,230 Potem sem lahko Ponovil skozi niz in izpiše vsako posamezno sporočilo. 819 00:48:56,230 --> 00:49:02,150 To je v bistvu kot asociativni niz s kupom sporočil. 820 00:49:02,150 --> 00:49:13,500 Kaj bom storiti, je, "če je do napake," 821 00:49:13,500 --> 00:49:17,140 in bom ustvarili neurejen seznam, 822 00:49:17,140 --> 00:49:20,860 in bom Ponovil skozi vse napake. 823 00:49:33,730 --> 00:49:38,710 In to, in zdaj bom poskusil znova predložitvi to, 824 00:49:38,710 --> 00:49:41,200 in poglejmo, kaj smo dobili. 825 00:49:41,200 --> 00:49:45,370 Zdaj smo dobili to lepo seznam napak, 826 00:49:45,370 --> 00:49:48,630 in to je še vedno precej grdo, vendar je to očitno mogoče oblikovati tako videti lepo, 827 00:49:48,630 --> 00:49:51,620 ampak osnovna ideja je samo v nekaj vrstic kode, 828 00:49:51,620 --> 00:49:53,720 smo bili sposobni potrditi naš model, 829 00:49:53,720 --> 00:49:56,510 poskrbite, da nekatera polja niso bile prazne, 830 00:49:56,510 --> 00:49:59,740 in če je kaj narobe, potem se vrnete neke vrste sporočilo o napaki 831 00:49:59,740 --> 00:50:01,760 Jaz bi potem predstavili nazaj uporabniku. 832 00:50:01,760 --> 00:50:03,910 Prav tako lahko prilagodite potrjevanje 833 00:50:03,910 --> 00:50:07,590 tako da lahko dejansko prikaže sporočilo o napaki 834 00:50:07,590 --> 00:50:09,620 , ki je bolj specifičen, da vaše prijave ali kaj podobnega. 835 00:50:09,620 --> 00:50:14,600 Vse, kar je na splošno prilagodljiv. 836 00:50:14,600 --> 00:50:17,150 >> Na žalost, smo zmanjkuje časa, 837 00:50:17,150 --> 00:50:20,040 tako da bom moral odrezati živo kodiranja sejo tukaj. 838 00:50:20,040 --> 00:50:22,980 Obstaja kup drugih funkcij, želim dokazati za vas 839 00:50:22,980 --> 00:50:25,650 v tem primeru. 840 00:50:25,650 --> 00:50:27,620 Na primer, lahko dodate predloge za vašo spletno stran, 841 00:50:27,620 --> 00:50:31,110 tako da morda obstaja neke vrste HTML kodo, ki jo želite uporabiti 842 00:50:31,110 --> 00:50:35,190 za vsako posamezno stran v vašem mestu, in namesto da prilepite 843 00:50:35,190 --> 00:50:40,630 v vsakem posameznem file imate, kar očitno ne bi bilo slaba praksa, 844 00:50:40,630 --> 00:50:43,020 v bistvu lahko določite te predloge, 845 00:50:43,020 --> 00:50:46,660 in nato v krmilnik rekel: "Ok, jaz sem z uporabo te predloge." 846 00:50:46,660 --> 00:50:50,130 "Ali so vsi moji pogledi uporabite to predlogo." 847 00:50:50,130 --> 00:50:52,470 In zadnja stvar, želim dokazati, da vas kot dobro 848 00:50:52,470 --> 00:50:57,800 da nimamo časa za je cross-site skriptno, 849 00:50:57,800 --> 00:51:01,430 in v bistvu mislim, vi ste verjetno opazili v CS50 - 850 00:51:01,430 --> 00:51:03,770 Mislim, da David Malan verjetno govoril o tem, kako lahko navadno injicirati 851 00:51:03,770 --> 00:51:08,040 JavaScript kodo v - ste govorili o tem? 852 00:51:08,040 --> 00:51:10,220 Mogoče? Mogoče pa ne? 853 00:51:10,220 --> 00:51:12,670 >> Toda veliko krat lahko injicirali zlonamerno kodo JavaScript 854 00:51:12,670 --> 00:51:15,630 v bazo nekoga, in če ne pobegniti, da pravilno, 855 00:51:15,630 --> 00:51:18,280 potem, ko so predstavili te podatke nazaj uporabniku, 856 00:51:18,280 --> 00:51:21,310 potem lahko vodijo nekakšne naključne kode JavaScript ne želite, da se zgodi, 857 00:51:21,310 --> 00:51:23,050 in sem bil tekoč, da dokaže, kako bi to naredil v Kohana. 858 00:51:23,050 --> 00:51:25,380 To je pravzaprav zelo, zelo enostavno. 859 00:51:25,380 --> 00:51:31,920 Jaz lahko to storite prav zdaj, v 2 sekundah dobesedno. 860 00:51:31,920 --> 00:51:34,560 Vse kar morate storiti je, da v bistvu zaviti te stvari 861 00:51:34,560 --> 00:51:46,920 V ta stvar imenovano subjektov HTML. 862 00:51:46,920 --> 00:51:51,180 In da se bo samodejno pobegniti vse znake pravilno 863 00:51:51,180 --> 00:51:54,730 in poskrbite, da ne boste dobili ta problem. 864 00:51:54,730 --> 00:51:57,220 [Študent] pira ste prvi preizkus nepravilno. 865 00:51:57,220 --> 00:52:01,030 [Brandon Liu] Oh, ojej. 866 00:52:01,030 --> 00:52:06,420 >> Ok, to je vse, kar sem moral deliti z vami danes. 867 00:52:06,420 --> 00:52:09,930 Te diapozitivi se bodo objavljene, vendar so ti praviloma 868 00:52:09,930 --> 00:52:13,900 samo sredstva, ki jih je treba res potrebujete, da bi začeli z Kohana. 869 00:52:13,900 --> 00:52:16,770 Lahko greš na spletni strani. Imajo navodila in imajo tudi API Explorer. 870 00:52:16,770 --> 00:52:20,630 Mi lahko preuči vse različne funkcije in pomožne funkcije, ki jih imajo za vas. 871 00:52:20,630 --> 00:52:22,070 Običajno imajo dovolj informacij na spletni strani 872 00:52:22,070 --> 00:52:25,310 ki ga lahko uporabite, da bi začeli in se dogaja z Kohana. 873 00:52:25,310 --> 00:52:30,840 Tam se ne da veliko vaje, mislim, za Kohana, zunaj 874 00:52:30,840 --> 00:52:33,880 kaj imajo na spletni strani tukaj, tako da je to verjetno vaš najboljši stavo. 875 00:52:33,880 --> 00:52:35,600 Toda, če želite, da gredo z okvirom spletni 876 00:52:35,600 --> 00:52:37,120 in ne želite imeti, da poberem nov jezik, 877 00:52:37,120 --> 00:52:39,780 in želite nekaj, kar je relativno lahek in ima enostaven krivuljo učenja, 878 00:52:39,780 --> 00:52:41,570 Jaz bi definitivno predlagam Kohana. 879 00:52:41,570 --> 00:52:44,040 To je verjetno najboljša ponudba za to. 880 00:52:44,040 --> 00:52:46,830 Hecno, čeprav je, če smo s pomočjo Ruby na tirih, 881 00:52:46,830 --> 00:52:48,550 smo lahko ponovili, kar smo pravkar storil 882 00:52:48,550 --> 00:52:51,430 in verjetno bolj v skladu s 3 minutah. 883 00:52:51,430 --> 00:52:54,710 Ni šala, ampak učenje Ruby na tirih traja veliko dlje 884 00:52:54,710 --> 00:52:56,780 kot bi bilo potrebno, da se naučijo Kohana. 885 00:52:56,780 --> 00:52:58,840 To je v bistvu vaša izbira, kaj želite, da se odločite, da se naučijo, 886 00:52:58,840 --> 00:53:01,260 vendar, če želite, da vstaneš in teče hitro, 887 00:53:01,260 --> 00:53:03,870 Kohana je vsekakor zelo dobra izbira. 888 00:53:03,870 --> 00:53:06,730 >> Kakšna zadnja vprašanja pred koncem smo? Da. 889 00:53:06,730 --> 00:53:08,020 [Študent] Kako bi vključili, da 890 00:53:08,020 --> 00:53:13,120 v okviru CSS, kot ste jo uporabljali, ko ste bili poučevanje? 891 00:53:13,120 --> 00:53:16,700 Vprašanje je, kako bi vključili, da bi z okvirom CSS? 892 00:53:16,700 --> 00:53:18,740 Kaj bi mi verjetno storiti je, da bi mi verjetno vključuje 893 00:53:18,740 --> 00:53:21,090 nova mapa, kjer bi mi pustila vse naše CSS datoteke, 894 00:53:21,090 --> 00:53:23,010 in potem bi dodali tudi nove predloge. 895 00:53:23,010 --> 00:53:26,090 V predlogo sva vključujejo tiste CSS datoteke 896 00:53:26,090 --> 00:53:28,410 se prepričajte, da ste se sklicuje na vsako posamezno stran, 897 00:53:28,410 --> 00:53:32,220 in potem, ko ste dejansko pišete HTML, 898 00:53:32,220 --> 00:53:34,010 ki ste jo pravkar dodali ustrezne razrede in drugih malenkosti, 899 00:53:34,010 --> 00:53:36,100 in na primer, ko ste z nekaj podobnega obliki 900 00:53:36,100 --> 00:53:40,710 funkcijo pomočnika, lahko dodate več parametrov zatem 901 00:53:40,710 --> 00:53:42,830 opredeliti, kaj razredi želite biti pritrjeni na različne stvari 902 00:53:42,830 --> 00:53:47,820 tako da bi ga lahko pravilno slogu, in to je v bistvu, kako bi šel. 903 00:53:47,820 --> 00:53:50,100 >> Kakšno vprašanje? 904 00:53:50,100 --> 00:53:52,090 Super. 905 00:53:52,090 --> 00:53:58,540 Zahvaljujemo se vam za vaš čas in hvala za obisk. 906 00:53:58,540 --> 00:54:05,170 Ne bom dodati zelo veliko drugega, 907 00:54:05,170 --> 00:54:08,560 ampak 1 res hitro stvar je, da nimamo povezavo 908 00:54:08,560 --> 00:54:12,590 v obliki. 909 00:54:12,590 --> 00:54:14,310 Res neumno. 910 00:54:14,310 --> 00:54:20,110 Dodajmo - pravzaprav v pogledu, blog, indeks, 911 00:54:20,110 --> 00:54:23,890 dajva res hitro povezavo, da gre za novo stran, 912 00:54:23,890 --> 00:54:26,770 stran, kjer lahko vstavite novo delovno mesto. 913 00:54:26,770 --> 00:54:29,950 Bomo to storili. 914 00:54:29,950 --> 00:54:34,020 Kaj je lepo, se je ves ta skupina HTML pomožne funkcije 915 00:54:34,020 --> 00:54:37,090 ki različne stvari za vas, tako da boste že videli subjekte 916 00:54:37,090 --> 00:54:41,980 delovanje tukaj, imajo pa tudi funkcijo imenovano "sidro" 917 00:54:41,980 --> 00:54:45,400 ki lahko vnesete v blog / new 918 00:54:45,400 --> 00:54:49,550 in rekel: "Post nov blog." 919 00:54:49,550 --> 00:54:51,850 In da bi ustvarili to povezavo za vas, 920 00:54:51,850 --> 00:54:54,120 in to se mi zdi zelo nepomembno, da ne, ampak to je lepo, 921 00:54:54,120 --> 00:54:58,720 ker predvidevam, da ste se gibljejo vašo spletno stran od 1 domeno na drugega. 922 00:54:58,720 --> 00:55:01,390 In če si napisal sebe URL-jev, 923 00:55:01,390 --> 00:55:04,350 potem bi morali spremeniti vse URL. 924 00:55:04,350 --> 00:55:06,850 Ali pa ste ga premaknili od 1. podmapo v drugo podmapo. 925 00:55:06,850 --> 00:55:08,790 Ti bi morali zamenjati vse tiste, URL-jev sami, 926 00:55:08,790 --> 00:55:12,180 in to ni zabavno. 927 00:55:12,180 --> 00:55:14,510 Lahko uporabite to sidro tukaj, 928 00:55:14,510 --> 00:55:18,950 in lahko spremenite domeno ali podmape predpono 929 00:55:18,950 --> 00:55:20,640 v konfiguracijske datoteke enkrat, 930 00:55:20,640 --> 00:55:22,980 in potem se bo uporabljajo, da povsod, in to je spet 931 00:55:22,980 --> 00:55:26,930 odličen primer ne ponovi sebe, sušenje kodo ven. 932 00:55:26,930 --> 00:55:30,370 Kjerkoli ste sami ponavljanje, poskusite in odvod zraka v nekakšnem konfiguracijske datoteke 933 00:55:30,370 --> 00:55:34,160 ali drugačno funkcijo in imajo ročaj za vas. 934 00:55:34,160 --> 00:55:42,930 >> In zelo zadnja stvar, ki sem ti hotel pokazati bilo 935 00:55:42,930 --> 00:55:50,250 Predvidevam, vrnili smo se na to delovno mesto, in sem ga sestavljajo nekaj res dolgo esej, 936 00:55:50,250 --> 00:55:52,670 vendar sem pozabil vključiti svoj avtorja. 937 00:55:52,670 --> 00:55:55,210 Zdaj, ko sem kliknite "Pošlji Post," 938 00:55:55,210 --> 00:55:57,270 Pravkar sem izgubil vse. 939 00:55:57,270 --> 00:56:00,000 Ne! Res žalostno. 940 00:56:00,000 --> 00:56:03,870 Torej, kako se spoprijeti s tem? 941 00:56:03,870 --> 00:56:06,070 To je tisto, kar počnemo. 942 00:56:06,070 --> 00:56:09,340 Kaj moramo storiti, je tukaj pri teh vhodnih in besedilo območja funkcij, 943 00:56:09,340 --> 00:56:12,700 če vključujejo drugi parameter, znaša vrednost te druge parametra 944 00:56:12,700 --> 00:56:16,620 se bo tisto polje se bo najprej naseljena z. 945 00:56:16,620 --> 00:56:23,570 Kaj bi lahko storili, je v našem blogu upravljavca, 946 00:56:23,570 --> 00:56:25,360 smo lahko veže še eno spremenljivko. 947 00:56:25,360 --> 00:56:27,050 To "vrednote" klic morda. 948 00:56:27,050 --> 00:56:30,620 In se peljemo v post matriki, dobesedno. 949 00:56:30,620 --> 00:56:32,620 To pomeni, da če validacija ni uspela, 950 00:56:32,620 --> 00:56:36,570 Podaj mi post nizom, ki sem predložene od zadnjega zahtevo 951 00:56:36,570 --> 00:56:38,420 in na ta način sem lahko uporabite vrednosti iz mojega zadnjega predložitve 952 00:56:38,420 --> 00:56:44,540 za ponovno naseliti polja. 953 00:56:44,540 --> 00:56:49,600 Zdaj sem lahko naredil kaj takega vrednosti avtorja 954 00:56:49,600 --> 00:56:55,180 in vrednote telesu, in na ta način zdaj, če sem naredil nekaj naključno stvari 955 00:56:55,180 --> 00:57:01,490 in kliknite "Pošlji Post", potem pa ostane tam. 956 00:57:01,490 --> 00:57:03,830 Ampak bomo zašli v drugo težavo. 957 00:57:03,830 --> 00:57:07,670 Da deluje, ampak če grem na stran za zelo prvič, 958 00:57:07,670 --> 00:57:09,720 to se dogaja v nesreči, in da je zato, ker so prvič 959 00:57:09,720 --> 00:57:13,730 gremo na stran, ta post spremenljivka še ni bila določena. 960 00:57:13,730 --> 00:57:18,170 To je null. To ne obstaja. 961 00:57:18,170 --> 00:57:21,630 >> In kaj želimo povedati, je, če je ta ključ obstaja, 962 00:57:21,630 --> 00:57:27,750 nato vrne vrednost tega polja, 963 00:57:27,750 --> 00:57:30,450 ampak če ključ ne obstaja, potem vrne prazen niz. 964 00:57:30,450 --> 00:57:32,150 To je funkcionalnost želimo tukaj. 965 00:57:32,150 --> 00:57:34,690 Želimo, da preveri, če je ključ obstaja, preden poskušate dostopiti do array, 966 00:57:34,690 --> 00:57:36,580 in dovolj srečo, 967 00:57:36,580 --> 00:57:38,570 Kohana temveč nam daje tudi funkcijo pomočnika za to. 968 00:57:38,570 --> 00:57:41,040 Imajo vso to zbirko funkcij 969 00:57:41,040 --> 00:57:43,660 pod imenom ARR, okrajšava za niz, 970 00:57:43,660 --> 00:57:45,800 in imajo 1 funkcijo imenovano "dobili" 971 00:57:45,800 --> 00:57:48,690 in lahko preide v matriki, 972 00:57:48,690 --> 00:57:50,740 in lahko preide v imenu ključa. 973 00:57:50,740 --> 00:57:54,330 Potem v bistvu tisto, kar bo naredil, je, da bodo poskušali dobiti ta ključ, 974 00:57:54,330 --> 00:57:56,470 če pa ključ ne obstaja v matriki, 975 00:57:56,470 --> 00:58:00,900 nato pa se bo vrnil prazen, ali pa lahko določite tudi privzete, verjamem, 976 00:58:00,900 --> 00:58:03,500 kar je lepo. 977 00:58:09,740 --> 00:58:13,150 Zdaj, če delamo isto stvar enkrat, 978 00:58:13,150 --> 00:58:15,970 potem vidiš zdaj deluje prvič okoli, 979 00:58:15,970 --> 00:58:18,080 in spet, če vpišemo v nekaj naključno stvari 980 00:58:18,080 --> 00:58:23,210 in poskusite in predložiti, potem pa ostane tam. 981 00:58:23,210 --> 00:58:31,640 >> In mislim, da sem lahko tudi pokazati, kako dodati predlogo res hitro. 982 00:58:31,640 --> 00:58:36,140 Kaj lahko storimo prvi je, da smo lahko dodali nov pogled imenovano "template.php" 983 00:58:36,140 --> 00:58:38,890 v mapi Pogledi 984 00:58:38,890 --> 00:58:44,730 in kaj bom storiti, je, da bom izpisal nekaj, kar se imenuje "vsebina" 985 00:58:44,730 --> 00:58:49,130 ki se bo moja glavna vsebina. 986 00:58:49,130 --> 00:58:51,380 In morda na dnu grem dodati, recimo, 987 00:58:51,380 --> 00:58:53,340 avtorskih pravic. 988 00:58:53,340 --> 00:58:56,150 [Neslišno študent vprašanje] 989 00:58:56,150 --> 00:58:58,050 [Brandon Liu] Mogoče je to super osnovno predlogo želim uporabiti. 990 00:58:58,050 --> 00:59:02,840 Rad bi imel mapo z moje avtorske pravice na vsako posamezno stran, 991 00:59:02,840 --> 00:59:05,560 in zdaj, kaj bom naredil v mojem krmilnik 992 00:59:05,560 --> 00:59:07,740 Zdaj je namesto da bi rekel, "razširja Controller" 993 00:59:07,740 --> 00:59:11,870 Jaz bom rekel, "se razteza Controller_Template" 994 00:59:11,870 --> 00:59:15,890 in zdaj namesto da bi rekel, "telo odziva je enaka tem pogledu" 995 00:59:15,890 --> 00:59:24,110 Jaz bom rekel, "ta vsebina predloga je -" 996 00:59:24,110 --> 00:59:27,690 in mislim - pa sem dal enačaj? 997 00:59:27,690 --> 00:59:32,710 Sem pozabil. Ja, sem si mislil. 998 00:59:32,710 --> 00:59:37,710 In zdaj sem jih, da vsebina spremenljivka, da bo enak pogled. 999 00:59:37,710 --> 00:59:40,960 Jaz lahko naredim isto tukaj. 1000 00:59:49,620 --> 00:59:57,170 In zdaj, če sem osvežiti, lahko vidite, je zdaj ta avtorskih pravic je bil dodan, 1001 00:59:57,170 --> 01:00:00,350 in samo narediti nekaj naključno mesto, 1002 01:00:00,350 --> 01:00:06,760 in potem še enkrat, bi morali videti, da je avtorska pravica na samem dnu strani. 1003 01:00:06,760 --> 01:00:10,730 >> Great. To je vse, kar sem želel pokazati fantje. 1004 01:00:10,730 --> 01:00:14,970 [Aplavz] 1005 01:00:14,970 --> 01:00:18,950 Vsa vprašanja? 1006 01:00:18,950 --> 01:00:21,000 [CS50.TV]