1 00:00:00,000 --> 00:00:02,150 >> [Seminar] [Kohana: Lagani 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 >> Pozdrav svima. Moje ime je Brandon. 5 00:00:09,130 --> 00:00:11,000 Ja sam junior ovdje na faksu radi računalne znanosti, a danas ćemo govoriti o 6 00:00:11,000 --> 00:00:14,460 Kohana, što je PHP web development okvir. 7 00:00:14,460 --> 00:00:17,260 Danas će biti uživo kodiranja seminar, 8 00:00:17,260 --> 00:00:21,000 pa ja sam zapravo će potrošiti 5-10 minuta objašnjavajući što Kohana je, 9 00:00:21,000 --> 00:00:25,000 i onda sam doslovno ću izgraditi super jednostavan blog 10 00:00:25,000 --> 00:00:28,570 za tebe ovdje doslovno od nule. 11 00:00:28,570 --> 00:00:32,229 Mi ćemo preuzeti kod sa web stranice Kohana, 12 00:00:32,229 --> 00:00:35,000 i da ćemo početi graditi blog, i nadam se da ćete biti vrlo poučna, 13 00:00:35,000 --> 00:00:37,000 zato što ćete vidjeti, možda ću možda napraviti neke pogreške, 14 00:00:37,000 --> 00:00:39,000 a vi ćete me vidjeti kako se oporaviti od njih, 15 00:00:39,000 --> 00:00:42,040 ili ćete vidjeti moj misaoni proces kao što sam izgraditi kroz ovaj blog, 16 00:00:42,040 --> 00:00:44,000 A u međuvremenu, također ćete se upoznati sa samim okvirima. 17 00:00:44,000 --> 00:00:48,000 Nadam se da će biti vrlo poučna vježba. 18 00:00:48,000 --> 00:00:51,370 >> Prvo, točno ono što je okvir? 19 00:00:51,370 --> 00:00:54,000 Ako ste uzimanje CS50 do sada, niste stvarno radio s bilo 20 00:00:54,000 --> 00:00:56,000 okviri još, a što je ovo. 21 00:00:56,000 --> 00:01:00,000 Vjerojatno ste učinili jednom izradu web pset već, 22 00:01:00,000 --> 00:01:03,000 i recimo da i dalje graditi web stranice i držati izgradnju web stranice. 23 00:01:03,000 --> 00:01:05,000 Vi ćete početi primjećivati ​​nekoliko stvari. 24 00:01:05,000 --> 00:01:07,000 Prva stvar koju ćete primijetiti je da vjerojatno radimo iste stvari 25 00:01:07,000 --> 00:01:09,150 iznova i iznova sve vrijeme, 26 00:01:09,150 --> 00:01:13,000 stvari kao što su čišćenje korisničkih ulaznih podataka, 27 00:01:13,000 --> 00:01:17,250 stvari kao što su organiziranje datoteka na određeni način. 28 00:01:17,250 --> 00:01:19,000 Druga stvar koju ćete vjerojatno primijetiti je da je vaš broj 29 00:01:19,000 --> 00:01:21,000 može početi postati vrlo, vrlo neuredan, 30 00:01:21,000 --> 00:01:24,000 i možete ga ostaviti u neredu i samo imati vrlo teško vrijeme održavanja, 31 00:01:24,000 --> 00:01:26,000 ili možda početi strukturirati svoj kod i što je modularna 32 00:01:26,000 --> 00:01:28,510 na određeni način da bi ga više održiv. 33 00:01:28,510 --> 00:01:31,020 >> Ovo je mjesto gdje web okviri osnovi ušla 34 00:01:31,020 --> 00:01:33,680 Ti ljudi koji su gradili puno web stranica, rekli su, 35 00:01:33,680 --> 00:01:35,820 "Ne trebamo ponoviti to svaki put smo izgraditi web stranice." 36 00:01:35,820 --> 00:01:39,050 "Zašto ne bismo napraviti paket koji radi sve te stvari za vas 37 00:01:39,050 --> 00:01:41,250 svaki put kada želite izgraditi web stranice? " 38 00:01:41,250 --> 00:01:43,030 I tako da kada napravite novu web stranicu, 39 00:01:43,030 --> 00:01:45,880 vi samo usredotočiti na ono što je točno ovaj website je oko. 40 00:01:45,880 --> 00:01:48,630 Ne morate ponoviti sve različite konfiguracije 41 00:01:48,630 --> 00:01:53,070 i razdvajanje kodova i prepisivanja koda 42 00:01:53,070 --> 00:01:56,180 da se često morate učiniti kada ste izradu web stranice. 43 00:01:56,180 --> 00:01:59,410 Ideja je da se okvir omogućuje da napisati kôd na višoj razini 44 00:01:59,410 --> 00:02:01,030 bez brige o detaljima na nižoj razini. 45 00:02:01,030 --> 00:02:03,670 Nižoj razini detalja moglo biti nešto slično 46 00:02:03,670 --> 00:02:07,250 bave čišćenje korisničkih ulaznih podataka. 47 00:02:07,250 --> 00:02:09,320 To je nešto što vam stvarno ne treba brinuti o tome. 48 00:02:09,320 --> 00:02:12,370 Trebali bi se usredotočiti na ono što vaše web namjena je zapravo o tome. 49 00:02:12,370 --> 00:02:14,790 To eliminira puno predloženi koda. 50 00:02:14,790 --> 00:02:16,640 To je arhitektura za svoj projekt. 51 00:02:16,640 --> 00:02:18,680 >> Najpopularniji jedan će biti Model-View-Controller, 52 00:02:18,680 --> 00:02:20,380 što ću govoriti o za sekundu. 53 00:02:20,380 --> 00:02:22,790 I puno puta ove okviri utjelovljuju skup postupaka, 54 00:02:22,790 --> 00:02:25,750 Pravila i najbolje prakse za korištenje 55 00:02:25,750 --> 00:02:28,190 tako da kada se usvoji web okvir 56 00:02:28,190 --> 00:02:30,050 morate napisati svoj kod na određeni način, 57 00:02:30,050 --> 00:02:32,430 i to je općenito dogovoren set principa 58 00:02:32,430 --> 00:02:34,290 od strane zajednice koja je općenito prihvaćeno da se 59 00:02:34,290 --> 00:02:36,230 Dobar način pisanja koda. 60 00:02:36,230 --> 00:02:38,260 To čini kod više održiv, više koristiti, 61 00:02:38,260 --> 00:02:40,030 tako dalje i tako dalje. 62 00:02:40,030 --> 00:02:42,740 I na kraju, što želim naglasiti o okvirima 63 00:02:42,740 --> 00:02:45,980 u odnosu knjižnicama je ova ideja o inverziji kontrolom, a što je ovo. 64 00:02:45,980 --> 00:02:48,430 Razlika između knjižnice i okvir je da se s knjižnicom 65 00:02:48,430 --> 00:02:51,990 još uvijek pišete glavni program, 66 00:02:51,990 --> 00:02:54,460 i ti si vrsta zazivajući knjižnicu 67 00:02:54,460 --> 00:02:56,810 i pozivajući knjižnici nešto učiniti za tebe. 68 00:02:56,810 --> 00:02:58,180 Razlika između knjižnice i okvir 69 00:02:58,180 --> 00:03:01,620 je da okvir započinje s kontrolom, 70 00:03:01,620 --> 00:03:03,260 i to zaziva svoj kôd, 71 00:03:03,260 --> 00:03:06,190 pa možete misliti o njemu kao - to je razlog zašto se to zove okvir - 72 00:03:06,190 --> 00:03:09,700 okvir pruža ovaj okvir i strukture za svoj kod, 73 00:03:09,700 --> 00:03:11,320 i popuniti rupe, 74 00:03:11,320 --> 00:03:13,990 a to će biti očitiji u sekundi 75 00:03:13,990 --> 00:03:16,670 kad me vidiš početi pisati kod u kontekstu okvira. 76 00:03:16,670 --> 00:03:19,130 Vi ćete vidjeti da sam popunjavanja praznine, 77 00:03:19,130 --> 00:03:22,450 i okvir vrsta kontrolirajući sve pokretne dijelove, 78 00:03:22,450 --> 00:03:27,420 i moram staviti komada na pravim mjestima. 79 00:03:27,420 --> 00:03:29,360 >> Danas ćemo govoriti o Kohana, 80 00:03:29,360 --> 00:03:31,610 koji je jedan od mnogih PHP okvira. 81 00:03:31,610 --> 00:03:34,550 Postoje web okviri, a tu su i one u gotovo svakom pojedinom jeziku, 82 00:03:34,550 --> 00:03:38,330 i Hvatam Kohana jer Kohana je nedvojbeno 83 00:03:38,330 --> 00:03:43,250 i općenito priznat kao najlakši PHP okvira kako bi pokupili. 84 00:03:43,250 --> 00:03:45,940 To je najčešće lagana. 85 00:03:45,940 --> 00:03:48,470 Ima i drugih one vani koje dolaze s mnogo, mnogo više mogućnosti, 86 00:03:48,470 --> 00:03:51,590 ali oni imaju tendenciju da se više teško pokupiti. 87 00:03:51,590 --> 00:03:54,920 I na kraju, Kohana koristi MVC arhitekture. 88 00:03:54,920 --> 00:03:57,780 To je dovoljno lagan da smo doslovno može izgraditi projekt 89 00:03:57,780 --> 00:03:59,620 upravo ovdje ispred tvojih očiju, a možete i prilično 90 00:03:59,620 --> 00:04:02,780 pratiti uz prilično lako. 91 00:04:02,780 --> 00:04:04,420 >> Što je MVC arhitekture? 92 00:04:04,420 --> 00:04:06,540 Ona se zalaže za Model-View-Controller, 93 00:04:06,540 --> 00:04:09,560 a možda, ako mislite o kodu ste pisali do sada 94 00:04:09,560 --> 00:04:11,280 za neke od vaših web razvoj psets 95 00:04:11,280 --> 00:04:14,710 možda ćete moći vidjeti neke od ovoga, ali obično kada počnete pisati 96 00:04:14,710 --> 00:04:16,500 složeniji web aplikacija, 97 00:04:16,500 --> 00:04:21,209 podjela između tih triju segmenata postaje sve očitije. 98 00:04:21,209 --> 00:04:26,740 Ja izložio MVC ovdje nekako kao stog, 99 00:04:26,740 --> 00:04:29,920 i često ćete čuti kako ljudi razgovaraju o hrpama u izradu web stranica, 100 00:04:29,920 --> 00:04:33,760 a to je da ilustriraju ideju da 101 00:04:33,760 --> 00:04:37,510 svaki sloj, svaka komponenta zapravo pokušava komunicirati samo 102 00:04:37,510 --> 00:04:40,750 između 2 ostalih komponenti. 103 00:04:40,750 --> 00:04:44,550 Netko pristupa vaše web stranice kao klijent ili preglednik. 104 00:04:44,550 --> 00:04:48,870 Oni su u interakciji sa svojim programom kroz pogled koda. 105 00:04:48,870 --> 00:04:50,500 Pogled koda komunicira sa kontrolerom. 106 00:04:50,500 --> 00:04:52,400 Regulator interakciju s modelom, 107 00:04:52,400 --> 00:04:55,090 i modela u interakciju s SQL baze podataka. 108 00:04:55,090 --> 00:04:59,670 I nema hopping između ako pišete svoj kod ispravno. 109 00:04:59,670 --> 00:05:01,670 >> Što ove stvari učiniti? 110 00:05:01,670 --> 00:05:06,020 Model suštini je dio koda koji se bavi svojim podacima. 111 00:05:06,020 --> 00:05:09,100 Sve što se bavi s bazom podataka, s predmetima koji pohranjuju, 112 00:05:09,100 --> 00:05:11,280 ili dohvaćanje one objekte u bazi podataka, 113 00:05:11,280 --> 00:05:13,450 da sve se barata modelu. 114 00:05:13,450 --> 00:05:15,290 Možda imate objekte u bazi podataka. 115 00:05:15,290 --> 00:05:17,700 Mi ćemo stvoriti model koji se odnosi na radna mjesta, 116 00:05:17,700 --> 00:05:19,760 pa poslije može imati neke atribute na njega. 117 00:05:19,760 --> 00:05:23,900 Možda ćete morati funkcije oko odlaganje onih postove ili dohvaćanje postove 118 00:05:23,900 --> 00:05:26,270 ili filtriranje postove i tako dalje i tako dalje, 119 00:05:26,270 --> 00:05:28,880 i to je sve kod koji se barata modelu. 120 00:05:28,880 --> 00:05:31,780 Regulator je vrsta aplikacija logike, 121 00:05:31,780 --> 00:05:37,910 i puno različitih stvari može ići u logiku aplikacije. 122 00:05:37,910 --> 00:05:39,790 Ako ste u razgovoru s drugom API, 123 00:05:39,790 --> 00:05:42,310 da mogu biti tamo gdje ste se bave s logikom aplikacije. 124 00:05:42,310 --> 00:05:47,990 Ako pokušavate morati dovesti u podataka iz više različitih modela 125 00:05:47,990 --> 00:05:51,540 i imaju ih kombinirati na neki način, koji često može biti obrađene od strane regulatora. 126 00:05:51,540 --> 00:05:53,820 Na primjer, na Facebook-u, ako je netko prijatelj, 127 00:05:53,820 --> 00:05:58,500 onda možda taj čin uspostave taj odnos 128 00:05:58,500 --> 00:06:00,490 može biti učinjeno od strane regulatora. 129 00:06:00,490 --> 00:06:04,350 >> I na kraju, pogled je kod koji se generira ono što zapravo vidi. 130 00:06:04,350 --> 00:06:07,410 Puno puta mislim u CS50 psets 131 00:06:07,410 --> 00:06:10,050 oni zapravo ne potiču dečki odvojiti te tri stvari. 132 00:06:10,050 --> 00:06:12,430 Vjerojatno ćete imati ovaj veliki, dugo datoteke gdje na vrhu 133 00:06:12,430 --> 00:06:15,130 što bi neki SQL upita i možda napraviti neke obrade 134 00:06:15,130 --> 00:06:17,020 na podacima koje iz baze podataka, 135 00:06:17,020 --> 00:06:19,370 i onda imate svu svoju HTML na dnu. 136 00:06:19,370 --> 00:06:22,840 A može se dogoditi da, kao što se otvorilo više i više stranica 137 00:06:22,840 --> 00:06:25,790 da ćete imati neki kod ponavljanja, a također, 138 00:06:25,790 --> 00:06:29,600 stvar je vaš predmet dobiva stvarno velika i duga 139 00:06:29,600 --> 00:06:32,370 i postaje nezgrapan za upravljanje. 140 00:06:32,370 --> 00:06:34,500 Razlog zašto MVC je tako dobro smatrati 141 00:06:34,500 --> 00:06:36,120 je zbog nekoliko razloga. 142 00:06:36,120 --> 00:06:38,110 Prva stvar je nešto što se zove odvajanje pitanja 143 00:06:38,110 --> 00:06:40,370 što je ideja da kad imate - 144 00:06:40,370 --> 00:06:43,520 idealno 1 dio koda treba napraviti jedan stvar i to jako dobro, 145 00:06:43,520 --> 00:06:47,210 i ne bi trebalo kombinirati dijelove koda koji rade nespojivih stvari. 146 00:06:47,210 --> 00:06:49,230 Na primjer, pregledati kod i Kljuc, 147 00:06:49,230 --> 00:06:51,040 oni stvarno ne moraju biti povezani. 148 00:06:51,040 --> 00:06:53,290 Oni ne moraju biti u istim datotekama, pa kad možete, odvojite ih 149 00:06:53,290 --> 00:06:55,300 tako da je lako održavati. 150 00:06:55,300 --> 00:06:57,130 >> Druga stvar je kod ponovne upotrebe. 151 00:06:57,130 --> 00:06:59,770 Vi svibanj pronaći sebe pisanje isti SQL upita ili radi 152 00:06:59,770 --> 00:07:03,060 Na sličan način kako bi se moglo crpiti u 1 funkcije, 153 00:07:03,060 --> 00:07:05,440 i to je ideja iza modela i kontrolora, 154 00:07:05,440 --> 00:07:09,690 nakon što je u zasebnom funkcije koje možete ponovno koristiti u različitim mjestima u svoj projekt. 155 00:07:09,690 --> 00:07:12,420 I na kraju, koji je vezan za sušenje kôd, 156 00:07:12,420 --> 00:07:14,700 ili se ne ponavlja, ne ponavljati se. 157 00:07:14,700 --> 00:07:18,090 To je vrlo razumljiva u razvoju. 158 00:07:18,090 --> 00:07:20,110 Kad god možete, ne želim da se ponovi, jer ako se ponovi, 159 00:07:20,760 --> 00:07:23,400  to je puno skuplji za održavanje. 160 00:07:23,400 --> 00:07:26,040 Ako želite promijeniti jedan stvar, morate ga promijeniti posvuda, 161 00:07:26,040 --> 00:07:30,230 i to vodi do greške, a to je strašno. 162 00:07:30,230 --> 00:07:32,010 >> Redu. 163 00:07:32,010 --> 00:07:37,270 Bilo kakva pitanja do sada oko Kohana uopće? 164 00:07:37,270 --> 00:07:39,200 Velika. 165 00:07:39,200 --> 00:07:42,300 Sada ćemo zaroniti u živu kodiranja sjednici, 166 00:07:42,300 --> 00:07:48,050 i nadamo se da sve ide dobro. 167 00:07:57,200 --> 00:08:00,050 Ja ću osnovi graditi ovu stranicu 168 00:08:00,050 --> 00:08:03,910 na jednom od mojih udaljenih poslužitelja, i na taj način ti dečki također može 169 00:08:03,910 --> 00:08:06,310 vidite web stranice i pristupiti web stranici, 170 00:08:06,310 --> 00:08:10,990 i okoliš je bolje konfiguriran od mog udaljenom računalu, 171 00:08:10,990 --> 00:08:14,580 jer to je trčanje Linux umjesto OS X. 172 00:08:14,580 --> 00:08:16,260 Mi smo doslovno će početi. 173 00:08:16,260 --> 00:08:18,110 KohanaFramework.org. 174 00:08:18,110 --> 00:08:21,350 Ja ću preuzeti kod sa web stranice. 175 00:08:21,350 --> 00:08:24,610 Ja ću kopirati link adresu, 176 00:08:24,610 --> 00:08:29,770 ići na moj server, preuzmite ga, 177 00:08:29,770 --> 00:08:33,000 i ja ću ga izvući. 178 00:08:38,330 --> 00:08:45,710 >> [Student] Koji je najveći možete napraviti tekst? 179 00:08:45,710 --> 00:08:47,330 [Brandon Liu] Je li bolje? 180 00:08:47,330 --> 00:08:50,070 [Student] Je li to izvedivo? >> [Brandon Liu] Da, to je u redu. 181 00:08:50,070 --> 00:08:54,500 Ja skinuti ZIP datoteku i raspakirali da u imenik zove Kohana, 182 00:08:54,500 --> 00:08:58,820 i da ćemo preimenovati tu CS50-Kohana, 183 00:08:58,820 --> 00:09:01,140 i idemo u. 184 00:09:01,140 --> 00:09:03,610 Strašan. 185 00:09:03,610 --> 00:09:06,870 Ovdje možete vidjeti hrpu različitih datoteka. 186 00:09:06,870 --> 00:09:10,140 Većina vas može ignorirati - Nećemo ići kroz svaku datoteku koja je ovdje 187 00:09:10,140 --> 00:09:13,130 zbog naših vremenskih ograničenja, 188 00:09:13,130 --> 00:09:16,310 ali općenito kada instalirate Kohana, prva stvar koju trebate učiniti 189 00:09:16,310 --> 00:09:23,210 je li ide u imenik, 190 00:09:23,210 --> 00:09:26,050 a vi ćete zapravo napraviti neke testove okoliša i sitnica 191 00:09:26,050 --> 00:09:28,640 kako bi provjerili svoje okoline ispravno postavljena na trčanje Kohana 192 00:09:28,640 --> 00:09:31,450 i uvjerite se da je sve u redu. 193 00:09:31,450 --> 00:09:35,510 Možete vidjeti i većina stvari prošla, ali uglavnom se uvijek pokrenuti u ovoj jednoj problema 194 00:09:35,510 --> 00:09:38,180 gdje se žali da su neki katalog je ne može pisati, 195 00:09:38,180 --> 00:09:40,410 te da je zbog neke dozvole. 196 00:09:40,410 --> 00:09:43,080 Ne znam koliko ti dečki su naučili o dozvolama datotečnih u CS50, 197 00:09:43,080 --> 00:09:47,920 ali ako to ne učinite izradu web stranica, vi ćete izvoditi u tom pitanju puno. 198 00:09:47,920 --> 00:09:58,340 Ja ću učiniti za zapisivanje 199 00:09:58,340 --> 00:10:03,390 i mislim da imam i to - tamo idemo. 200 00:10:03,390 --> 00:10:07,040 >> Ok, tako da sada možete vidjeti sve što je prošlo, 201 00:10:07,040 --> 00:10:10,000 a sada će vam reći da se preimenovati install.php datoteku. 202 00:10:10,000 --> 00:10:15,630 Ja ću pomaknuti install.php datoteku na installed.php, 203 00:10:15,630 --> 00:10:19,610 i sada, ako sam osvježiti, 204 00:10:19,610 --> 00:10:22,810 to mi daje neku pogrešku, a to je gdje dolazi u. ispravljanje pogrešaka 205 00:10:22,810 --> 00:10:25,610 Ovo je mjesto gdje možete vidjeti što se zapravo dogoditi. 206 00:10:25,610 --> 00:10:28,460 Stvar je, po defaultu, Kohana pretpostavlja da 207 00:10:28,460 --> 00:10:31,480 Vaš projekt je u korijenski direktorij svoje domene, 208 00:10:31,480 --> 00:10:35,920 pa se očekuje da će na demo.brandonkliu.com. 209 00:10:35,920 --> 00:10:37,540 Moramo reći da je to zapravo u podmapi. 210 00:10:37,540 --> 00:10:39,820 To je u podmapu naziva CS50 Kohana. 211 00:10:39,820 --> 00:10:42,640 Stvar je u tome, to je misinterpreting CS50-Kohana 212 00:10:42,640 --> 00:10:45,680 kao nešto drugo, što ću vam objasniti u sekundi. 213 00:10:45,680 --> 00:10:49,910 No, trebao bih vam reći da je to nešto što je i za očekivati. 214 00:10:49,910 --> 00:10:53,700 Ono što ćemo učiniti je da ćemo ići u tu mapu pod nazivom bootstrap.php, 215 00:10:53,700 --> 00:10:59,260 koja je konfiguracija mapu gdje se puno različitih stvari postaviti. 216 00:10:59,260 --> 00:11:01,570 Ja otvoriti da gore. 217 00:11:01,570 --> 00:11:09,790 Onda možda i jedna od prvih stvari koje ću učiniti je promijeniti vremensku zonu. 218 00:11:09,790 --> 00:11:13,910 >> A onda ćemo vidjeti. 219 00:11:13,910 --> 00:11:15,180 Aha! Upravo ovdje. 220 00:11:15,180 --> 00:11:18,690 Ima hrpa različitih konfiguracija izreka ovdje, 221 00:11:18,690 --> 00:11:21,700 ali jedna tražim je to stvar zove baza URL, 222 00:11:21,700 --> 00:11:24,570 i po defaultu sam dobiti ga postaviti na Kohana, 223 00:11:24,570 --> 00:11:29,020 ali ja ću to promijeniti do CS50-Kohana, 224 00:11:29,020 --> 00:11:32,880 i ja mislim da bi trebao to popraviti. 225 00:11:32,880 --> 00:11:34,150 Da, super. 226 00:11:34,150 --> 00:11:39,530 Po defaultu, da se vidi da to radi, ona kaže, "Hello World". 227 00:11:39,530 --> 00:11:42,930 Odakle vam to? Kako smo dobili do Pozdrav svijetu? 228 00:11:42,930 --> 00:11:47,640 Gdje se točno nalazi kod koji je zapravo napisao? 229 00:11:47,640 --> 00:11:50,240 Shvatiti da, ja ću predstaviti ovaj koncept nazvan usmjeravanje. 230 00:11:50,240 --> 00:11:52,590 Više-manje sve web okviri imaju koncept nazvan usmjeravanja, 231 00:11:52,590 --> 00:11:57,230 što je komad softvera koji će mapirati određeni URL 232 00:11:57,230 --> 00:12:01,550 na određeni dio koda unutar svog okvira. 233 00:12:01,550 --> 00:12:07,510 Na primjer, ako imate neki URL i idete na neki URL poput foo.com / blog / sve 234 00:12:07,510 --> 00:12:11,170 što onda okvir će učiniti - ili barem ono što Kohana će učiniti - 235 00:12:11,170 --> 00:12:15,540 se da će naći klase pod nazivom kontroler blog, 236 00:12:15,540 --> 00:12:18,720 i to će pokrenuti funkciju imenovao akciju sve. 237 00:12:18,720 --> 00:12:20,160 Znam ja govorim o klasi i funkcijama, 238 00:12:20,160 --> 00:12:23,860 i znam da ti dečki nisu pokriveni klase i funkcije 239 00:12:23,860 --> 00:12:26,470 u CS50 još, ali za sada, 240 00:12:26,470 --> 00:12:29,800 možete misliti na nastavu samo kao skupinu funkcija, 241 00:12:29,800 --> 00:12:32,900 način grupiranja funkcije zajedno. 242 00:12:32,900 --> 00:12:37,690 To je zapravo sve što trebate znati. 243 00:12:37,690 --> 00:12:43,120 >> Sada ako pogledamo našu strukturu mapa, 244 00:12:43,120 --> 00:12:47,110 unutar primjeni mape postoji još jedan folder naziva klase, 245 00:12:47,110 --> 00:12:49,200 a ostale mape su pozvani kontroler i model. 246 00:12:49,200 --> 00:12:52,530 Ako pogledate unutar mape Controller, 247 00:12:52,530 --> 00:12:56,330 vidimo da je spis pod nazivom Dobrodošli, 248 00:12:56,330 --> 00:13:00,370 i možete vidjeti ovdje je klasa zove kontroler Dobrodošli, 249 00:13:00,370 --> 00:13:02,340 a je funkcija zove Action Index, 250 00:13:02,340 --> 00:13:06,360 i što je to ipak ona postavlja tijelo svog odgovora na Pozdrav svijetu. 251 00:13:06,360 --> 00:13:08,730 To je mjesto gdje kod se piše. 252 00:13:08,730 --> 00:13:11,610 Drugo pitanje je, dobro, ja ne ići na 253 00:13:11,610 --> 00:13:13,680 bla, bla, bla, / welcome / index. 254 00:13:13,680 --> 00:13:16,250 Kako sam završiti ovdje? 255 00:13:16,250 --> 00:13:20,410 Pa, to je samo zato 256 00:13:20,410 --> 00:13:22,410 Ovdje na dnu naše bootstrap datoteke 257 00:13:22,410 --> 00:13:24,550 gdje smo postavili naše rute 258 00:13:24,550 --> 00:13:26,570 možete vidjeti da su oni postavili neke zadane za vas. 259 00:13:26,570 --> 00:13:28,990 Zadana kontroler je dobrodošao. Zadana akcija Indeks. 260 00:13:28,990 --> 00:13:31,600 Zato, kada smo stavili ništa tamo automatski otišao u Welcome kontroler 261 00:13:31,600 --> 00:13:33,940 i indeks akcija. 262 00:13:33,940 --> 00:13:37,460 >> Sve smisla do sada? 263 00:13:37,460 --> 00:13:40,850 Sada, možete učiniti više nego samo ići na upravljaču 264 00:13:40,850 --> 00:13:43,670 i određenu radnju. 265 00:13:43,670 --> 00:13:48,480 Također možete proći u parametrima na kontroleru. 266 00:13:48,480 --> 00:13:56,390 Samo kao primjer, 267 00:13:56,390 --> 00:14:04,070 Ja ću dodati još jednu akciju na ovom kontroleru za pokazati. 268 00:14:04,070 --> 00:14:09,130 Nazovimo ovu akciju Echo, jer to će vam reći sve što ga daju, 269 00:14:09,130 --> 00:14:17,510 i tako ja zapravo idem da zgrabite 270 00:14:17,510 --> 00:14:20,960 parametar koji će biti poslana preko mene na program usmjeravanja, 271 00:14:20,960 --> 00:14:24,440 i kao što možete vidjeti ovdje, 272 00:14:24,440 --> 00:14:28,440 ova linija upravo ovdje, možete vidjeti da je 273 00:14:28,440 --> 00:14:31,270 To u osnovi znači da imate kontroler, a imate /, 274 00:14:31,270 --> 00:14:33,480 i imate akciju, i imate još /, 275 00:14:33,480 --> 00:14:39,140 i da će biti parametri, i zato imamo ovu ime ID 276 00:14:39,140 --> 00:14:42,450 unutar zagrada, to znači da smo imenovanja tog parametra ID. 277 00:14:42,450 --> 00:14:45,490 Kasnije u mom kontroler kod ako želim zgrabite držite tog parametra, 278 00:14:45,490 --> 00:14:51,790 Ja mogu koristiti kod sam napisao, naći parametar nazivom ID. 279 00:14:51,790 --> 00:14:59,290 To je ono što sam učinio ovdje, a ja ću se vratiti i reći: 280 00:14:59,290 --> 00:15:07,090 "Rekao si" to. 281 00:15:07,090 --> 00:15:10,760 I tako sada, ako idem na našoj web stranici, 282 00:15:10,760 --> 00:15:19,550 Idem cs50-kohana/welcome/echo/Helloooo-- 283 00:15:19,550 --> 00:15:21,420 oh, to je točno. 284 00:15:21,420 --> 00:15:23,930 Tu je jedan korak sam izostavio. 285 00:15:23,930 --> 00:15:27,020 To je dio live kodiranje ideje. 286 00:15:27,020 --> 00:15:36,100 >> Evo jedna stvar. Idemo vidjeti. 287 00:15:36,100 --> 00:15:38,870 Tako obično po defaultu s puno tih web aplikacija 288 00:15:38,870 --> 00:15:42,820 morate uključiti ovaj index.php stvar u svoj URL, 289 00:15:42,820 --> 00:15:46,410 jer ideja je index.php je vrsta ulazna točka 290 00:15:46,410 --> 00:15:48,250 vašeg zahtjeva, ali, naravno, 291 00:15:48,250 --> 00:15:50,110 to je vrsta neugodno imati. 292 00:15:50,110 --> 00:15:53,790 Vi ne želite imati index.php pojaviti u svoj URL, 293 00:15:53,790 --> 00:15:56,080 i gotovo svaki web okvir iz kutije 294 00:15:56,080 --> 00:15:58,440 ima taj problem index.php, 295 00:15:58,440 --> 00:16:03,370 i tako da ćete morati poduzeti neke mjere koje će se moći ukloniti kako. 296 00:16:03,370 --> 00:16:07,540 I tako, u ovom slučaju, 297 00:16:07,540 --> 00:16:11,450 što ćemo učiniti je da ćemo koristiti datoteku s imenom. htaccess, 298 00:16:11,450 --> 00:16:13,900 i to je nešto što je specifično za Apache web poslužitelj, 299 00:16:13,900 --> 00:16:16,290 i to može učiniti stvari kao što prepisati URL-ove 300 00:16:16,290 --> 00:16:19,350 i preusmjeravanje URL-ove i tako dalje i tako dalje, 301 00:16:19,350 --> 00:16:24,280 i Kohana je lijepo dovoljno pružiti predložak. htaccess da možemo koristiti. 302 00:16:24,280 --> 00:16:28,300 >> Kao što možete vidjeti, tu je sliku tamo zove example.htaccess, 303 00:16:28,300 --> 00:16:33,410 i idemo kopirati da bi. htaccess. 304 00:16:33,410 --> 00:16:36,950 Idem otvoriti to i urediti ga, 305 00:16:36,950 --> 00:16:40,840 a zapravo to ne hrpu različitih stvari. 306 00:16:40,840 --> 00:16:45,320 Ključan možda želite pogledati je upravo ovdje. 307 00:16:45,320 --> 00:16:49,840 Ideja je da se postavlja ovo pravilo koje kaže, 308 00:16:49,840 --> 00:16:56,400 "Dobro, što god upisati, upotrijebiti nesto index.php na to." 309 00:16:56,400 --> 00:16:58,710 Možete vidjeti da. 310 00:16:58,710 --> 00:17:00,370 . * Zalaže za ništa, slagala ništa, 311 00:17:00,370 --> 00:17:03,300 i onda drugi dio je index.php / $ 0, 312 00:17:03,300 --> 00:17:07,410 i 0 dolara odnosi se na ono što je prethodno uskladiti. 313 00:17:07,410 --> 00:17:09,500 Ima li to smisla? 314 00:17:09,500 --> 00:17:12,190 Ali zapravo ključna stvar koju želim promijeniti je promijeniti tu prepisati bazu, 315 00:17:12,190 --> 00:17:14,300 što je URL baze. 316 00:17:14,300 --> 00:17:17,780 To na neki način pretpostavlja gdje radite od. 317 00:17:17,780 --> 00:17:22,560 Ja ću dodati CS50 Kohana na to, 318 00:17:22,560 --> 00:17:26,530 i na taj način sada, ako sam maknuti index.php, 319 00:17:26,530 --> 00:17:32,110 to bi trebalo raditi, a ja ću dodati neke brojeve 320 00:17:32,110 --> 00:17:36,380 da vam pokazati da je to doista uspjelo. 321 00:17:36,380 --> 00:17:38,130 Zvuči dobro. 322 00:17:38,130 --> 00:17:40,260 >> Nekih pitanja? 323 00:17:40,260 --> 00:17:42,300 [Student] Kako se to znati napraviti 123? 324 00:17:42,300 --> 00:17:44,120 Je li to argument? 325 00:17:44,120 --> 00:17:46,560 Točno. Možete misliti da je to baš kao argument. 326 00:17:46,560 --> 00:17:52,410 No, čudno je stvar, ipak, da je način Kohana to radi 327 00:17:52,410 --> 00:17:54,910 se oni ne to učiniti upravo kao argument. 328 00:17:54,910 --> 00:17:56,930 Morate ga zgrabite ovako. 329 00:17:56,930 --> 00:18:01,030 Morate zgrabite zahtjev objekt i pitati za parametar, koji se pod nazivom ID, 330 00:18:01,030 --> 00:18:03,240 i to ime ID dolazi iz tog bootstrap datoteke 331 00:18:03,240 --> 00:18:06,990 da sam pokazao ranije, a ime ID je u tim zagrada, 332 00:18:06,990 --> 00:18:11,580 a to je kako da zgrabite one parametre. 333 00:18:11,580 --> 00:18:14,010 Strašan. 334 00:18:14,010 --> 00:18:17,550 Bilo koja druga pitanja? 335 00:18:17,550 --> 00:18:20,500 Kao što sam rekao, regulatori, oni nositi aplikacijsku logiku, 336 00:18:20,500 --> 00:18:22,980 pa to je jedan primjer gdje možete vidjeti that's - 337 00:18:22,980 --> 00:18:24,830 to je vrlo osnovni, ali to je još uvijek logika aplikacije, 338 00:18:24,830 --> 00:18:27,980 Ideja grabbing parametar i stvaranja nove niz 339 00:18:27,980 --> 00:18:31,920 koji kaže: "Rekli ste blah", a onda pljuju kako vratiti k vama. 340 00:18:31,920 --> 00:18:34,030 I uglavnom ono što trebate učiniti je stvoriti različite kontrolere. 341 00:18:34,030 --> 00:18:36,450 Možete stvoriti zasebne kontrolere za različite dijelove vaše web stranice. 342 00:18:36,450 --> 00:18:38,160 >> Danas ćemo napraviti vrlo jednostavnu web stranicu, 343 00:18:38,160 --> 00:18:40,420 i to će biti vrlo osnovni blog. 344 00:18:40,420 --> 00:18:43,780 Idemo napraviti novi kontroler samo za postove u blogu. 345 00:18:43,780 --> 00:18:47,060 Ali onda kad bih i dodati komentare na blogu, 346 00:18:47,060 --> 00:18:50,140 onda bih vjerojatno želite napraviti novi kontroler za te komentare. 347 00:18:50,140 --> 00:18:53,380 Da sam htio dodati korisnike, vjerojatno bih dodati novi kontroler za one korisnike, 348 00:18:53,380 --> 00:18:57,000 i općenito, ideja je da svaki put kad imate novi model, 349 00:18:57,000 --> 00:18:59,630 Novi objekt podaci da ste se bave, 350 00:18:59,630 --> 00:19:02,970 imate jedan kontroler za taj objekt podataka. 351 00:19:02,970 --> 00:19:04,370 Danas smo se samo ide na posao s 1 podatkovni objekt, 352 00:19:04,370 --> 00:19:06,250 i da će biti postova, 353 00:19:06,250 --> 00:19:08,710 , a također možete misliti podataka objekata, kao što odgovara stolovima. 354 00:19:08,710 --> 00:19:12,160 Općenito svaka tablica odgovara 1. vrsti objekta podataka, 355 00:19:12,160 --> 00:19:15,160 pa nakon stol će imati 1 post model, 356 00:19:15,160 --> 00:19:18,230 koji će imati 1 post kontroler odgovara da je, 357 00:19:18,230 --> 00:19:22,190 i isto za komentare, isto za korisnike, i tako dalje i tako dalje. 358 00:19:22,190 --> 00:19:24,070 I to je opće pravilo. 359 00:19:24,070 --> 00:19:27,460 Tu će biti posebni slučajevi gdje se može razlikovati od onoga, 360 00:19:27,460 --> 00:19:29,300 ali 90% vremena, to je ono što će se raditi, 361 00:19:29,300 --> 00:19:32,810 a ja ću vam pokazati da je ono što ćemo raditi danas. 362 00:19:32,810 --> 00:19:35,490 1 više koncept prije nego što zaronite natrag u kodu, 363 00:19:35,490 --> 00:19:37,710 ova ideja objektno relacijskim mapiranje. 364 00:19:37,710 --> 00:19:41,200 >> Vi već učinili za razvoj pset web, 365 00:19:41,200 --> 00:19:43,820 i vidjeli ste da ćete napraviti SQL upit, 366 00:19:43,820 --> 00:19:46,510 i što god da se vraća za vas su redovi. 367 00:19:46,510 --> 00:19:50,040 Možete dobiti ove retke, a vi ih index po nekom imenu, 368 00:19:50,040 --> 00:19:55,480 naziv stupca i tablici 369 00:19:55,480 --> 00:19:57,630 a to je kako da rade s njim, 370 00:19:57,630 --> 00:19:59,290 i to može biti malo težak. 371 00:19:59,290 --> 00:20:01,810 No, osim toga, ako imate odnose unutar baze podataka, 372 00:20:01,810 --> 00:20:05,280 kao što je, na primjer, ako imam primjedbe i postove, 373 00:20:05,280 --> 00:20:11,240 onda možda želim da zgrabite roditelj dužnost komentar. 374 00:20:11,240 --> 00:20:14,350 Ako sam koristiti samo retke u SQL-u, onda je sve što mogu dobiti je ID 375 00:20:14,350 --> 00:20:19,310 matičnog post i nije stvarna sama poslije. 376 00:20:19,310 --> 00:20:21,680 No, kad smo kodiranja, što mi zapravo želimo je da se zapravo zgrabite 377 00:20:21,680 --> 00:20:23,550  Roditelj se postavljati ponekad. 378 00:20:23,550 --> 00:20:25,730 Ono objekt relacijskim mapiranje čini se 379 00:20:25,730 --> 00:20:29,480 to traje rezultate upita baze podataka 380 00:20:29,480 --> 00:20:32,420 i stavlja ga u objektima za vas, koji su puno ljepše raditi s 381 00:20:32,420 --> 00:20:34,770 od obične nizovima i redovima. 382 00:20:34,770 --> 00:20:37,550 >> Na primjer, sada kad imam komentar, možda, 383 00:20:37,550 --> 00:20:40,900 i želim da zgrabite svoj roditelj post, 384 00:20:40,900 --> 00:20:43,440 i ja možda ne komentirati strelicom post, 385 00:20:43,440 --> 00:20:45,230 onda će zapravo daj mi poslije objekt 386 00:20:45,230 --> 00:20:47,940 odgovara stvarnoj matičnog post, a ne samo neki ID, 387 00:20:47,940 --> 00:20:52,210 što bih inače morati koristiti i napraviti još jedan SQL upit da zgrabite post, 388 00:20:52,210 --> 00:20:57,430 što je nezgrapan i nepotrebno. 389 00:20:57,430 --> 00:21:01,840 I nadalje, po mapiranje svih ovih redaka podataka u objekte, 390 00:21:01,840 --> 00:21:03,760 također možete spojiti više funkcija na objekte, 391 00:21:03,760 --> 00:21:09,700 Tako je, primjerice, govorio sam o tome kako su razredi suštini grupacije funkcija. 392 00:21:09,700 --> 00:21:11,620 Možete misliti da je to tako. 393 00:21:11,620 --> 00:21:15,290 Na primjer, možda i ja imam ovaj post objekt, 394 00:21:15,290 --> 00:21:17,830 a možda i ja bih želio imati nekakvu funkciju u prilogu 395 00:21:17,830 --> 00:21:20,300 da mi u osnovi govori da je nedavno objavljena? 396 00:21:20,300 --> 00:21:23,570 Je li to bio objavljen u posljednjem tjednu, istina ili laž? 397 00:21:23,570 --> 00:21:27,320 I to je funkcija mogu priključiti na tom objektu, 398 00:21:27,320 --> 00:21:31,300 i to je stvarno zgodan da ga imaju na istom mjestu, 399 00:21:31,300 --> 00:21:33,820 a tu su i niz različitih funkcija možete stvoriti 400 00:21:33,820 --> 00:21:37,990 za te objekte, i to je stvarno lijepo biti u mogućnosti da ga priključiti na klasu, 401 00:21:37,990 --> 00:21:41,700 na objekt, a ako ste upravo imali retke koji dolaze iz baze podataka, 402 00:21:41,700 --> 00:21:43,790 onda stvarno ne mogu priložiti bilo koju funkciju na to. 403 00:21:43,790 --> 00:21:47,850 To je doslovno samo podaci. 404 00:21:47,850 --> 00:21:50,550 Sva pitanja o tome uopće? 405 00:21:50,550 --> 00:21:52,710 ORMs su vrlo česte web development, 406 00:21:52,710 --> 00:21:56,330 a tu su i puno različitih vrsta ORMs, 407 00:21:56,330 --> 00:21:58,450 i Kohana ima vlastiti ORM. 408 00:21:58,450 --> 00:22:05,050 To je vrlo osnovni, ali ćete dobiti okus kako to izgleda. 409 00:22:05,050 --> 00:22:08,780 >> Idemo stvoriti model za naše blogu, 410 00:22:08,780 --> 00:22:12,350 i prvo što mi očito trebate učiniti je stvoriti stvarni stol 411 00:22:12,350 --> 00:22:16,680 u našoj bazi podataka zapravo pohraniti svoje podatke za ta radna mjesta. 412 00:22:16,680 --> 00:22:19,260 Prvo što ću učiniti je otići na phpMyAdmin. 413 00:22:19,260 --> 00:22:21,410 Jeste li vi koristiti phpMyAdmin prije? 414 00:22:21,410 --> 00:22:23,400 Ok, super, pa vi momci već znaju što je to, 415 00:22:23,400 --> 00:22:32,200 a ja ću stvoriti novu tablicu pod nazivom Kohana postovi, 416 00:22:32,200 --> 00:22:37,820 i to će biti jako jednostavna. 417 00:22:37,820 --> 00:22:40,190 Morat ću ponovno se prijavite 418 00:23:02,620 --> 00:23:04,640 Sve ćemo učiniti danas ima autora i tijelo, 419 00:23:04,640 --> 00:23:11,930 Samo neka bude jednostavan. 420 00:23:11,930 --> 00:23:15,620 Ja ću stvoriti taj stol, 421 00:23:15,620 --> 00:23:19,620 i sada samo moramo tablicu koja predstavlja naše postove 422 00:23:19,620 --> 00:23:23,370 s 2 polja za naše autora i našem tijelu. 423 00:23:23,370 --> 00:23:26,290 Druga stvar ja ću učiniti sada je 424 00:23:26,290 --> 00:23:29,820 konfigurirati svoju web aplikaciju, tako da ne zna kako se povezati s bazom podataka, 425 00:23:29,820 --> 00:23:31,950 i to je, opet, je nešto što ćete morati učiniti sa svim web aplikacijama. 426 00:23:31,950 --> 00:23:34,790 Morate mu reći korisničko ime i lozinku 427 00:23:34,790 --> 00:23:36,990 i ime baze podataka i tako dalje i tako dalje 428 00:23:36,990 --> 00:23:40,000 shvatiti kako je zapravo za povezivanje s bazom podataka. 429 00:23:40,000 --> 00:23:58,710 >> U Kohana, imamo nešto što se zove modul baze podataka, 430 00:23:58,710 --> 00:24:02,690 iu konfiguracijskom mapu imamo ovu mapu pod nazivom Database, 431 00:24:02,690 --> 00:24:07,330 i kao što možete vidjeti, postoji hrpa postavki morate postaviti ovdje 432 00:24:07,330 --> 00:24:09,860 to reći što je korisničko ime i lozinka 433 00:24:09,860 --> 00:24:13,110 za baze podataka, tako da se zapravo može povezati s njim. 434 00:24:13,110 --> 00:24:15,010 A budući da ne želim da ti dečki zapravo znati 435 00:24:15,010 --> 00:24:17,190 korisničko ime i lozinka moje baze podataka, 436 00:24:17,190 --> 00:24:23,840 Imam sliku gdje sam već sve to postaviti, a ja ću kopirati i zalijepiti ga. 437 00:24:33,080 --> 00:24:36,870 Strašan. 438 00:24:36,870 --> 00:24:39,880 Ok. Mislim da je sve konfiguracije trebam učiniti, 439 00:24:39,880 --> 00:24:41,070 ali vidjet ćemo. 440 00:24:41,070 --> 00:24:43,720 I dalje ćemo raditi na tome, a ako se nešto ruši, 441 00:24:43,720 --> 00:24:47,490 onda ćemo to popraviti. 442 00:24:47,490 --> 00:24:51,830 Ono što ću sada učiniti je da ću stvoriti novi kontroler. 443 00:24:51,830 --> 00:24:53,190 Ili zapravo, ispričavam se. 444 00:24:53,190 --> 00:24:55,080 Prvo moram napraviti novi model. 445 00:24:55,080 --> 00:25:01,620 Ja ću stvoriti novi model pod nazivom Post.php, 446 00:25:01,620 --> 00:25:12,440 i što ćemo učiniti je da ćemo ga zvati klase Model_Post. 447 00:25:12,440 --> 00:25:15,390 Dobili su neki sintaksa označavanje na, 448 00:25:15,390 --> 00:25:19,750 pa kad kažem, "proteže ORM," to je u osnovi 449 00:25:19,750 --> 00:25:21,210 neki više objektno-orijentirano programiranje, 450 00:25:21,210 --> 00:25:23,340 koji je, nažalost, ti dečki nisu naučili u CS50 još, 451 00:25:23,340 --> 00:25:25,290 , ali to je prilično lako pokupiti. 452 00:25:25,290 --> 00:25:27,950 To mi daje svu tu dodatnu funkcionalnost koja dolazi u tom paketu ORM, 453 00:25:27,950 --> 00:25:31,120 i tako ja dobiti hrpu dodatnih funkcija i sitnica za besplatno, 454 00:25:31,120 --> 00:25:34,810 što ćete vidjeti malo u sekundi. 455 00:25:34,810 --> 00:25:37,670 >> Upravo sada zapravo sve što trebate učiniti je napraviti ovu klasu. 456 00:25:37,670 --> 00:25:39,160 Ja čak ne trebate napraviti bilo koju funkciju ili ništa, 457 00:25:39,160 --> 00:25:41,770 ali ja sam stvorio klasu koja predstavlja stol, 458 00:25:41,770 --> 00:25:44,140 i zato što sam Produžili smo ORM klasu, 459 00:25:44,140 --> 00:25:51,080 I dobili hrpu stvari za besplatno, tako da za sada ne morate postaviti više ništa gore. 460 00:25:51,080 --> 00:25:53,530 I sad ono što ću učiniti je da ću stvoriti novi kontroler, 461 00:25:53,530 --> 00:25:58,480 što ću u ime blog.php, 462 00:25:58,480 --> 00:26:04,350 i ja ću kopirati preko Welcome kontroler 463 00:26:04,350 --> 00:26:11,950 pa ja ne moram upisivati ​​neke stvari, 464 00:26:11,950 --> 00:26:20,720 i sada imam za preimenovanje toga. 465 00:26:20,720 --> 00:26:24,710 Sada ono što ću učiniti na test kako bi bili sigurni sve radi out, 466 00:26:24,710 --> 00:26:27,820 Ja ću zgrabiti prvi post iz moje baze podataka 467 00:26:27,820 --> 00:26:32,680 i ispisati tijelo post na zaslonu. 468 00:26:32,680 --> 00:26:37,920 Da biste to postigli ono što ću učiniti je prvi ću spremiti postove 469 00:26:37,920 --> 00:26:48,770 varijabli, tako što ćemo učiniti je - 470 00:26:48,770 --> 00:26:52,090 u Kohana ono što trebate učiniti je da zgrabite poštanski objekt 471 00:26:52,090 --> 00:26:55,380 nekako je težak, ali vi morate učiniti ovu stvar zove ORM :: tvornice, 472 00:26:55,380 --> 00:26:57,750 a onda prođe u nazivu modela koji želite, 473 00:26:57,750 --> 00:27:00,490 i to vraća ORM predmet koji predstavlja taj model. 474 00:27:00,490 --> 00:27:04,860 A onda, kao što sam rekao, kad smo proširiti ORM objekt, 475 00:27:04,860 --> 00:27:07,320 dobili smo sve ove metode za besplatno, tako da na primjer, 476 00:27:07,320 --> 00:27:09,200 smo dobili ovu novu funkciju pod nazivom "pronaći sve" 477 00:27:09,200 --> 00:27:12,160 koji se automatski vraća svaki post u bazi podataka, 478 00:27:12,160 --> 00:27:14,850 što je prilično povoljno. 479 00:27:14,850 --> 00:27:17,480 >> I sada u tijelu ću se vratiti 480 00:27:17,480 --> 00:27:24,860 prvi post i vratiti svoje tijelo. 481 00:27:24,860 --> 00:27:27,930 I naravno, moram stvoriti mjesto, 482 00:27:27,930 --> 00:27:31,880 pa neka je umetnuti novi post. 483 00:27:31,880 --> 00:27:37,870 Ja ću reći, "Brandona, moj prvi post." 484 00:27:37,870 --> 00:27:40,010 Strašan. 485 00:27:40,010 --> 00:27:45,910 A sada ćemo ići na blogovima 486 00:27:45,910 --> 00:27:50,960 i ako sve dobro radi - Oh, to je neka druga glupa dopuštenje file stvar opet. 487 00:27:50,960 --> 00:27:56,090 Držite na 1 sekundu. Nekako je apsurdno. 488 00:28:06,700 --> 00:28:08,490 Tu smo. Ok. 489 00:28:08,490 --> 00:28:10,040 Sredio sam taj problem dozvolu. 490 00:28:10,040 --> 00:28:12,040 On je pokušavao stvoriti neke datoteke i neki zapisnik, 491 00:28:12,040 --> 00:28:15,400 i dozvole, opet, nisu bili pravilno postavljena, pa sam to napravio 492 00:28:15,400 --> 00:28:18,320 pa te datoteke su moguće pisati i izvršna 493 00:28:18,320 --> 00:28:21,090 tako da se zapravo mogao prijaviti na stvari. 494 00:28:21,090 --> 00:28:24,220 Sada to mi daje još jednu iznimku govoreći: "klase ORM nije pronađena", 495 00:28:24,220 --> 00:28:26,960 a to je zato što sam zaboravio još jedan korak. 496 00:28:26,960 --> 00:28:37,010 To je loše. 497 00:28:37,010 --> 00:28:40,270 U bootstrap fascikl, tu su ti moduli ovdje, 498 00:28:40,270 --> 00:28:42,480 koje možete omogućiti ili onemogućiti. 499 00:28:42,480 --> 00:28:44,340 To su hrpa različitih mogućnosti koje možete odabrati koristiti 500 00:28:44,340 --> 00:28:46,180 roku Kohana, što je vrsta lijepo. 501 00:28:46,180 --> 00:28:49,090 >> Na primjer, oni imaju autentifikaciju modul 502 00:28:49,090 --> 00:28:51,170 koje možete koristiti za provjeru autentičnosti korisnika. 503 00:28:51,170 --> 00:28:53,390 Oni imaju caching modul, ako želite provesti 504 00:28:53,390 --> 00:28:57,870 nekakva caching natrag kraj napraviti aplikacije rade brže i sitnica. 505 00:28:57,870 --> 00:29:02,140 Moramo omogućiti bazu podataka i ORM modul, 506 00:29:02,140 --> 00:29:04,280 jer kao što sam rekao, mi smo pomoću baze podataka, očito, 507 00:29:04,280 --> 00:29:08,200 i mi također trebaju omogućiti ORM modul, 508 00:29:08,200 --> 00:29:12,220 jer smo htjeli imati dodatni funkcionalnost, što je lijepo imati. 509 00:29:12,220 --> 00:29:14,240 Sve što morate učiniti je maknite te 2 linije, 510 00:29:14,240 --> 00:29:18,760 i sada, ako sam osvježiti, to mi je dalo još jednu pogrešku. 511 00:29:18,760 --> 00:29:22,100 Ona kaže: "Klasa Model_Post nije pronađena." 512 00:29:22,100 --> 00:29:30,210 Sada je to dobar problem imati. 513 00:29:30,210 --> 00:29:37,660 Idemo vidjeti. 514 00:29:37,660 --> 00:29:42,200 Učinite to javno. 515 00:29:42,200 --> 00:29:46,450 No Čekaj. 516 00:30:11,610 --> 00:30:13,160 Oh, draga. 517 00:30:13,160 --> 00:30:18,590 Ne znam zašto to nije u stanju da se. 518 00:30:18,590 --> 00:30:21,030 To je stvarno čudno. 519 00:30:21,030 --> 00:30:23,820 Imam ovu klasu ovdje. 520 00:30:23,820 --> 00:30:28,650 Mislim da ću morati - oh. 521 00:30:28,650 --> 00:30:32,010 Ja sam tako glupa. Zaboravio sam dodati PHP oznaku. 522 00:30:32,010 --> 00:30:34,670 To je razlog zašto. 523 00:30:34,670 --> 00:30:41,260 Sada ću morati poništiti taj 1 promjena sam upravo učinio. 524 00:30:41,260 --> 00:30:44,270 >> Redu. Tu smo. 525 00:30:44,270 --> 00:30:47,500 To je bilo jako glupo. Nisam imao uvodnu PHP oznaku. 526 00:30:47,500 --> 00:30:49,900 Ali, kao što možete vidjeti, sad je ispravno, zar ne? 527 00:30:49,900 --> 00:30:51,240 Imamo 1 post. 528 00:30:51,240 --> 00:30:54,730 Zgrabio mi prvi post, a sada smo ispisati svoje tijelo. 529 00:30:54,730 --> 00:30:58,010 Velika. Fantastic. 530 00:30:58,010 --> 00:31:01,470 Bilo kakva pitanja do sada? 531 00:31:01,470 --> 00:31:04,100 Nope? Ima li pitanja? 532 00:31:04,100 --> 00:31:08,340 U redu, tako da smo samo stvorili poslije modela, vrlo osnovni, 533 00:31:08,340 --> 00:31:10,930 a mi ćemo dodati neke funkcije kasnije. 534 00:31:10,930 --> 00:31:13,600 Možemo dodati provjere valjanosti i filtriranje. 535 00:31:13,600 --> 00:31:15,650 Provjera valjanosti su jedna od stvari 536 00:31:15,650 --> 00:31:18,150 da okviri riješiti za vas jako, jako dobro, 537 00:31:18,150 --> 00:31:21,310 a ja ne mislim da ti dečki su morali to učiniti za svoju CS50 pset, 538 00:31:21,310 --> 00:31:24,000 ali ako to ne učinite web razvoj za svoj završni rad, 539 00:31:24,000 --> 00:31:26,280 ti si vjerojatno htjeti napraviti neku vrstu provjere valjanosti, 540 00:31:26,280 --> 00:31:28,290 kao što ne prazne korisnička imena, 541 00:31:28,290 --> 00:31:31,950 možda ima lozinku s najmanje nekom duljine, takve stvari. 542 00:31:31,950 --> 00:31:34,750 I to je stvarno težak za provedbu tih stvari po sebi, 543 00:31:34,750 --> 00:31:37,390 i gotovo svaki web okvir to radi za vas 544 00:31:37,390 --> 00:31:41,140 i omogućuje vam to učiniti u vrlo čist način. 545 00:31:41,140 --> 00:31:44,340 A model gdje se u pravilu izražavanje svojih pravila za provjeru valjanosti, 546 00:31:44,340 --> 00:31:48,790 jer je potvrđivanju li model je valjan ili ne. 547 00:31:48,790 --> 00:31:51,350 >> Ali za sada, idemo to staviti tek kasnije, 548 00:31:51,350 --> 00:31:53,520 i za sad idemo raditi na nekom drugom dijelu, 549 00:31:53,520 --> 00:31:55,400 a mi ćemo pokušati napraviti novi pogled 550 00:31:55,400 --> 00:31:59,580 koji sadrži popis svih postova. 551 00:31:59,580 --> 00:32:02,490 Koraci koji su uključeni u izradu novog akciju za uvrštenje sve postove 552 00:32:02,490 --> 00:32:04,810 je da zgrabite popis svih radnih mjesta 553 00:32:04,810 --> 00:32:11,990 i onda donijeti popis svih postova kroz pogledom. 554 00:32:11,990 --> 00:32:16,420 Upravo ovdje, dovoljno sreću, već uhvatio sve postove 555 00:32:16,420 --> 00:32:20,310 koristite ovu prvu liniju, pronaći sve funkcije, 556 00:32:20,310 --> 00:32:22,520 a sad što ćemo učiniti je do sada 557 00:32:22,520 --> 00:32:25,350 Ja sam izravno postavljanje tijelo odgovoru 558 00:32:25,350 --> 00:32:29,090 donošenjem niza, ali sada želim koristiti pogled, 559 00:32:29,090 --> 00:32:31,870 i razlika između pogledom i samo radi 560 00:32:31,870 --> 00:32:35,330 je s ciljem da mogu imati lijep, veliki HTML predložak, 561 00:32:35,330 --> 00:32:37,710 i što mogu učiniti je to pojedinih varijabli prođe 562 00:32:37,710 --> 00:32:42,200 , a zatim su pogled automatski popuniti svoj predložak 563 00:32:42,200 --> 00:32:44,690 pomoću tih varijabli. 564 00:32:44,690 --> 00:32:50,780 Ono što ću učiniti je da ću stvoriti novi pogled, 565 00:32:50,780 --> 00:32:55,940 a ja ću imenovati pogled na nešto poput "blog / index" 566 00:32:55,940 --> 00:33:08,480 i ja idem na osnovi vezati ovo - ah, što pišem? 567 00:33:08,480 --> 00:33:12,910 Moj mozak je negdje drugdje. 568 00:33:12,910 --> 00:33:16,600 Idem vezati postove promjenjive na pogled, 569 00:33:16,600 --> 00:33:19,950 pa na taj način pogled ima pristup ovom post varijablu. 570 00:33:19,950 --> 00:33:26,140 >> I sad moram napraviti ovaj pogled, 571 00:33:26,140 --> 00:33:28,500 Dakle, ovdje imamo tu mapu pod nazivom "Pogledi" 572 00:33:28,500 --> 00:33:32,150 i prvo, ja ću stvoriti novu mapu pod tim nazivom "blog." 573 00:33:32,150 --> 00:33:35,810 To je lijepo. Na taj način možemo imati lijepo hijerarhiju za naše poglede. 574 00:33:35,810 --> 00:33:43,910 A onda ću napraviti drugu datoteku u bilo pod nazivom "index.php". 575 00:33:43,910 --> 00:33:45,780 Strašan. 576 00:33:45,780 --> 00:33:52,930 Zapravo, da ih oboje imamo ovdje. 577 00:33:52,930 --> 00:33:56,760 Izrada pogled datoteku je vjerojatno najjednostavniji dio svega toga, 578 00:33:56,760 --> 00:33:59,090 i to su vjerojatno stvari koje ste već upoznati. 579 00:33:59,090 --> 00:34:01,240 Mi ćemo napraviti nešto stvarno jednostavan, 580 00:34:01,240 --> 00:34:05,360 početi govoreći: "Moj popis blogu." 581 00:34:05,360 --> 00:34:14,860 Tada možemo proći, 582 00:34:14,860 --> 00:34:17,920 i možemo ponoviti kroz niz postova, 583 00:34:17,920 --> 00:34:21,760 zgrabite svaki post i reći nešto poput: - 584 00:34:21,760 --> 00:34:25,290 možda dodati liniju 585 00:34:25,290 --> 00:34:42,460 a zatim ispisati autora i tijelo. 586 00:34:42,460 --> 00:34:44,480 To ima smisla do sada? 587 00:34:44,480 --> 00:34:50,870 I neka je vidjeti ako to radi. 588 00:34:50,870 --> 00:34:53,489 Ništa se nije dogodilo. 589 00:34:53,489 --> 00:34:55,090 Pitam se zašto. 590 00:34:55,090 --> 00:34:58,760 Oh, propustio sam jedan korak. Vrlo glupo od mene. 591 00:34:58,760 --> 00:35:01,640 Stvorio sam pogled, ali nisam postaviti pogled kao odgovor, 592 00:35:01,640 --> 00:35:03,190 tako da ćete morati učiniti 1 više stvar. 593 00:35:03,190 --> 00:35:12,610 Vi morate učiniti "ovaj odgovor tijela" i postaviti ga da bude pogled. 594 00:35:12,610 --> 00:35:14,760 Tu smo. 595 00:35:14,760 --> 00:35:17,200 Mi imamo naslov, a onda imamo post, 596 00:35:17,200 --> 00:35:20,500 i samo za slatkiš, neka je umetnite još jedan post 597 00:35:20,500 --> 00:35:23,390 tako možemo vidjeti popis. 598 00:35:31,800 --> 00:35:36,650 I ubacite ove 2 postove, 599 00:35:36,650 --> 00:35:39,500 i sada, ako sam osvježiti stranicu, 600 00:35:39,500 --> 00:35:42,060 vidimo sve ove postove ovdje. 601 00:35:42,060 --> 00:35:44,250 >> Da li to smisla do sada? 602 00:35:44,250 --> 00:35:46,400 Da, pitanje? Oh, u redu. 603 00:35:46,400 --> 00:35:51,440 Kao što možete vidjeti, mi smo bili u mogućnosti odvojiti sve te kodove out 604 00:35:51,440 --> 00:35:53,920 u različite dijelove, a onda možete vidjeti da je većina jasno s pogledom koda. 605 00:35:53,920 --> 00:35:57,810 Ova datoteka ovdje da zastupa stajalište, 606 00:35:57,810 --> 00:36:01,220 to je samo stalo predstavlja podataka, prikaz podataka. 607 00:36:01,220 --> 00:36:04,310 Ona dobiva prošao nekakvu podataka, a sve to čini samo se to pokazati. 608 00:36:04,310 --> 00:36:07,660 U svim drugim dijelovima koda, nećete morati brinuti o tome bilo što od toga, 609 00:36:07,660 --> 00:36:10,480 i slično, tvoj pogled koda ne morate brinuti o tome ništa 610 00:36:10,480 --> 00:36:13,390 kako pristupiti bazi podataka i tako dalje i tako dalje, 611 00:36:13,390 --> 00:36:19,950 što je jako dobro i čini vaš broj puno više održiv. 612 00:36:19,950 --> 00:36:23,390 Kao što sam rekao, pogleda, oni su dinamična u tome 613 00:36:23,390 --> 00:36:27,080 to je jedna datoteka, ali to će generirati različite poglede 614 00:36:27,080 --> 00:36:29,940 na temelju varijabli što zapravo prolaze u, 615 00:36:29,940 --> 00:36:32,370 a osim toga, postoji mnogo različitih pomagač funkcije 616 00:36:32,370 --> 00:36:34,230 koje možete koristiti kako bi vam pomoći napisati svoj kod brže, 617 00:36:34,230 --> 00:36:36,320 koje ću vam pokazati u samo sekundu. 618 00:36:36,320 --> 00:36:38,050 Da. 619 00:36:38,050 --> 00:36:42,490 >> [Student] Pa $ 0 kontroler, zar ne? 620 00:36:42,490 --> 00:36:44,000 Ta druga stvar. 621 00:36:44,000 --> 00:36:46,090 Pitanje je je $ 0 kontroler? 622 00:36:46,090 --> 00:36:48,610 $ 0 promjenjiva sam stvorio upravo ovdje. 623 00:36:48,610 --> 00:36:51,320 Prvi sam stvorio pogled. Ja ga dodijeljen nekom varijablu. 624 00:36:51,320 --> 00:36:54,960 Onda sam ga uputila u ovoj funkciji, postavite ga kao tijelo odgovor. 625 00:36:54,960 --> 00:36:57,260 Ima li to smisla? 626 00:36:57,260 --> 00:37:02,200 [Student] Tako je pogled :: tvornica, pogled kao klasu 627 00:37:02,200 --> 00:37:06,610 ili knjižnice [nečujan] tvornicu funkcija? 628 00:37:06,610 --> 00:37:10,640 Pitanje je o view :: tvornice funkcije, 629 00:37:10,640 --> 00:37:14,020 i, zapravo, to je nešto više objektno-orijentirani programski bitno. 630 00:37:14,020 --> 00:37:18,000 Vidi se pregled class, a ima i metodu pod nazivom "Tvornica" 631 00:37:18,000 --> 00:37:24,170 i to je način da zgrabite objekt koji je pod nazivom "blog / index." 632 00:37:24,170 --> 00:37:27,140 I to je još malo za objektno programiranje stuff 633 00:37:27,140 --> 00:37:33,010 da ja ne idem u tu previše. 634 00:37:33,010 --> 00:37:36,400 Sada je očito, želimo stvoriti nove postove, 635 00:37:36,400 --> 00:37:38,790 , ali ne želimo da se to učiniti kroz bazu podataka, 636 00:37:38,790 --> 00:37:41,280 tako ćemo stvoriti novu akciju za stvaranje novi post, 637 00:37:41,280 --> 00:37:43,050 a tu je puno toga što moramo učiniti. 638 00:37:43,050 --> 00:37:45,910 >> Prvo što ćemo napraviti - neka se borila protiv te stvari jednu po jednu. 639 00:37:45,910 --> 00:37:48,320 Prvo što ćemo napraviti je da moramo stvoriti obrazac 640 00:37:48,320 --> 00:37:54,460 za umetanje novi post, 641 00:37:54,460 --> 00:37:57,360 ali sam isto tako ću dodati novu akciju prvo, 642 00:37:57,360 --> 00:38:01,050 tako dodajući nove akcije je jednako lako kao 643 00:38:01,050 --> 00:38:03,490 dodajući novu funkciju s vašim kontrolerom, 644 00:38:03,490 --> 00:38:13,710 i za sada ću učiniti nešto vrlo osnovni, 645 00:38:13,710 --> 00:38:20,850 samo zgrabite ovaj pogled i objaviti ga, samo ga prikazati za vas. 646 00:38:20,850 --> 00:38:26,220 I onda sad ću stvoriti novi pogled na sliku, 647 00:38:26,220 --> 00:38:33,690 i ja ću početi pisati neke stvari. 648 00:38:33,690 --> 00:38:36,540 Što je lijepo o Kohana je da oni pružaju mnogo različitih pomagač funkcije 649 00:38:36,540 --> 00:38:38,790 za vas napisati pogled code lakše, 650 00:38:38,790 --> 00:38:41,970 i 1 tih pomoćnih funkcija ili pomoćnih modula 651 00:38:41,970 --> 00:38:45,860 je oko pisanja oblike. 652 00:38:45,860 --> 00:38:49,460 Za pisanje obrazaca, ja stvarno ne moraju izravno pisati svaki HTML sebe. 653 00:38:49,460 --> 00:38:51,100 Vi dečki ste napisali HTML forme. 654 00:38:51,100 --> 00:38:54,850 Znate kako to može biti jako, jako bolan i težak za pisanje oblika. 655 00:38:54,850 --> 00:38:59,970 To nije zabavno, pa na svu sreću, 656 00:38:59,970 --> 00:39:04,860 mi u osnovi može napisati obrazac pomoću Kohana-a 657 00:39:04,860 --> 00:39:11,190 formirati pomoćne funkcije to učiniti za nas. 658 00:39:11,190 --> 00:39:17,340 Idemo u osnovi imaju polja za svaku stvar koju imamo, 659 00:39:17,340 --> 00:39:23,160 pa jedan za autora i jedan za tijelima. 660 00:39:23,160 --> 00:39:27,090 Mi ćemo imati oznaku, a mi ćemo imati ulaz. 661 00:39:37,450 --> 00:39:41,360 >> I onda napokon, da ćemo imati podnesak. 662 00:39:49,350 --> 00:39:52,230 I kao što možete vidjeti, to je mnogo čišći za pisanje 663 00:39:52,230 --> 00:39:58,150 od svega toga neuredan HTML, što je baš lijepo. 664 00:39:58,150 --> 00:40:00,930 Odobren, postoje druge web okviri koji su ga čak i čišći od toga, 665 00:40:00,930 --> 00:40:04,440 ali barem je to bolje od pisanja HTML sebe. 666 00:40:09,400 --> 00:40:11,130 Strašan, tako da je ovo što vidite. 667 00:40:11,130 --> 00:40:13,530 To je vrsta neredu, 668 00:40:13,530 --> 00:40:19,720 pa ću dodati prijelom retka postoji 669 00:40:19,720 --> 00:40:21,180 da bi se to izgleda malo ljepše. 670 00:40:21,180 --> 00:40:23,330 Pa, naravno, još uvijek izgleda jako, jako loše, ali samo smo usredotočeni 671 00:40:23,330 --> 00:40:26,050 na funkcionalnost za sada, a ne na estetiku. 672 00:40:26,050 --> 00:40:28,010 Nema vremena za napraviti sve. 673 00:40:28,010 --> 00:40:30,600 I kao što možete vidjeti, sada imamo super osnovni oblik, 674 00:40:30,600 --> 00:40:32,080 što je baš lijepo. 675 00:40:32,080 --> 00:40:36,730 Ovaj kod Rekao bih da je čišći nego pokušava napisati HTML obliku sebe, 676 00:40:36,730 --> 00:40:40,290 pa to je lijepo. 677 00:40:40,290 --> 00:40:42,030 Što je sljedeće? 678 00:40:42,030 --> 00:40:49,260 Sada moramo raditi stvari sa akcije. 679 00:40:49,260 --> 00:40:51,240 Obično kad pišete HTML forme, 680 00:40:51,240 --> 00:40:54,070 morate to reći gdje će dostaviti obrazac za. 681 00:40:54,070 --> 00:40:56,050 Po defaultu u većini web okvira, 682 00:40:56,050 --> 00:40:58,200 podnosi na isti URL, pa stvar je, 683 00:40:58,200 --> 00:41:01,310 ako poslati GET zahtjev za / blog / new, 684 00:41:01,310 --> 00:41:03,240 treba to vam prikazati formu, 685 00:41:03,240 --> 00:41:06,810 ali ako vam poslati post zahtjev / blog / novi s podacima, 686 00:41:06,810 --> 00:41:10,000 to bi zapravo trebao pokušati spasiti taj post 687 00:41:10,000 --> 00:41:13,300 i učiniti nešto s njim. 688 00:41:20,630 --> 00:41:22,180 >> Što ćemo učiniti je 689 00:41:22,180 --> 00:41:25,320 u osnovi sve što morate učiniti da biste provjerili je li to nakon zahtjeva ili GET zahtjev 690 00:41:25,320 --> 00:41:29,350 je provjeriti što su poštanski varijabli koje možete podesiti. 691 00:41:29,350 --> 00:41:34,560 A ako je postavljen nakon promjenjive, onda ćemo pokušati stvoriti novi post. 692 00:41:34,560 --> 00:41:38,440 Opet, samo smo to učinili, 693 00:41:38,440 --> 00:41:41,090 i da stvara novi post, a mi smo doslovno ide 694 00:41:41,090 --> 00:41:51,150 postaviti svoja polja kao što je ovaj, 695 00:41:51,150 --> 00:41:55,640 i onda ćemo ga spasiti. 696 00:41:55,640 --> 00:41:59,200 A onda ću preusmjeriti 697 00:41:59,200 --> 00:42:07,660 na naslovnici, tako da oni mogu vidjeti naš popis postova opet. 698 00:42:07,660 --> 00:42:09,620 Pokušajmo to. 699 00:42:09,620 --> 00:42:15,160 Ja ću reći, "Brandona" 700 00:42:15,160 --> 00:42:18,140 a zatim poslati post, i ako sve ide dobro, 701 00:42:18,140 --> 00:42:21,390 kao što možete vidjeti, to mi je preusmjeren na naslovnici, 702 00:42:21,390 --> 00:42:24,140 a ako sam dođite do kraja, imamo novoobjavljene mjesto. 703 00:42:24,140 --> 00:42:26,430 Jupi! 704 00:42:26,430 --> 00:42:28,430 Da, pitanje. 705 00:42:28,430 --> 00:42:31,760 >> [Student] Što ako je ušao točno istu stvar 706 00:42:31,760 --> 00:42:33,380 ste unijeli prije? 707 00:42:33,380 --> 00:42:36,950 Da li to provjeriti kako bi bili sigurni da niste umnožen 708 00:42:36,950 --> 00:42:38,810 Isti podnesak? 709 00:42:38,810 --> 00:42:41,660 Budite zadano, ne, jer po defaultu - 710 00:42:41,660 --> 00:42:46,470 Žao nam je, pitanje je, ako uđete u isti podataka u obliku 711 00:42:46,470 --> 00:42:50,180 i tvrde da će to omogućiti da uložite duple objekt, 712 00:42:50,180 --> 00:42:52,550 duplicirati zapis, bitno? 713 00:42:52,550 --> 00:42:54,070 Upravo sada, da, to će vam omogućiti da to učiniti, 714 00:42:54,070 --> 00:42:58,860 jer u bazama podataka to je savršeno vrijedi imati u potpunosti duplicirati redaka, 715 00:42:58,860 --> 00:43:02,260 , ali ako je to problem, onda možete dodati provjere valjanosti, primjerice, 716 00:43:02,260 --> 00:43:06,430 kako bi bili sigurni da će, ako je to točno isto kao nešto što već postoji, 717 00:43:06,430 --> 00:43:08,720 onda kažu da je invalid objekt, 718 00:43:08,720 --> 00:43:11,200 a onda čak možete odrediti svoju poruku o pogrešci 719 00:43:11,200 --> 00:43:14,390 i kažu, "Invalid jer to već postoji" ili nešto slično. 720 00:43:14,390 --> 00:43:22,420 No, u ovom slučaju, ja samo mogu stvoriti nešto duple. 721 00:43:22,420 --> 00:43:26,010 Sada ćemo pokušati dodati neke provjere valjanosti. 722 00:43:26,010 --> 00:43:30,400 Problem s ovim je to da se 723 00:43:30,400 --> 00:43:34,220 Doslovno sam mogao podnijeti potpuno prazno mjesto. 724 00:43:34,220 --> 00:43:37,500 Ja mogu kliknuti na ovaj gumb upravo sada, i tamo idemo. 725 00:43:37,500 --> 00:43:40,290 Vi stvarno ne mogu vidjeti, ali ovaj dodatni crta 726 00:43:40,290 --> 00:43:43,830 ukazuje na to da sam doslovno novi post. 727 00:43:43,830 --> 00:43:46,050 To samo ima prazni autora i prazne tijelo, 728 00:43:46,050 --> 00:43:48,630 a mi ne želimo da ljudi mogu učiniti. 729 00:43:48,630 --> 00:43:52,550 Ovo je mjesto gdje valjanosti dolazi u. 730 00:43:52,550 --> 00:43:57,540 >> Ja mogu ići na moj modela objekta, 731 00:43:57,540 --> 00:43:59,530 i sad ja mogu dodati novu funkciju koja određuje 732 00:43:59,530 --> 00:44:02,000 ono valjanosti pravila bih trebao dodati na ovaj model 733 00:44:02,000 --> 00:44:06,840 kako bi bili sigurni da je to valjan ili da odredite što to znači biti valjana poslije? 734 00:44:06,840 --> 00:44:10,210 I želim reći da je to samo vrijedi ako i nakon autor i tijelo 735 00:44:10,210 --> 00:44:15,150 nisu prazni, a to je kako to učiniti u Kohana. 736 00:44:15,150 --> 00:44:18,750 Možete stvoriti novu funkciju pod nazivom "pravila" 737 00:44:18,750 --> 00:44:20,210 a onda zapravo vratiti asocijativni niz 738 00:44:20,210 --> 00:44:24,230 koji definira pravila za provjeru valjanosti za ovaj objekt. 739 00:44:24,230 --> 00:44:27,530 Idemo se vratiti niz, a zatim ono što ćemo učiniti je 740 00:44:27,530 --> 00:44:32,820 kažu "autora", to ide u nizu, 741 00:44:32,820 --> 00:44:37,720 koja ide u drugi niz naziva "nije prazan." 742 00:44:37,720 --> 00:44:41,480 A onda ću reći "tijelo." 743 00:44:50,980 --> 00:44:54,120 Ok, i sintaksa za to i struktura za to 744 00:44:54,120 --> 00:44:56,530 može izgledati malo nezgrapan i pomalo komplicirano. 745 00:44:56,530 --> 00:44:59,330 Ako ste pročitali dokumentaciju, to je prilično jednostavan za shvatiti, 746 00:44:59,330 --> 00:45:02,500 No, u biti to je ono što vam je potrebno učiniti kako bi se odredili 747 00:45:02,500 --> 00:45:04,130 neka pravila za provjeru, a tu su i puno različitih pravila 748 00:45:04,130 --> 00:45:06,810 da Kohana će vam dati besplatno, kao što možete dodati pravila za reći 749 00:45:06,810 --> 00:45:08,410 to mora biti barem ta dužina. 750 00:45:08,410 --> 00:45:11,800 Možda to mora biti numerička. Možda to mora biti alfa numerička. 751 00:45:11,800 --> 00:45:14,410 Možda to mora biti najviše ta dužina, tako dalje i tako dalje. 752 00:45:14,410 --> 00:45:17,730 Ima puno različitih pravila koja Kohana daje za vas, 753 00:45:17,730 --> 00:45:19,610 i možete ići na svoje web stranice, pogledajte na dokumentaciju, 754 00:45:19,610 --> 00:45:23,150 i možete vidjeti sve različite stvari koje možete učiniti. 755 00:45:23,150 --> 00:45:25,650 >> Ali to je sve što imam za napraviti, 756 00:45:25,650 --> 00:45:30,490 a sad ćemo vidjeti što će se dogoditi 757 00:45:30,490 --> 00:45:34,060 ako sam podnijeti prazno mjesto. 758 00:45:34,060 --> 00:45:36,960 Što će se dogoditi? Oh, ne, ja dobiti greška. 759 00:45:36,960 --> 00:45:39,440 Ja dobiti valjanosti iznimka. 760 00:45:39,440 --> 00:45:41,070 Pa, to je dobro. 761 00:45:41,070 --> 00:45:43,200 Ona mi je rekla da je moj model je valjan, 762 00:45:43,200 --> 00:45:45,780 ali ja ne želim prikazati iznimku 763 00:45:45,780 --> 00:45:48,720 na moje korisnike kad oni pokušati podnijeti nešto nevažeći, zar ne? 764 00:45:48,720 --> 00:45:51,560 Želim im dati nekakvu prijateljskijem pogrešci 765 00:45:51,560 --> 00:45:53,610 kad nešto pođe po zlu. 766 00:45:53,610 --> 00:46:01,830 Ono što ćemo učiniti je da ćemo 767 00:46:01,830 --> 00:46:04,490 zamotajte sve u try catch petlje. 768 00:46:04,490 --> 00:46:06,750 Zapravo, mislim da je to također nešto što još nisu naučili 769 00:46:06,750 --> 00:46:10,820 u CS50, jer C, programski jezik C, 770 00:46:10,820 --> 00:46:14,000 nema iznimke, ali skoro svaki drugom jeziku 771 00:46:14,000 --> 00:46:16,700 ima iznimaka, tako jako, jako kratko, 772 00:46:16,700 --> 00:46:19,430 Iznimka je nešto što dio koda može 773 00:46:19,430 --> 00:46:21,430 baciti iznimku kada nešto pođe po zlu, 774 00:46:21,430 --> 00:46:23,410 ali onda možda neki drugi dio koda viši 775 00:46:23,410 --> 00:46:25,810 može uhvatiti taj izuzetak i učiniti nešto s njim. 776 00:46:25,810 --> 00:46:27,710 >> Na primjer, u ovom slučaju, 777 00:46:27,710 --> 00:46:29,940 dio koda koji pokušava spasiti model, 778 00:46:29,940 --> 00:46:33,170 to potvrđuje model, a ako ona kaže: "Dobro, ovaj model nije valjan" 779 00:46:33,170 --> 00:46:36,150 to će baciti izuzetak, a to je vrsta ekvivalentno 780 00:46:36,150 --> 00:46:39,870 u C možda vratiti -1 ili nešto slično. 781 00:46:39,870 --> 00:46:42,320 A onda za mene, ova funkcija, moj broj 782 00:46:42,320 --> 00:46:46,310 na višoj razini, mogu pokušati uhvatiti taj izuzetak 783 00:46:46,310 --> 00:46:49,330 i, zapravo, reći: "U redu, ako sam uhvatiti izuzetak, što ću učiniti?" 784 00:46:49,330 --> 00:46:51,570 Ili bih mogao birati ne bi uhvatiti taj izuzetak i neka netko viši 785 00:46:51,570 --> 00:46:54,400 uhvatiti iznimka, ili ako ga nitko ne hvata, 786 00:46:54,400 --> 00:46:56,820 onda cijeli program sruši i kaže: 787 00:46:56,820 --> 00:46:59,170 "Nešto je pošlo po zlu, a ja ne mogu to podnijeti." 788 00:46:59,170 --> 00:47:04,490 >> No, ono što mi radimo je zamotajte dio koda u try bloku, 789 00:47:04,490 --> 00:47:09,030 a onda dodate i nešto što se zove catch blok, 790 00:47:09,030 --> 00:47:17,300 koja je vrsta koda koji će pokušati uhvatiti iznimke koje se mogu pojaviti. 791 00:47:17,300 --> 00:47:20,430 I tako, ako sam uhvatiti ovaj iznimka 792 00:47:20,430 --> 00:47:23,110 ili poništavanje iznimka, onda ono što ću učiniti je 793 00:47:23,110 --> 00:47:31,210 Ja ću postaviti pogreške - Mislim da je to kako sam to učiniti - 794 00:47:31,210 --> 00:47:35,370 i ja ću postaviti pogreške nekom objektu. 795 00:47:35,370 --> 00:47:40,920 A ono što ću učiniti je onda ako ga pogodi ovu iznimku, 796 00:47:40,920 --> 00:47:43,090 to neće preusmjeriti, a ako to ne preusmjeri, 797 00:47:43,090 --> 00:47:46,160 to će izaći iz ukoliko blogu 798 00:47:46,160 --> 00:47:49,920 i pogodio ovaj blog / novi, koji se žele što želim učiniti. 799 00:47:49,920 --> 00:47:53,190 Ako postoji pogreška, onda želim da se vrati u obliku 800 00:47:53,190 --> 00:47:55,100 i prikazati one pogreške. 801 00:47:55,100 --> 00:48:00,780 Sada ono što želim učiniti je želim u one pogreške 802 00:48:00,780 --> 00:48:07,010 na prikaz. 803 00:48:07,010 --> 00:48:10,360 Dobro, mislim da imaju pogled upravo ovdje, 804 00:48:10,360 --> 00:48:14,660 i zapravo želim prikazati one pogreške, ako ih ima. 805 00:48:14,660 --> 00:48:19,740 Prije nego što sam pisati HTML za to, ja ću stvarno brzo 806 00:48:19,740 --> 00:48:21,720 pokazati što struktura ove pogreške varijabilni izgleda, 807 00:48:21,720 --> 00:48:23,080 i to je dobra praksa u cjelini. 808 00:48:23,080 --> 00:48:25,070 Mnogo puta ste dobili nešto natrag od neke metode, 809 00:48:25,070 --> 00:48:27,250 neka funkcija u web okvira, 810 00:48:27,250 --> 00:48:29,410 a vi ne znate što promjenjiva izgleda, 811 00:48:29,410 --> 00:48:31,210 , tako da ne znam kako raditi s njim. 812 00:48:31,210 --> 00:48:37,790 Ja ću koristiti metodu print r na osnovi ga isprintati. 813 00:48:37,790 --> 00:48:41,100 >> A kao što možete vidjeti, to mi govori da je suradnik niza, 814 00:48:41,100 --> 00:48:44,880 i imate ključ, autora, ukazuje na ovom nizu, 815 00:48:44,880 --> 00:48:47,050 Autor ne smije biti prazan, i još jedan ključni, tijelo, 816 00:48:47,050 --> 00:48:49,680 ukazuje na drugom struna, tijelo ne smije biti prazan. 817 00:48:49,680 --> 00:48:52,130 Ja sam kao, ok, super. 818 00:48:52,130 --> 00:48:56,230 Onda sam se ponoviti kroz niz i ispisati svaku poruku. 819 00:48:56,230 --> 00:49:02,150 To je u osnovi kao asocijativni niz sa hrpom poruka. 820 00:49:02,150 --> 00:49:13,500 Ono što ću učiniti je, "ako pogreške" 821 00:49:13,500 --> 00:49:17,140 a ja ću stvoriti Popis bez rednih brojeva, 822 00:49:17,140 --> 00:49:20,860 a ja ću ponoviti kroz sve pogreške. 823 00:49:33,730 --> 00:49:38,710 A to, a sada ću pokušati podnošenja to opet, 824 00:49:38,710 --> 00:49:41,200 pa da vidimo što ćemo dobiti. 825 00:49:41,200 --> 00:49:45,370 Sada smo dobili ovaj lijepi popis grešaka, 826 00:49:45,370 --> 00:49:48,630 i to je još uvijek prilično ružno, ali to očito može biti formiran tako da izgledaju lijepo, 827 00:49:48,630 --> 00:49:51,620 ali osnovna ideja je samo u nekoliko linija koda, 828 00:49:51,620 --> 00:49:53,720 smo bili u mogućnosti potvrditi naš model, 829 00:49:53,720 --> 00:49:56,510 pobrinite se da određene stavke nisu bile prazne, 830 00:49:56,510 --> 00:49:59,740 i ako je nešto pošlo po zlu, a zatim se vratiti nekakvu poruku o pogrešci 831 00:49:59,740 --> 00:50:01,760 I onda mogao predstaviti natrag korisniku. 832 00:50:01,760 --> 00:50:03,910 Također možete prilagoditi svoj valjanosti 833 00:50:03,910 --> 00:50:07,590 tako da zapravo mogu imati poruku o pogrešci 834 00:50:07,590 --> 00:50:09,620 koji je specifičan na svoj zahtjev ili nešto slično. 835 00:50:09,620 --> 00:50:14,600 Sve što je općenito prilagodljiv. 836 00:50:14,600 --> 00:50:17,150 >> Nažalost, mi ponestaje vremena, 837 00:50:17,150 --> 00:50:20,040 pa ću morati odrezati uživo kodiranja sjednicu ovdje. 838 00:50:20,040 --> 00:50:22,980 Ima hrpa drugih značajki koje želim pokazati za vas 839 00:50:22,980 --> 00:50:25,650 u ovom primjeru. 840 00:50:25,650 --> 00:50:27,620 Na primjer, možete dodati predloške za svoje stranice, 841 00:50:27,620 --> 00:50:31,110 pa možda postoji neka vrsta HTML koda koji želite primijeniti 842 00:50:31,110 --> 00:50:35,190 za svaku pojedinu stranicu na svoje stranice, a umjesto da se lijepljenje 843 00:50:35,190 --> 00:50:40,630 u svakom pojedinačnom prikazu datoteci imate, što je očito bila bi loša praksa, 844 00:50:40,630 --> 00:50:43,020 ti u osnovi može definirati ove predloške, 845 00:50:43,020 --> 00:50:46,660 , a zatim je u svom kontroleru reći: "U redu, ja sam koristeći ovaj predložak." 846 00:50:46,660 --> 00:50:50,130 "Jesu li svi moji pogledi koristiti ovaj predložak." 847 00:50:50,130 --> 00:50:52,470 I jedna posljednja stvar koju želim pokazati vam kako je dobro 848 00:50:52,470 --> 00:50:57,800 da nemamo vremena za je cross-site scripting, 849 00:50:57,800 --> 00:51:01,430 a zapravo mislim da ti dečki vjerojatno ste vidjeli u CS50 - 850 00:51:01,430 --> 00:51:03,770 Mislim da je David Malan vjerojatno govorio o tome kako se obično može ubrizgati 851 00:51:03,770 --> 00:51:08,040 JavaScript kod u - jeste li razgovarali o tome? 852 00:51:08,040 --> 00:51:10,220 Možda? Možda ne? 853 00:51:10,220 --> 00:51:12,670 >> No, puno puta ste se uvelo zlonamjerni JavaScript kod 854 00:51:12,670 --> 00:51:15,630 u nečiju bazu podataka, a ako oni ne pobjegne da ispravno, 855 00:51:15,630 --> 00:51:18,280 onda kada su prisutni te podatke natrag korisniku, 856 00:51:18,280 --> 00:51:21,310 onda to može pokrenuti nekakvu slučajnim JavaScript kod koje ne želite da se dogodi, 857 00:51:21,310 --> 00:51:23,050 i da ću pokazati kako ćeš to učiniti u roku Kohana. 858 00:51:23,050 --> 00:51:25,380 To je zapravo jako, jako jednostavno. 859 00:51:25,380 --> 00:51:31,920 Mogao bih to učiniti upravo sada u 2 sekunde doslovno. 860 00:51:31,920 --> 00:51:34,560 Sve što morate napraviti je u osnovi zamotajte te stvari 861 00:51:34,560 --> 00:51:46,920 u ovu stvar zove HTML entitete. 862 00:51:46,920 --> 00:51:51,180 I to će se automatski pobjeći sve znakove ispravno 863 00:51:51,180 --> 00:51:54,730 i pazite da ne dobijete taj problem. 864 00:51:54,730 --> 00:51:57,220 [Student] Vi upisali prvi test. 865 00:51:57,220 --> 00:52:01,030 [Brandon Liu] Oh, pardon. 866 00:52:01,030 --> 00:52:06,420 >> Dobro, to je sve što sam morao podijeliti s vama za danas. 867 00:52:06,420 --> 00:52:09,930 Ovi slajdovi će biti objavljena, ali to su uglavnom 868 00:52:09,930 --> 00:52:13,900 jedini izvori stvarno treba da biste započeli s Kohana. 869 00:52:13,900 --> 00:52:16,770 Možete otići na web stranicu. Oni imaju korisnički vodič, i oni također imaju API Explorer. 870 00:52:16,770 --> 00:52:20,630 Možemo istražiti sve različite funkcije i pomoćne funkcije koje imaju za vas. 871 00:52:20,630 --> 00:52:22,070 Oni uglavnom imaju dovoljno informacija na stranicama 872 00:52:22,070 --> 00:52:25,310 koje možete koristiti da biste započeli i krenuti s Kohana. 873 00:52:25,310 --> 00:52:30,840 Tu se ne da mnogi tutoriali, mislim, za Kohana, izvan 874 00:52:30,840 --> 00:52:33,880 što oni imaju na web stranici ovdje, tako da je ovo vjerojatno vaš najbolji kladiti. 875 00:52:33,880 --> 00:52:35,600 No, ako želite ići s web okviru 876 00:52:35,600 --> 00:52:37,120 a vi ne želite da se moraju podići novi jezik, 877 00:52:37,120 --> 00:52:39,780 i želite nešto što je relativno lagan i ima jednostavno krivulja učenja, 878 00:52:39,780 --> 00:52:41,570 Ja bi svakako predlažemo Kohana. 879 00:52:41,570 --> 00:52:44,040 To je vjerojatno najbolja ponuda za to. 880 00:52:44,040 --> 00:52:46,830 Smiješno je što je, međutim, ako smo koristili Ruby on Rails, 881 00:52:46,830 --> 00:52:48,550 mogli smo ponoviti ono što smo upravo učinio 882 00:52:48,550 --> 00:52:51,430 a vjerojatno i više za manje od 3 minute. 883 00:52:51,430 --> 00:52:54,710 Nije šala, ali učenje Ruby on Rails traje puno duže 884 00:52:54,710 --> 00:52:56,780 nego što bi se naučiti Kohana. 885 00:52:56,780 --> 00:52:58,840 To je u osnovi vaš izbor o tome što želite izabrati naučiti, 886 00:52:58,840 --> 00:53:01,260 ali ako želite da biste dobili gore i trčanje brzo, 887 00:53:01,260 --> 00:53:03,870 Kohana je definitivno jako dobar izbor. 888 00:53:03,870 --> 00:53:06,730 >> Bilo zadnja pitanja prije nego što smo završili? Da. 889 00:53:06,730 --> 00:53:08,020 [Student] Kako bi se integrirali smo da 890 00:53:08,020 --> 00:53:13,120 u CSS okvira kao što ste koristili kada su naložio? 891 00:53:13,120 --> 00:53:16,700 Pitanje je kako bi se integrirali smo da s CSS okvira? 892 00:53:16,700 --> 00:53:18,740 Ono što će vjerojatno učiniti je da će vjerojatno uključivati 893 00:53:18,740 --> 00:53:21,090 novu mapu gdje ćemo baciti sve naše CSS datoteke, 894 00:53:21,090 --> 00:53:23,010 i onda mi također bih dodati novi predložak. 895 00:53:23,010 --> 00:53:26,090 U predlošku ćemo uključiti te CSS datoteke 896 00:53:26,090 --> 00:53:28,410 kako bi bili sigurni da ste upućuje na svaku pojedinu stranicu, 897 00:53:28,410 --> 00:53:32,220 i onda kada su zapravo pisanje HTML-a, 898 00:53:32,220 --> 00:53:34,010 ti samo dodati odgovarajuće razrede i sitnica, 899 00:53:34,010 --> 00:53:36,100 a za primjer, kada koristite nešto poput obliku 900 00:53:36,100 --> 00:53:40,710 pomagač funkcije, možete dodati više parametara poslije 901 00:53:40,710 --> 00:53:42,830 navesti što razredi želite biti vezan za razne stvari 902 00:53:42,830 --> 00:53:47,820 kako bi se oni mogli oblikovati ispravno, a to je zapravo kako će ići. 903 00:53:47,820 --> 00:53:50,100 >> Neko pitanje? 904 00:53:50,100 --> 00:53:52,090 Strašan. 905 00:53:52,090 --> 00:53:58,540 Hvala vam na vašem vremenu, i hvala vam što ste došli. 906 00:53:58,540 --> 00:54:05,170 Nisam namjeravao dodati jako puno ostalo, 907 00:54:05,170 --> 00:54:08,560 ali 1 stvarno brzo stvar je što nemamo vezu 908 00:54:08,560 --> 00:54:12,590 u obliku. 909 00:54:12,590 --> 00:54:14,310 Stvarno glupo. 910 00:54:14,310 --> 00:54:20,110 Dodajmo - zapravo u prikazu, blog, indeks, 911 00:54:20,110 --> 00:54:23,890 neka je stvarno brzo dodati link koji ide na novu stranicu, 912 00:54:23,890 --> 00:54:26,770 stranica na kojoj možemo ubaciti novi post. 913 00:54:26,770 --> 00:54:29,950 Mi ćemo to učiniti. 914 00:54:29,950 --> 00:54:34,020 Ono što je lijepo je tu je cijela ova skupina HTML pomagač funkcije 915 00:54:34,020 --> 00:54:37,090 koji rade različite stvari za vas, tako da ste već vidjeli entitete 916 00:54:37,090 --> 00:54:41,980 funkcionirati ovdje, ali oni također imaju funkciju pod nazivom "sidro" 917 00:54:41,980 --> 00:54:45,400 koje možete upisati u blog / new 918 00:54:45,400 --> 00:54:49,550 i kažu, "Post novi blog." 919 00:54:49,550 --> 00:54:51,850 I to bi stvorili tu vezu za tebe, 920 00:54:51,850 --> 00:54:54,120 i to izgleda jako trivijalna za napraviti, ali to je lijepo, 921 00:54:54,120 --> 00:54:58,720 jer pretpostavljam da se kreće vaše web stranice od 1. domene na drugu. 922 00:54:58,720 --> 00:55:01,390 A ako ste upravo napisala URL-ove se, 923 00:55:01,390 --> 00:55:04,350 onda će morati mijenjati sve URL-ove. 924 00:55:04,350 --> 00:55:06,850 Ili možda ste ga preselili iz jedne u drugu podfolderu podmapu. 925 00:55:06,850 --> 00:55:08,790 Ti bi trebala promijeniti sve te URL sebe, 926 00:55:08,790 --> 00:55:12,180 i da nije zabavno. 927 00:55:12,180 --> 00:55:14,510 Možete koristiti ovaj sidro upravo ovdje, 928 00:55:14,510 --> 00:55:18,950 i možete promijeniti domenu ili podmape prefiks 929 00:55:18,950 --> 00:55:20,640 u datoteci s jednom, 930 00:55:20,640 --> 00:55:22,980 i onda će se podnijeti zahtjev da se svugdje, a to je, opet, 931 00:55:22,980 --> 00:55:26,930 veliki primjer ne ponavljati se, sušenje kôd out. 932 00:55:26,930 --> 00:55:30,370 Gdje god se ponavlja, pokušati izvući u nekakvu datoteku postavki 933 00:55:30,370 --> 00:55:34,160 ili u neku drugu funkciju i to srediti za vas. 934 00:55:34,160 --> 00:55:42,930 >> I zadnja stvar koju sam želio pokazati je 935 00:55:42,930 --> 00:55:50,250 Pretpostavljam da smo se vratili na ovaj post, i sam skladao neke stvarno dugo esej, 936 00:55:50,250 --> 00:55:52,670 ali zaboravio sam da su moje autora. 937 00:55:52,670 --> 00:55:55,210 Sada, kada sam kliknite na "Pošalji Post" 938 00:55:55,210 --> 00:55:57,270 Upravo sam izgubio sve. 939 00:55:57,270 --> 00:56:00,000 Ne! Stvarno tužno. 940 00:56:00,000 --> 00:56:03,870 Pa kako se nositi s tim? 941 00:56:03,870 --> 00:56:06,070 To je ono što mi radimo. 942 00:56:06,070 --> 00:56:09,340 Ono što mi radimo je ovdje za te ulaznih i područje teksta funkcija, 943 00:56:09,340 --> 00:56:12,700 ako su drugi parametar, tada je vrijednost tog drugog parametra 944 00:56:12,700 --> 00:56:16,620 će biti ono polje će u početku biti naseljeni. 945 00:56:16,620 --> 00:56:23,570 Ono što bismo mogli učiniti jest u našem blogu kontroler, 946 00:56:23,570 --> 00:56:25,360 bismo mogli vezati drugi varijablu. 947 00:56:25,360 --> 00:56:27,050 Nazovite to "vrijednosti" možda. 948 00:56:27,050 --> 00:56:30,620 I prođe u post polje, doslovno. 949 00:56:30,620 --> 00:56:32,620 To znači da, ako valjanosti nije uspjela, 950 00:56:32,620 --> 00:56:36,570 prođe mi posta niz koji sam podnijela od zadnjeg zahtjeva, 951 00:56:36,570 --> 00:56:38,420 i na taj način mogu koristiti vrijednosti iz mog zadnjeg podnošenja 952 00:56:38,420 --> 00:56:44,540 da repopulate polja. 953 00:56:44,540 --> 00:56:49,600 Sada mogu učiniti nešto poput vrijednosti autora 954 00:56:49,600 --> 00:56:55,180 i vrijednosti tijela, i na taj način sada, ako sam napraviti neki slučajni stvari 955 00:56:55,180 --> 00:57:01,490 i kliknite na "Pošalji Post", onda to ostaje tamo. 956 00:57:01,490 --> 00:57:03,830 Ali ćemo upasti u još jedan problem. 957 00:57:03,830 --> 00:57:07,670 To radi, ali ako idem na stranici za vrlo prvi put, 958 00:57:07,670 --> 00:57:09,720 to će se srušiti, a to je zato što je prvi put 959 00:57:09,720 --> 00:57:13,730 idemo na stranici, ovaj post varijabla još nije definirana. 960 00:57:13,730 --> 00:57:18,170 To je null. Ne postoji. 961 00:57:18,170 --> 00:57:21,630 >> A ono što želimo reći je li to ključ postoji, 962 00:57:21,630 --> 00:57:27,750 zatim se vratiti vrijednost ovog polja, 963 00:57:27,750 --> 00:57:30,450 ali ako ključ ne postoji, a zatim se vratiti prazan string. 964 00:57:30,450 --> 00:57:32,150 To je funkcija želimo ovdje. 965 00:57:32,150 --> 00:57:34,690 Želimo da provjerite je li ključ postoji prije pokušava pristupiti niz, 966 00:57:34,690 --> 00:57:36,580 i dovoljno sreću, 967 00:57:36,580 --> 00:57:38,570 Kohana nam također daje pomoćne funkcije za to. 968 00:57:38,570 --> 00:57:41,040 Imaju cijeli ovaj paket funkcija 969 00:57:41,040 --> 00:57:43,660 pod nazivom ARR, kratko za niz, 970 00:57:43,660 --> 00:57:45,800 i oni imaju jedan funkciju pod nazivom "dobiti" 971 00:57:45,800 --> 00:57:48,690 i možete proći u nizu, 972 00:57:48,690 --> 00:57:50,740 i možete proći u ime ključa. 973 00:57:50,740 --> 00:57:54,330 Zatim osnovi ono što će učiniti je da će pokušati dobiti taj ključ, 974 00:57:54,330 --> 00:57:56,470 ali ako taj ključ ne postoji u polju, 975 00:57:56,470 --> 00:58:00,900 onda će se vratiti prazan, ili možemo navesti zadanu, vjerujem, 976 00:58:00,900 --> 00:58:03,500 što je lijepo. 977 00:58:09,740 --> 00:58:13,150 Sada, ako ćemo napraviti istu stvar opet, 978 00:58:13,150 --> 00:58:15,970 onda vidite sada to radi prvi put okolo, 979 00:58:15,970 --> 00:58:18,080 a opet, ako mi tip u nekom slučajnom stvari 980 00:58:18,080 --> 00:58:23,210 i pokušati podnijeti, onda to ostaje tamo. 981 00:58:23,210 --> 00:58:31,640 >> A valjda sam i mogu vam pokazati kako dodati predložak jako brzo. 982 00:58:31,640 --> 00:58:36,140 Ono što možemo učiniti prvi je možemo dodati novi prikaz pod nazivom "template.php" 983 00:58:36,140 --> 00:58:38,890 u Pregleda mape, 984 00:58:38,890 --> 00:58:44,730 i ono što ću učiniti je da ću ispisati nešto što se zove "sadržaj" 985 00:58:44,730 --> 00:58:49,130 koji će biti moj glavni sadržaj. 986 00:58:49,130 --> 00:58:51,380 A možda na samom dnu ću dodati, recimo, 987 00:58:51,380 --> 00:58:53,340 autorskih prava. 988 00:58:53,340 --> 00:58:56,150 [Nečujan student Pitanje] 989 00:58:56,150 --> 00:58:58,050 [Brandon Liu] Možda je ovo super osnovni predložak želim koristiti. 990 00:58:58,050 --> 00:59:02,840 Želim imati mapu s moje autorsko pravo na svaku pojedinu stranicu, 991 00:59:02,840 --> 00:59:05,560 i sad ono što ću učiniti u roku od mog kontrolora 992 00:59:05,560 --> 00:59:07,740 Sada je, umjesto da se kaže, "proteže kontroler" 993 00:59:07,740 --> 00:59:11,870 Ja ću reći, "proteže Controller_Template" 994 00:59:11,870 --> 00:59:15,890 i sad umjesto da se kaže, "odgovor tijela je jednaka tom pogledu" 995 00:59:15,890 --> 00:59:24,110 Ja ću reći, "ovaj sadržaj predložak je -" 996 00:59:24,110 --> 00:59:27,690 i ja mislim - mogu staviti znak jednakosti? 997 00:59:27,690 --> 00:59:32,710 Zaboravim. Da, ja sam tako mislila. 998 00:59:32,710 --> 00:59:37,710 I sada sam postaviti da varijabilna sadržaj jednak pogled. 999 00:59:37,710 --> 00:59:40,960 Ja mogu učiniti isto ovdje. 1000 00:59:49,620 --> 00:59:57,170 A sada, ako sam osvježiti, možete vidjeti da je sada to autorsko dodaje postoji, 1001 00:59:57,170 --> 01:00:00,350 i samo bi neki slučajni post, 1002 01:00:00,350 --> 01:00:06,760 a onda, opet, trebali biste vidjeti da je autorsko pravo na samom dnu stranice. 1003 01:00:06,760 --> 01:00:10,730 >> Velika. To je sve što sam htjela pokazati dečki. 1004 01:00:10,730 --> 01:00:14,970 [Aplauz] 1005 01:00:14,970 --> 01:00:18,950 Ima li pitanja? 1006 01:00:18,950 --> 01:00:21,000 [CS50.TV]