1 00:00:00,000 --> 00:00:02,150 >> [Seminar] [Kohana: Un cadru ușoare PHP] 2 00:00:02,150 --> 00:00:04,000 [Brandon Liu] [Universitatea Harvard] 3 00:00:04,000 --> 00:00:07,270 [Acest lucru este CS50.] [CS50.TV] 4 00:00:07,270 --> 00:00:09,130 >> Max toată lumea. Numele meu este Brandon. 5 00:00:09,130 --> 00:00:11,000 Sunt un junior aici la colegiu face informatică, iar astăzi vom vorbi despre 6 00:00:11,000 --> 00:00:14,460 Kohana, care este un cadru de dezvoltare web PHP. 7 00:00:14,460 --> 00:00:17,260 Astăzi va fi un seminar de codificare în direct, 8 00:00:17,260 --> 00:00:21,000 așa că am de fapt de gând să-și petreacă 5-10 minute explica ceea ce este Kohana, 9 00:00:21,000 --> 00:00:25,000 și apoi am literalmente de gând să construiască un blog super-simplu 10 00:00:25,000 --> 00:00:28,570 pentru tine chiar aici, pur și simplu de la zero. 11 00:00:28,570 --> 00:00:32,229 Mergem pentru a descărca codul de pe site-ul Kohana, 12 00:00:32,229 --> 00:00:35,000 și vom începe construirea unui blog, și sperăm că va fi foarte instructiv, 13 00:00:35,000 --> 00:00:37,000 pentru că veți vedea, probabil, poate voi face unele greșeli, 14 00:00:37,000 --> 00:00:39,000 și veți vedea-mi recupera de la ei, 15 00:00:39,000 --> 00:00:42,040 sau veți vedea procesul meu de gândire cum am construi prin acest blog, 16 00:00:42,040 --> 00:00:44,000 și în același timp, veți obține, de asemenea, familiarizat cu cadrul de sine. 17 00:00:44,000 --> 00:00:48,000 Sperăm că va fi un exercițiu foarte instructiv. 18 00:00:48,000 --> 00:00:51,370 >> În primul rând, exact ceea ce este un cadru? 19 00:00:51,370 --> 00:00:54,000 Dacă ați luat CS50 până acum, tu nu prea am lucrat cu orice 20 00:00:54,000 --> 00:00:56,000 cadre încă, și acest lucru este. 21 00:00:56,000 --> 00:01:00,000 Ați făcut, probabil, o dezvoltare web PSET deja, 22 00:01:00,000 --> 00:01:03,000 și să spunem că veți continua să construiască site-uri web și să păstreze site-uri de construcții. 23 00:01:03,000 --> 00:01:05,000 Veți începe să observați câteva lucruri. 24 00:01:05,000 --> 00:01:07,000 Primul lucru pe care veți observa este că sunteți, probabil, faci aceleași lucruri 25 00:01:07,000 --> 00:01:09,150 peste si peste din nou, tot timpul, 26 00:01:09,150 --> 00:01:13,000 lucruri cum ar fi de curățare a datelor introduse de utilizator, 27 00:01:13,000 --> 00:01:17,250 lucruri cum ar fi organizarea fișierelor într-un anumit fel. 28 00:01:17,250 --> 00:01:19,000 Celălalt lucru pe care veți observa, de asemenea, probabil, este faptul că codul dvs. 29 00:01:19,000 --> 00:01:21,000 poate începe să devină foarte, foarte murdar, 30 00:01:21,000 --> 00:01:24,000 și s-ar putea lăsa murdar și doar au un timp foarte greu menținerea acesteia, 31 00:01:24,000 --> 00:01:26,000 sau ar putea să înceapă să structureze codul dvs. și ceea ce face modular 32 00:01:26,000 --> 00:01:28,510 în anumite moduri de a face mai ușor de întreținut. 33 00:01:28,510 --> 00:01:31,020 >> Aceasta este în cazul cadrelor de web, practic, a venit inch 34 00:01:31,020 --> 00:01:33,680 Acești oameni care au construit o mulțime de site-uri, au spus ei, 35 00:01:33,680 --> 00:01:35,820 "Nu avem nevoie să refaceți acest fiecare dată ne-am construi un site web." 36 00:01:35,820 --> 00:01:39,050 "De ce nu facem doar un pachet care face toate aceste lucruri pentru tine 37 00:01:39,050 --> 00:01:41,250 de fiecare dată când doriți pentru a construi un site web? " 38 00:01:41,250 --> 00:01:43,030 Și astfel încât, atunci când face un nou site web, 39 00:01:43,030 --> 00:01:45,880 te concentrezi doar asupra a ceea ce exact acest site special, este vorba. 40 00:01:45,880 --> 00:01:48,630 Nu aveți nevoie pentru a repeta toate diferitele configurația 41 00:01:48,630 --> 00:01:53,070 și separarea de coduri și codul rescrierea 42 00:01:53,070 --> 00:01:56,180 care de multe ori trebuie să faci atunci când faci site-uri. 43 00:01:56,180 --> 00:01:59,410 Ideea este că un cadru vă permite să scrie un cod de nivel superior 44 00:01:59,410 --> 00:02:01,030 fără a fi nevoie să vă faceți griji cu privire la detalii de nivel inferior. 45 00:02:01,030 --> 00:02:03,670 Un detaliu de nivel inferior ar putea fi ceva de genul 46 00:02:03,670 --> 00:02:07,250 care se ocupă cu curățarea datele introduse de utilizator. 47 00:02:07,250 --> 00:02:09,320 Asta e ceva ce nu ar trebui într-adevăr nevoie să vă faceți griji. 48 00:02:09,320 --> 00:02:12,370 Ar trebui să se concentreze pe ceea ce alocarea dvs. de web este de fapt despre. 49 00:02:12,370 --> 00:02:14,790 Se elimină o mulțime de cod șabloane. 50 00:02:14,790 --> 00:02:16,640 Este o arhitectură pentru proiectul dumneavoastră. 51 00:02:16,640 --> 00:02:18,680 >> Cel mai popular ar fi Model-View-Controller, 52 00:02:18,680 --> 00:02:20,380 pe care am de gând să vorbesc despre într-o secundă. 53 00:02:20,380 --> 00:02:22,790 Și de multe ori aceste cadre întruchipa un set de proceduri, 54 00:02:22,790 --> 00:02:25,750 reguli, și cele mai bune practici pentru tine de a utiliza 55 00:02:25,750 --> 00:02:28,190 astfel încât, atunci când adoptarea cadrului web 56 00:02:28,190 --> 00:02:30,050 va trebui să scrie cod într-un anumit fel, 57 00:02:30,050 --> 00:02:32,430 și este, în general, un convenit set de principii 58 00:02:32,430 --> 00:02:34,290 de comunitatea care este, în general, a acceptat să fie 59 00:02:34,290 --> 00:02:36,230 o modalitate buna de scrierea de cod. 60 00:02:36,230 --> 00:02:38,260 Se face codul de mai mult de întreținut, mai ușor de utilizat, 61 00:02:38,260 --> 00:02:40,030 așa mai departe și așa mai departe. 62 00:02:40,030 --> 00:02:42,740 Și, în sfârșit, lucru pe care vreau să subliniez despre cadrele 63 00:02:42,740 --> 00:02:45,980 față de biblioteci este aceasta o idee despre inversare de control, iar acest lucru este. 64 00:02:45,980 --> 00:02:48,430 Diferența dintre o bibliotecă și un cadru care este cu o bibliotecă 65 00:02:48,430 --> 00:02:51,990 sunteți încă scris programul principal, 66 00:02:51,990 --> 00:02:54,460 si tu esti un fel de a invoca bibliotecii 67 00:02:54,460 --> 00:02:56,810 și făcând apel la biblioteca pentru a face ceva pentru tine. 68 00:02:56,810 --> 00:02:58,180 Diferența dintre o bibliotecă și un cadru 69 00:02:58,180 --> 00:03:01,620 este că acest cadru începe cu controlul, 70 00:03:01,620 --> 00:03:03,260 și-l invocă codul, 71 00:03:03,260 --> 00:03:06,190 astfel încât să puteți gândi la ea ca - acesta este motivul pentru care se numește un cadru - 72 00:03:06,190 --> 00:03:09,700 cadrul prevede acest cadru și structură pentru codul dvs., 73 00:03:09,700 --> 00:03:11,320 și să vă umple în găuri, 74 00:03:11,320 --> 00:03:13,990 iar acest lucru va deveni mai evidente într-o secundă 75 00:03:13,990 --> 00:03:16,670 când mă vezi începe să scrie cod în contextul cadrului. 76 00:03:16,670 --> 00:03:19,130 Veți vedea că am completarea lacunelor, 77 00:03:19,130 --> 00:03:22,450 iar cadrul este un fel de a controla toate piesele în mișcare, 78 00:03:22,450 --> 00:03:27,420 și am să pun piesele în locurile potrivite. 79 00:03:27,420 --> 00:03:29,360 >> Astăzi vom vorbi despre Kohana, 80 00:03:29,360 --> 00:03:31,610 care este unul dintre mai multe cadre PHP. 81 00:03:31,610 --> 00:03:34,550 Există cadre de web, și acolo sunt cele în aproape fiecare singură limbă, 82 00:03:34,550 --> 00:03:38,330 și eu iau Kohana deoarece Kohana este, fără îndoială, 83 00:03:38,330 --> 00:03:43,250 și, în general, recunoscut ca cel mai simplu cadru PHP pentru a ridica. 84 00:03:43,250 --> 00:03:45,940 Este cel mai ușor. 85 00:03:45,940 --> 00:03:48,470 Există altele acolo, care vin cu multe, multe mai multe caracteristici, 86 00:03:48,470 --> 00:03:51,590 dar ele tind să fie mult mai dificil pentru a ridica. 87 00:03:51,590 --> 00:03:54,920 Și, în sfârșit, Kohana foloseste arhitectura MVC. 88 00:03:54,920 --> 00:03:57,780 Este destul de ușor, pe care putem construi literalmente un proiect 89 00:03:57,780 --> 00:03:59,620 chiar aici, chiar în fața ochilor tăi, și aveți posibilitatea să destul de mult 90 00:03:59,620 --> 00:04:02,780 urmați de-a lungul destul de ușor. 91 00:04:02,780 --> 00:04:04,420 >> Ce este arhitectura MVC? 92 00:04:04,420 --> 00:04:06,540 Ea vine de la Model-View-Controller, 93 00:04:06,540 --> 00:04:09,560 și, poate, dacă te gândești la codul care le-ați scris până acum 94 00:04:09,560 --> 00:04:11,280 pentru unele dintre psets dvs. de dezvoltare web 95 00:04:11,280 --> 00:04:14,710 ați putea fi posibilitatea de a vedea o parte din aceasta, dar, de obicei, atunci când veți începe scris 96 00:04:14,710 --> 00:04:16,500 o aplicație web mai complexe, 97 00:04:16,500 --> 00:04:21,209 diviziunea dintre aceste trei segmente devine tot mai evidentă. 98 00:04:21,209 --> 00:04:26,740 Am pus pe MVC aici, un fel de ca o stivă, 99 00:04:26,740 --> 00:04:29,920 și de multe ori veți auzi oamenii vorbesc despre stive în dezvoltare web, 100 00:04:29,920 --> 00:04:33,760 și acest lucru este de a ilustra ideea că 101 00:04:33,760 --> 00:04:37,510 fiecare strat, fiecare component într-adevăr încearcă să comunice numai 102 00:04:37,510 --> 00:04:40,750 între 2 alte componente. 103 00:04:40,750 --> 00:04:44,550 Cineva accesează site-ul dvs. ca un client sau un browser. 104 00:04:44,550 --> 00:04:48,870 Ei interacționează cu programul prin codul de vedere. 105 00:04:48,870 --> 00:04:50,500 Codul de vedere interacționează cu controlerul. 106 00:04:50,500 --> 00:04:52,400 Controlerul interacționează cu modelul, 107 00:04:52,400 --> 00:04:55,090 și modelul interacționează cu baza de date SQL. 108 00:04:55,090 --> 00:04:59,670 Și nu există nici țopăit în între, dacă scrii codul corespunzător. 109 00:04:59,670 --> 00:05:01,670 >> Ce fac aceste lucruri? 110 00:05:01,670 --> 00:05:06,020 Modelul, în esență, este o bucată de cod care se ocupă cu datele tale. 111 00:05:06,020 --> 00:05:09,100 Orice lucru care se ocupă cu baza de date, împreună cu obiectele pe care le stocați, 112 00:05:09,100 --> 00:05:11,280 sau recuperarea acestor obiecte în baza de date, 113 00:05:11,280 --> 00:05:13,450 care este tot ocupat de modelul. 114 00:05:13,450 --> 00:05:15,290 Poate ai obiectelor din baza de date. 115 00:05:15,290 --> 00:05:17,700 Vom crea un model au de a face cu mesaje, 116 00:05:17,700 --> 00:05:19,760 astfel încât un post poate avea unele atribute la ea. 117 00:05:19,760 --> 00:05:23,900 Puteți avea funcții în jurul stocarea acestor mesaje sau preluarea de mesaje 118 00:05:23,900 --> 00:05:26,270 sau filtrarea posturile și așa mai departe și așa mai departe, 119 00:05:26,270 --> 00:05:28,880 și asta e tot codul care este ocupat de modelul. 120 00:05:28,880 --> 00:05:31,780 Controlerul este un fel de logica de aplicare, 121 00:05:31,780 --> 00:05:37,910 și o mulțime de lucruri diferite pot merge în logica de aplicare. 122 00:05:37,910 --> 00:05:39,790 Dacă vorbești cu un API diferit, 123 00:05:39,790 --> 00:05:42,310 care ar putea fi în cazul în care ai de a face cu logica de aplicare. 124 00:05:42,310 --> 00:05:47,990 Dacă sunteți încercarea de a avea pentru a aduce în datele din mai multe modele diferite 125 00:05:47,990 --> 00:05:51,540 și trebuie să le combine într-un fel, care de multe ori pot fi manipulate de către operator. 126 00:05:51,540 --> 00:05:53,820 De exemplu, pe Facebook, dacă ai prieten pe cineva, 127 00:05:53,820 --> 00:05:58,500 atunci probabil că actul de stabilire a acestei relații 128 00:05:58,500 --> 00:06:00,490 poate fi efectuată de către operator. 129 00:06:00,490 --> 00:06:04,350 >> Și, în sfârșit, punctul de vedere este codul care este generatoare de ceea ce vedeți de fapt. 130 00:06:04,350 --> 00:06:07,410 De multe ori cred că în psets CS50 131 00:06:07,410 --> 00:06:10,050 ei nu prea te voi încuraja să se separe aceste 3 lucruri. 132 00:06:10,050 --> 00:06:12,430 Veți avea, probabil, acest mare dosar, timp în care în partea de sus 133 00:06:12,430 --> 00:06:15,130 faci unele interogare SQL și poate face unele de prelucrare 134 00:06:15,130 --> 00:06:17,020 pe datele pe care le preluate din baza de date, 135 00:06:17,020 --> 00:06:19,370 și apoi aveți toate HTML la partea de jos. 136 00:06:19,370 --> 00:06:22,840 Și ați putea găsi că pe măsură ce creați mai multe pagini 137 00:06:22,840 --> 00:06:25,790 care ai de gând să aibă un cod de repetiție, și, de asemenea, 138 00:06:25,790 --> 00:06:29,600 lucru este fișierul devine foarte mare si lung 139 00:06:29,600 --> 00:06:32,370 și devine greoi de a gestiona. 140 00:06:32,370 --> 00:06:34,500 Motivul pentru care MVC este atât de bine privit 141 00:06:34,500 --> 00:06:36,120 este pentru un număr de motive. 142 00:06:36,120 --> 00:06:38,110 Primul lucru este ceva numit separare a preocupărilor 143 00:06:38,110 --> 00:06:40,370 care este ideea că atunci când aveți - 144 00:06:40,370 --> 00:06:43,520 în mod ideal, o bucată de cod ar trebui să facă un lucru și o fac foarte bine, 145 00:06:43,520 --> 00:06:47,210 și tu nu ar trebui să combine bucăți de cod care fac lucruri disparate. 146 00:06:47,210 --> 00:06:49,230 De exemplu, poti vedea cod și model de cod, 147 00:06:49,230 --> 00:06:51,040 ei nu au într-adevăr să fie legate. 148 00:06:51,040 --> 00:06:53,290 Ei nu trebuie să fie în aceleași fișiere, astfel încât atunci când se poate, separa-le 149 00:06:53,290 --> 00:06:55,300 astfel încât este ușor să se mențină. 150 00:06:55,300 --> 00:06:57,130 >> Un alt lucru este reutilizarea codului. 151 00:06:57,130 --> 00:06:59,770 Ați putea găsi te scris în aceeași interogare SQL sau de a face 152 00:06:59,770 --> 00:07:03,060 interogări similare, care ar putea fi captate în 1 funcție, 153 00:07:03,060 --> 00:07:05,440 și asta e ideea din spatele modelelor și controlere, 154 00:07:05,440 --> 00:07:09,690 având-o într-o funcție separată pe care o puteți reutiliza în diferite locuri în proiectul dumneavoastră. 155 00:07:09,690 --> 00:07:12,420 Și, în sfârșit, care este legat de uscare codul, 156 00:07:12,420 --> 00:07:14,700 sau nu te repeta, nu te repeta. 157 00:07:14,700 --> 00:07:18,090 Acest lucru este foarte ușor de înțeles în dezvoltare. 158 00:07:18,090 --> 00:07:20,110 Ori de câte ori se poate, nu vrei să te repet, pentru că dacă te repeta, 159 00:07:20,760 --> 00:07:23,400  este mult mai costisitor de intretinut. 160 00:07:23,400 --> 00:07:26,040 Dacă doriți să modificați un lucru, va trebui să-l schimbe peste tot, 161 00:07:26,040 --> 00:07:30,230 și care duce la bug-uri, și e oribil. 162 00:07:30,230 --> 00:07:32,010 >> Regulă. 163 00:07:32,010 --> 00:07:37,270 Orice întrebări până acum despre Kohana la toate? 164 00:07:37,270 --> 00:07:39,200 Mare. 165 00:07:39,200 --> 00:07:42,300 Acum vom arunca cu capul în direct sesiunea de codificare, 166 00:07:42,300 --> 00:07:48,050 și sperăm că totul merge bine. 167 00:07:57,200 --> 00:08:00,050 Am de gând să construiască practic acest website 168 00:08:00,050 --> 00:08:03,910 pe unul dintre serverele mele de la distanță, și în acest fel voi putea, de asemenea, 169 00:08:03,910 --> 00:08:06,310 a se vedea site-ul web și accesa site-ul, 170 00:08:06,310 --> 00:08:10,990 și, de asemenea, mediul înconjurător este mai bine configurate decât mașina mea de la distanță, 171 00:08:10,990 --> 00:08:14,580 pentru că rulează Linux în loc de OS X. 172 00:08:14,580 --> 00:08:16,260 Suntem pur și simplu de gând să înceapă. 173 00:08:16,260 --> 00:08:18,110 KohanaFramework.org. 174 00:08:18,110 --> 00:08:21,350 Mă duc pentru a descărca codul de pe site-ul web. 175 00:08:21,350 --> 00:08:24,610 Mă duc pentru a copia adresa link-ul, 176 00:08:24,610 --> 00:08:29,770 du-te la serverul meu, descărcați-l, 177 00:08:29,770 --> 00:08:33,000 și am de gând să-l extrage. 178 00:08:38,330 --> 00:08:45,710 >> [Student] Care este cea mai mare ce poate face textul? 179 00:08:45,710 --> 00:08:47,330 [Brandon Liu] E mai bine? 180 00:08:47,330 --> 00:08:50,070 [Student] E greu de realizat? >> [Brandon Liu] Da, e în regulă. 181 00:08:50,070 --> 00:08:54,500 Am descărcat un fișier ZIP și dezarhivat că într-un director numit Kohana, 182 00:08:54,500 --> 00:08:58,820 și vom redenumi că CS50-Kohana, 183 00:08:58,820 --> 00:09:01,140 și să mergem inch 184 00:09:01,140 --> 00:09:03,610 Minunat. 185 00:09:03,610 --> 00:09:06,870 Aici veți vedea o grămadă de fișiere diferite. 186 00:09:06,870 --> 00:09:10,140 Cei mai mulți dintre voi poate ignora - Nu suntem de gând să treacă prin fiecare fișier care este în aici 187 00:09:10,140 --> 00:09:13,130 din cauza constrângerilor noastre de timp, 188 00:09:13,130 --> 00:09:16,310 dar, în general, atunci când instalați Kohana, primul lucru pe care îl faci 189 00:09:16,310 --> 00:09:23,210 este te duci la director, 190 00:09:23,210 --> 00:09:26,050 și vei face, practic, niște teste de mediu și de fleacuri 191 00:09:26,050 --> 00:09:28,640 a vă asigura că mediul este setată corect pentru a rula Kohana 192 00:09:28,640 --> 00:09:31,450 și asigurați-vă că totul este în regulă. 193 00:09:31,450 --> 00:09:35,510 Puteți vedea cele mai multe lucruri trecut, dar, în general, aveți o întotdeauna în această problemă 1 194 00:09:35,510 --> 00:09:38,180 în cazul în care se plânge că unii directorul nu poate fi scris, 195 00:09:38,180 --> 00:09:40,410 și că din cauza unor permisiuni. 196 00:09:40,410 --> 00:09:43,080 Nu știu cât de mult voi au aflat despre permisiunile de fișiere în CS50, 197 00:09:43,080 --> 00:09:47,920 dar dacă faci dezvoltare web, ai de gând pentru a rula în această problemă foarte mult. 198 00:09:47,920 --> 00:09:58,340 Am de gând să-l fi scris 199 00:09:58,340 --> 00:10:03,390 și cred că am, de asemenea, să - acolo mergem. 200 00:10:03,390 --> 00:10:07,040 >> Ok, deci acum puteți vedea totul a trecut, 201 00:10:07,040 --> 00:10:10,000 și acum vă va spune pentru a redenumi fișierul install.php. 202 00:10:10,000 --> 00:10:15,630 Mă duc pentru a muta fișierul install.php la installed.php, 203 00:10:15,630 --> 00:10:19,610 și acum, dacă eu reîmprospătare, 204 00:10:19,610 --> 00:10:22,810 imi da o eroare, iar acest lucru este în cazul în depanare vine inch 205 00:10:22,810 --> 00:10:25,610 Acest lucru este în cazul în care puteți vedea ce se întâmplă de fapt să se întâmple. 206 00:10:25,610 --> 00:10:28,460 Chestia e că, în mod implicit, Kohana presupune că 207 00:10:28,460 --> 00:10:31,480 proiectul dumneavoastră este în directorul rădăcină al domeniului, 208 00:10:31,480 --> 00:10:35,920 asa ca se asteapta ca tu să fii la demo.brandonkliu.com. 209 00:10:35,920 --> 00:10:37,540 Trebuie să-l spun că este de fapt într-un subfolder. 210 00:10:37,540 --> 00:10:39,820 Este într-un subfolder numit CS50 Kohana. 211 00:10:39,820 --> 00:10:42,640 Lucru este, este interpretarea greșită a CS50-Kohana 212 00:10:42,640 --> 00:10:45,680 ca altceva, pe care voi explica la tine într-o secundă. 213 00:10:45,680 --> 00:10:49,910 Dar eu trebuie să vă spun că e ceva care e de așteptat. 214 00:10:49,910 --> 00:10:53,700 Ceea ce am de gând să faceți este să mergem să meargă în acest folder numit bootstrap.php, 215 00:10:53,700 --> 00:10:59,260 care este directorul de configurare în cazul în care o mulțime de lucruri diferite, sunt înființate. 216 00:10:59,260 --> 00:11:01,570 Eu deschid asta. 217 00:11:01,570 --> 00:11:09,790 Apoi, poate unul dintre primele lucruri pe care voi face este de a schimba fusul orar. 218 00:11:09,790 --> 00:11:13,910 >> Și apoi să vedem. 219 00:11:13,910 --> 00:11:15,180 Aha! Chiar aici. 220 00:11:15,180 --> 00:11:18,690 Există o mulțime de diferite cuvinte de configurare aici, 221 00:11:18,690 --> 00:11:21,700 dar cel care caut este acest lucru numit URL de bază, 222 00:11:21,700 --> 00:11:24,570 și implicit am să-l înființat la Kohana, 223 00:11:24,570 --> 00:11:29,020 dar am de gând să schimbe că a CS50-Kohana, 224 00:11:29,020 --> 00:11:32,880 și cred că ar trebui să-l repara. 225 00:11:32,880 --> 00:11:34,150 Da, mare. 226 00:11:34,150 --> 00:11:39,530 În mod implicit, pentru a vedea că este de lucru, se spune, "Hello World." 227 00:11:39,530 --> 00:11:42,930 De unde a venit de la? Cum am ajuns la Hello World? 228 00:11:42,930 --> 00:11:47,640 Unde anume este codul pe care a scris de fapt asta? 229 00:11:47,640 --> 00:11:50,240 Pentru a înțelege că, voi introduce acest concept numit de rutare. 230 00:11:50,240 --> 00:11:52,590 Destul de mult toate cadrele web au conceptul numit de rutare, 231 00:11:52,590 --> 00:11:57,230 care este bucata de software-ul care va mapa un anumit URL 232 00:11:57,230 --> 00:12:01,550 pentru o anumită bucată de cod în cadrul dumneavoastră. 233 00:12:01,550 --> 00:12:07,510 De exemplu, dacă aveți unele URL-ul și te duci la unele URL ca foo.com / blog / toate 234 00:12:07,510 --> 00:12:11,170 apoi ceea ce a cadrului se va face - sau cel puțin ceea ce Kohana este de gând să facă - 235 00:12:11,170 --> 00:12:15,540 este că va găsi o clasa numita blog controler, 236 00:12:15,540 --> 00:12:18,720 și-l va executa acțiunea funcție numită tot. 237 00:12:18,720 --> 00:12:20,160 Știu că vorbesc despre clasă și funcții, 238 00:12:20,160 --> 00:12:23,860 și știu că voi nu au acoperit clase și funcții 239 00:12:23,860 --> 00:12:26,470 în încă CS50, dar pentru acum, 240 00:12:26,470 --> 00:12:29,800 vă puteți gândi de clase ca doar un grup de funcții, 241 00:12:29,800 --> 00:12:32,900 o modalitate de grupare a funcțiilor împreună. 242 00:12:32,900 --> 00:12:37,690 Asta e tot ce trebuie să știi. 243 00:12:37,690 --> 00:12:43,120 >> Acum, dacă ne uităm la structura noastră dosar, 244 00:12:43,120 --> 00:12:47,110 în dosarul aplicației este un alt folder numit clase, 245 00:12:47,110 --> 00:12:49,200 și alte foldere se numesc controler și model. 246 00:12:49,200 --> 00:12:52,530 Dacă te uiți în interiorul folderul Controller, 247 00:12:52,530 --> 00:12:56,330 vom vedea că există un fișier numit Bine ai venit, 248 00:12:56,330 --> 00:13:00,370 și puteți vedea aici este o clasa numita controler Bine ai venit, 249 00:13:00,370 --> 00:13:02,340 și există o funcție numită acțiune Index, 250 00:13:02,340 --> 00:13:06,360 și ceea ce face este o stabilește organismul de răspunsul dumneavoastră la Hello World. 251 00:13:06,360 --> 00:13:08,730 Acesta este cazul în care codul este scris. 252 00:13:08,730 --> 00:13:11,610 Cealaltă întrebare este, ei bine, eu nu merg la 253 00:13:11,610 --> 00:13:13,680 bla, bla, bla, / welcome / index. 254 00:13:13,680 --> 00:13:16,250 Cum am ajuns aici? 255 00:13:16,250 --> 00:13:20,410 Ei bine, asta e pur și simplu pentru că 256 00:13:20,410 --> 00:13:22,410 aici, la partea de jos a fișierului noastre bootstrap 257 00:13:22,410 --> 00:13:24,550 unde ne-am stabilit rutele noastre 258 00:13:24,550 --> 00:13:26,570 puteți vedea că au stabilit unele implicite pentru tine. 259 00:13:26,570 --> 00:13:28,990 Controlerul implicit este binevenit. Acțiunea implicită este de start. 260 00:13:28,990 --> 00:13:31,600 De aceea, atunci când ne-am pus nimic acolo sa dus în mod automat la controler Welcome 261 00:13:31,600 --> 00:13:33,940 și acțiunea index. 262 00:13:33,940 --> 00:13:37,460 >> Totul sens până acum? 263 00:13:37,460 --> 00:13:40,850 Acum, puteți face mai mult decât du-te la controler 264 00:13:40,850 --> 00:13:43,670 și o acțiune specifică. 265 00:13:43,670 --> 00:13:48,480 De asemenea, puteți trece la parametrii la controler. 266 00:13:48,480 --> 00:13:56,390 Doar ca un exemplu, 267 00:13:56,390 --> 00:14:04,070 Am de gând să adăugați o altă acțiune în acest controler pentru a vă arăta. 268 00:14:04,070 --> 00:14:09,130 Să numim această acțiune Echo, pentru că o să-ți spun tot ce-l dau, 269 00:14:09,130 --> 00:14:17,510 și așa că am de fapt de gând să apuca 270 00:14:17,510 --> 00:14:20,960 un parametru care va fi trimis prin mine la programul de rutare, 271 00:14:20,960 --> 00:14:24,440 și după cum puteți vedea aici, 272 00:14:24,440 --> 00:14:28,440 aceasta linie de aici, se poate vedea că 273 00:14:28,440 --> 00:14:31,270 acest lucru înseamnă de fapt ai un controller, și aveți o /, 274 00:14:31,270 --> 00:14:33,480 și aveți de acțiune, și aveți un alt /, 275 00:14:33,480 --> 00:14:39,140 și care va fi parametri, și pentru că avem acest nume ID 276 00:14:39,140 --> 00:14:42,450 în paranteze unghiulare, ceea ce înseamnă că suntem numirea acest ID parametru. 277 00:14:42,450 --> 00:14:45,490 Mai târziu, în codul meu controler dacă vreau pentru a apuca o dețin de acest parametru, 278 00:14:45,490 --> 00:14:51,790 Eu pot folosi codul am scris, găsiți parametrul numit de identitate. 279 00:14:51,790 --> 00:14:59,290 Asta e ceea ce am făcut aici, și am de gând să se întoarcă și să spună, 280 00:14:59,290 --> 00:15:07,090 "Ai spus" asta. 281 00:15:07,090 --> 00:15:10,760 Iar acum, dacă mă duc la site-ul nostru, 282 00:15:10,760 --> 00:15:19,550 Mă duc la cs50-kohana/welcome/echo/Helloooo-- 283 00:15:19,550 --> 00:15:21,420 oh, asta e drept. 284 00:15:21,420 --> 00:15:23,930 Există un pas am lăsat pe dinafară. 285 00:15:23,930 --> 00:15:27,020 Aceasta este o parte a ideii vii codificare. 286 00:15:27,020 --> 00:15:36,100 >> Iată un lucru. Să vedem. 287 00:15:36,100 --> 00:15:38,870 Deci, în mod normal, în mod implicit, cu o mulțime de aceste aplicatii web 288 00:15:38,870 --> 00:15:42,820 trebuie să includă acest lucru index.php din URL-ul dvs., 289 00:15:42,820 --> 00:15:46,410 deoarece ideea este index.php este un fel de punct de intrare 290 00:15:46,410 --> 00:15:48,250 de cererea dumneavoastră, dar, desigur, 291 00:15:48,250 --> 00:15:50,110 că e un fel de enervant de a avea. 292 00:15:50,110 --> 00:15:53,790 Tu nu vrei să aibă index.php apară în URL-ul dvs., 293 00:15:53,790 --> 00:15:56,080 și destul de mult în fiecare cadru web afară de la cutie 294 00:15:56,080 --> 00:15:58,440 are această problemă index.php, 295 00:15:58,440 --> 00:16:03,370 și deci va trebui să ia unele măsuri pentru a fi capabil de a elimina acest lucru. 296 00:16:03,370 --> 00:16:07,540 Și astfel, în acest caz, 297 00:16:07,540 --> 00:16:11,450 ceea ce am de gând să faceți este să avem de gând să utilizeze un fișier numit. htaccess, 298 00:16:11,450 --> 00:16:13,900 și acest lucru este ceva care este specific pentru serverul de web Apache, 299 00:16:13,900 --> 00:16:16,290 și se pot face lucruri, cum ar fi rescriere URL-uri 300 00:16:16,290 --> 00:16:19,350 și redirecționarea URL-uri și așa mai departe și așa mai departe, 301 00:16:19,350 --> 00:16:24,280 și Kohana este destul de frumos pentru a oferi un htaccess șablon. pe care le putem folosi. 302 00:16:24,280 --> 00:16:28,300 >> După cum puteți vedea, există un fișier numit acolo example.htaccess, 303 00:16:28,300 --> 00:16:33,410 și vom copia că la. htaccess. 304 00:16:33,410 --> 00:16:36,950 Am de gând să deschidă acest lucru și editați-l, 305 00:16:36,950 --> 00:16:40,840 și, practic, face o gramada de lucruri diferite. 306 00:16:40,840 --> 00:16:45,320 Linia cheie poate doriți să se uite la este chiar aici. 307 00:16:45,320 --> 00:16:49,840 Ideea este că aceasta stabilește o regulă care spune, 308 00:16:49,840 --> 00:16:56,400 "Bine, tot ce tastați, pune prefix index.php la asta." 309 00:16:56,400 --> 00:16:58,710 Puteți vedea asta. 310 00:16:58,710 --> 00:17:00,370 . * Standuri pentru nimic, se potrivesc cu nimic, 311 00:17:00,370 --> 00:17:03,300 și apoi de-a doua parte este index.php / $ 0, 312 00:17:03,300 --> 00:17:07,410 și 0 dolari se refera la ceea ce a fost potrivit anterior. 313 00:17:07,410 --> 00:17:09,500 Asta face sens? 314 00:17:09,500 --> 00:17:12,190 Dar lucrul cu adevărat cheie vreau să se schimbe este schimbe această bază de rescriere, 315 00:17:12,190 --> 00:17:14,300 care este baza URL. 316 00:17:14,300 --> 00:17:17,780 Este un fel de presupune cazul în care sunteți de lucru de la. 317 00:17:17,780 --> 00:17:22,560 Am de gând să adăugați CS50 Kohana pentru că, 318 00:17:22,560 --> 00:17:26,530 și în acest fel acum, dacă am elimina index.php, 319 00:17:26,530 --> 00:17:32,110 ar trebui să funcționeze, și am de gând să adăugați câteva numere 320 00:17:32,110 --> 00:17:36,380 pentru a vă arăta că a făcut-o într-adevăr de lucru. 321 00:17:36,380 --> 00:17:38,130 Sună bine. 322 00:17:38,130 --> 00:17:40,260 >> Orice întrebări până acum? 323 00:17:40,260 --> 00:17:42,300 [Student] Cum sa stii pentru a face 123? 324 00:17:42,300 --> 00:17:44,120 Este că un argument? 325 00:17:44,120 --> 00:17:46,560 Exact. Vă puteți gândi la ea ca un argument. 326 00:17:46,560 --> 00:17:52,410 Dar un lucru ciudat, totuși, este că modul în care o face Kohana 327 00:17:52,410 --> 00:17:54,910 este nu o face exact ca un argument. 328 00:17:54,910 --> 00:17:56,930 Trebuie să-l apuca ca aceasta. 329 00:17:56,930 --> 00:18:01,030 Aveți de a apuca obiectul cererii și să ceară parametrul care este numit de identitate, 330 00:18:01,030 --> 00:18:03,240 și că ID-ul vine de la acel fișier bootstrap 331 00:18:03,240 --> 00:18:06,990 că am arătat mai devreme, și ID-ul de nume a fost în aceste paranteze unghiulare, 332 00:18:06,990 --> 00:18:11,580 și că este modul în care te apuca de acești parametri. 333 00:18:11,580 --> 00:18:14,010 Minunat. 334 00:18:14,010 --> 00:18:17,550 Orice alte întrebări? 335 00:18:17,550 --> 00:18:20,500 Cum am spus, controlere, ei se ocupe de logica de aplicare, 336 00:18:20,500 --> 00:18:22,980 așa că e un exemplu unde se poate vedea asta e. - 337 00:18:22,980 --> 00:18:24,830 E foarte de bază, dar este încă logica aplicației, 338 00:18:24,830 --> 00:18:27,980 ideea de a hapsân parametrului și crearea unui nou șir 339 00:18:27,980 --> 00:18:31,920 care spune, "Ai spus că blah," si apoi scuipa înapoi la tine. 340 00:18:31,920 --> 00:18:34,030 Și, în general, ceea ce faci este să creați controlere diferite. 341 00:18:34,030 --> 00:18:36,450 Puteți crea controlere separate pentru diferite părți ale site-ul dumneavoastră. 342 00:18:36,450 --> 00:18:38,160 >> Astăzi vom face un site foarte simplu, 343 00:18:38,160 --> 00:18:40,420 și că va fi un blog foarte de bază. 344 00:18:40,420 --> 00:18:43,780 Vom face un nou controler doar pentru posturile într-un blog. 345 00:18:43,780 --> 00:18:47,060 Dar, apoi, dacă ar fi să adăuga comentarii la post pe blog, 346 00:18:47,060 --> 00:18:50,140 atunci probabil că aș fi vrut să facă un nou controler pentru aceste comentarii. 347 00:18:50,140 --> 00:18:53,380 Dacă aș fi vrut să adăugați utilizatori, probabil, aș adăuga un nou controler pentru acei utilizatori, 348 00:18:53,380 --> 00:18:57,000 și, în general, ideea este că de fiecare dată când aveți un nou model, 349 00:18:57,000 --> 00:18:59,630 un nou obiect de date pe care ai de a face cu, 350 00:18:59,630 --> 00:19:02,970 aveți un singur controler pentru acel obiect de date. 351 00:19:02,970 --> 00:19:04,370 Astăzi suntem doar de gând să lucreze cu un obiect de date, 352 00:19:04,370 --> 00:19:06,250 și care va fi posturi, 353 00:19:06,250 --> 00:19:08,710 și, de asemenea, vă puteți gândi de obiecte de date ca fiind corespunzătoare de mese. 354 00:19:08,710 --> 00:19:12,160 În general, fiecare tabel corespunde cu 1 tip de obiect de date, 355 00:19:12,160 --> 00:19:15,160 astfel încât masa de post va avea un model de mesaj, 356 00:19:15,160 --> 00:19:18,230 care va avea un controler mesaj corespunzător că, 357 00:19:18,230 --> 00:19:22,190 și același pentru comentarii, la fel de utilizatori, și așa mai departe și așa mai departe. 358 00:19:22,190 --> 00:19:24,070 Și că este o regulă generală de degetul mare. 359 00:19:24,070 --> 00:19:27,460 Nu vor fi cazuri speciale în care vă pot fi diferite de la care, 360 00:19:27,460 --> 00:19:29,300 dar 90% din timp, asta e ceea ce ai de gând să faci, 361 00:19:29,300 --> 00:19:32,810 și vă voi arăta asta e ceea ce vom face azi. 362 00:19:32,810 --> 00:19:35,490 1 mai mult conceptul înainte de a se arunca cu capul înapoi în codul, 363 00:19:35,490 --> 00:19:37,710 această idee de obiect de cartografiere relaționale. 364 00:19:37,710 --> 00:19:41,200 >> Voi ați făcut deja o PSET dezvoltare web, 365 00:19:41,200 --> 00:19:43,820 și le-ați văzut că ați face o interogare SQL, 366 00:19:43,820 --> 00:19:46,510 și ceea ce se întoarce la tine sunt rânduri. 367 00:19:46,510 --> 00:19:50,040 Ai aceste rânduri, și indicele lor de către unele nume, 368 00:19:50,040 --> 00:19:55,480 numele coloanei și masă, 369 00:19:55,480 --> 00:19:57,630 și că e modul în care lucrați cu ea, 370 00:19:57,630 --> 00:19:59,290 și acesta poate fi un pic greoaie. 371 00:19:59,290 --> 00:20:01,810 Dar, de asemenea, dacă aveți relații în baza de date, 372 00:20:01,810 --> 00:20:05,280 cum ar fi, de exemplu, dacă am comentarii și mesaje, 373 00:20:05,280 --> 00:20:11,240 atunci poate că vreau să iau postul-mamă a unui comentariu. 374 00:20:11,240 --> 00:20:14,350 Dacă am folosi doar rânduri în SQL, atunci tot ce pot obține este ID-ul de 375 00:20:14,350 --> 00:20:19,310 de la postul de părinte și nu postul în sine. 376 00:20:19,310 --> 00:20:21,680 Dar atunci când suntem de codificare, ceea ce ne dorim de fapt este de a apuca de fapt 377 00:20:21,680 --> 00:20:23,550  mamă în sine posta uneori. 378 00:20:23,550 --> 00:20:25,730 Ce obiect relational mapping nu este 379 00:20:25,730 --> 00:20:29,480 este nevoie de rezultatele interogării bazei de date 380 00:20:29,480 --> 00:20:32,420 și-l pune în obiecte pentru tine, care sunt mult mai frumos de a lucra cu 381 00:20:32,420 --> 00:20:34,770 decât matrice simple și rânduri. 382 00:20:34,770 --> 00:20:37,550 >> De exemplu, acum când am un comentariu, probabil, 383 00:20:37,550 --> 00:20:40,900 și vreau să iau după mamă, 384 00:20:40,900 --> 00:20:43,440 și eu nu poate comenta săgeată mesaj, 385 00:20:43,440 --> 00:20:45,230 atunci se va da de fapt, mi-a obiectului mesaj 386 00:20:45,230 --> 00:20:47,940 corespunzătoare postului părinte real, nu doar un act de identitate, 387 00:20:47,940 --> 00:20:52,210 pe care mi-ar fi altfel, de a folosi și de a face un alt interogare SQL pentru a apuca post, 388 00:20:52,210 --> 00:20:57,430 care este greoaie și inutile. 389 00:20:57,430 --> 00:21:01,840 Și, în plus, de cartografiere toate aceste rânduri de date în obiecte, 390 00:21:01,840 --> 00:21:03,760 aveți posibilitatea să atașați, de asemenea, mai multe funcții de obiecte, 391 00:21:03,760 --> 00:21:09,700 Deci, de exemplu, am vorbit despre cât de clase sunt, în esență, grupuri de funcții. 392 00:21:09,700 --> 00:21:11,620 Poți să te gândești la asta. 393 00:21:11,620 --> 00:21:15,290 De exemplu, poate că am avea acest obiect mesaj, 394 00:21:15,290 --> 00:21:17,830 și, poate, aș dori să aibă un fel de funcții atașat la acesta 395 00:21:17,830 --> 00:21:20,300 care mi-a spus de fapt a fost postat recent? 396 00:21:20,300 --> 00:21:23,570 A fost postat în ultima săptămână, adevărat sau fals? 397 00:21:23,570 --> 00:21:27,320 Și că este o funcție pot atașa pe acel obiect, 398 00:21:27,320 --> 00:21:31,300 și este foarte convenabil să-l aibă în același loc, 399 00:21:31,300 --> 00:21:33,820 și există o serie de funcții diferite, puteți crea 400 00:21:33,820 --> 00:21:37,990 pentru aceste obiecte, și este într-adevăr frumos să fie în măsură să-l atașați la o clasă, 401 00:21:37,990 --> 00:21:41,700 la un obiect, în timp ce în cazul în care tocmai ați avut rânduri provin din baza de date, 402 00:21:41,700 --> 00:21:43,790 atunci nu se poate atașa cu adevărat orice funcționalitate de care. 403 00:21:43,790 --> 00:21:47,850 Este literalmente doar date. 404 00:21:47,850 --> 00:21:50,550 Orice întrebări cu privire la faptul că, la toate? 405 00:21:50,550 --> 00:21:52,710 ORMs sunt dezvoltare web foarte frecvente, 406 00:21:52,710 --> 00:21:56,330 și există o mulțime de diferite tipuri de ORMs, 407 00:21:56,330 --> 00:21:58,450 și Kohana are propriul ORM. 408 00:21:58,450 --> 00:22:05,050 Este foarte de bază, dar veți obține un gust de ceea ce pare. 409 00:22:05,050 --> 00:22:08,780 >> Să creăm un model de blog noastre, 410 00:22:08,780 --> 00:22:12,350 și primul lucru pe care, evident, trebuie să facem este de a crea un tabel real 411 00:22:12,350 --> 00:22:16,680 în baza noastră de date pentru a stoca de fapt, datele noastre pentru aceste posturi. 412 00:22:16,680 --> 00:22:19,260 Primul lucru pe care am de gând să faceți este să mergeți la phpMyAdmin. 413 00:22:19,260 --> 00:22:21,410 L-ați folosit phpMyAdmin înainte? 414 00:22:21,410 --> 00:22:23,400 Bine, minunat, așa că voi știu deja ce este că, 415 00:22:23,400 --> 00:22:32,200 și am de gând pentru a crea un nou tabel numit Kohana Mesaje, 416 00:22:32,200 --> 00:22:37,820 și că va fi foarte simplu. 417 00:22:37,820 --> 00:22:40,190 Va trebui să vă conectați înapoi inch 418 00:23:02,620 --> 00:23:04,640 Tot ce ai de gând să faci azi este să aibă un autor și un corp, 419 00:23:04,640 --> 00:23:11,930 doar păstrați-l simplu. 420 00:23:11,930 --> 00:23:15,620 Am de gând să creeze masa, 421 00:23:15,620 --> 00:23:19,620 iar acum ne-am avea un tabel reprezentând mesajele noastre 422 00:23:19,620 --> 00:23:23,370 cu două câmpuri pentru autorul nostru și corpul nostru. 423 00:23:23,370 --> 00:23:26,290 Celălalt lucru pe care am de gând să fac acum este 424 00:23:26,290 --> 00:23:29,820 configura cererea mea de web astfel încât să știe cum să se conecteze la baza de date, 425 00:23:29,820 --> 00:23:31,950 și aceasta, din nou, este ceva ce va trebui să facem cu toate aplicațiile web. 426 00:23:31,950 --> 00:23:34,790 Trebuie să-l spun numele de utilizator și parola 427 00:23:34,790 --> 00:23:36,990 și numele bazei de date și așa mai departe și așa mai departe 428 00:23:36,990 --> 00:23:40,000 să dau seama cum de a conecta de fapt, la baza de date. 429 00:23:40,000 --> 00:23:58,710 >> În Kohana, avem ceva numit un modul de bază de date, 430 00:23:58,710 --> 00:24:02,690 și în folderul de configurare avem acest folder numit de date, 431 00:24:02,690 --> 00:24:07,330 și după cum puteți vedea, există o grămadă de setări pe care trebuie să setați aici 432 00:24:07,330 --> 00:24:09,860 pentru a spune ceea ce este numele de utilizator și parola 433 00:24:09,860 --> 00:24:13,110 pentru baza de date, așa că am pot conecta de fapt, să-l. 434 00:24:13,110 --> 00:24:15,010 Și din moment ce eu nu vreau ca voi să știu de fapt 435 00:24:15,010 --> 00:24:17,190 numele de utilizator și parola de baza mea de date, 436 00:24:17,190 --> 00:24:23,840 Am un dosar în care am deja totul înființat, și am de gând să copiați și lipiți-l peste. 437 00:24:33,080 --> 00:24:36,870 Minunat. 438 00:24:36,870 --> 00:24:39,880 Bine. Cred că asta e tot de configurare am nevoie pentru a face, 439 00:24:39,880 --> 00:24:41,070 dar să vedem. 440 00:24:41,070 --> 00:24:43,720 Vom continua să lucreze în ea, și în cazul în care ceva se blochează, 441 00:24:43,720 --> 00:24:47,490 atunci vom repara. 442 00:24:47,490 --> 00:24:51,830 Acum, ce am de gând să faceți este să am de gând pentru a crea un nou controler. 443 00:24:51,830 --> 00:24:53,190 Sau de fapt, îmi pare rău. 444 00:24:53,190 --> 00:24:55,080 În primul rând trebuie să creeze un nou model. 445 00:24:55,080 --> 00:25:01,620 Voi crea un nou model numit post.php, 446 00:25:01,620 --> 00:25:12,440 și ceea ce am de gând să faceți este să mergem să-i spunem clasa Model_Post. 447 00:25:12,440 --> 00:25:15,390 Ia unele sintaxă evidențierea pe, 448 00:25:15,390 --> 00:25:19,750 și așa că atunci când spun, "se extinde ORM," asta e practic 449 00:25:19,750 --> 00:25:21,210 unele mai mult orientat-obiect de programare, 450 00:25:21,210 --> 00:25:23,340 care, din păcate, voi nu au învățat încă în CS50, 451 00:25:23,340 --> 00:25:25,290 dar este destul de ușor să ridic. 452 00:25:25,290 --> 00:25:27,950 Ea dă-mi toate această funcționalitate în plus care vine în acest pachet ORM, 453 00:25:27,950 --> 00:25:31,120 și așa că am obține o grămadă de funcții suplimentare și fleacuri gratuit, 454 00:25:31,120 --> 00:25:34,810 care veți vedea un pic de la un al doilea. 455 00:25:34,810 --> 00:25:37,670 >> Chiar acum, de fapt tot ce trebuie să faceți este să creați această clasă. 456 00:25:37,670 --> 00:25:39,160 Nici măcar nu trebuie să facă nici o funcție sau nimic, 457 00:25:39,160 --> 00:25:41,770 dar am creat o clasă care reprezintă masa, 458 00:25:41,770 --> 00:25:44,140 și pentru că am extins această clasă ORM, 459 00:25:44,140 --> 00:25:51,080 I a lua o grămadă de lucruri pentru gratuit, astfel încât de acum nu trebuie să configurați nimic mai sus. 460 00:25:51,080 --> 00:25:53,530 Și acum, ce am de gând să faceți este să am de gând pentru a crea un nou controler, 461 00:25:53,530 --> 00:25:58,480 pe care am de gând să nume blog.php, 462 00:25:58,480 --> 00:26:04,350 și am de gând să copiați controlerul Welcome 463 00:26:04,350 --> 00:26:11,950 așa că nu trebuie să tastați unele lucruri, 464 00:26:11,950 --> 00:26:20,720 și acum trebuie să redenumiți acest lucru. 465 00:26:20,720 --> 00:26:24,710 Acum, ce am de gând să fac pentru a testa pentru a vă asigura că totul este de lucru afară, 466 00:26:24,710 --> 00:26:27,820 Am de gând să apuca primul post de la baza mea de date 467 00:26:27,820 --> 00:26:32,680 și imprima corpul mesaj pe ecran. 468 00:26:32,680 --> 00:26:37,920 Pentru a face ca ceea ce am de gând să fac în primul rând este am de gând pentru a salva posturile 469 00:26:37,920 --> 00:26:48,770 pentru o variabilă, astfel ceea ce vom face este - 470 00:26:48,770 --> 00:26:52,090 în Kohana ceea ce faci este de a apuca obiectul poștă 471 00:26:52,090 --> 00:26:55,380 e un fel de greoaie, dar trebuie să faci acest lucru numit ORM :: fabrică, 472 00:26:55,380 --> 00:26:57,750 și apoi treci în numele modelului pe care doriți, 473 00:26:57,750 --> 00:27:00,490 și se returnează obiectul ORM care reprezintă acel model. 474 00:27:00,490 --> 00:27:04,860 Și apoi, cum am spus, atunci când vom extinde obiectul ORM, 475 00:27:04,860 --> 00:27:07,320 avem toate aceste metode de liber, așa de exemplu, 476 00:27:07,320 --> 00:27:09,200 vom obține această nouă funcție numită "găsi toate," 477 00:27:09,200 --> 00:27:12,160 care revine în mod automat fiecare mesaj în baza de date, 478 00:27:12,160 --> 00:27:14,850 care este destul de convenabil. 479 00:27:14,850 --> 00:27:17,480 >> Și acum în organism am de gând să se întoarcă 480 00:27:17,480 --> 00:27:24,860 primul mesaj și reveni corpul său. 481 00:27:24,860 --> 00:27:27,930 Și, desigur, am nevoie pentru a crea un mesaj, 482 00:27:27,930 --> 00:27:31,880 asa ca hai sa introduce un nou post. 483 00:27:31,880 --> 00:27:37,870 Voi spune, "Brandon, foarte primul meu post." 484 00:27:37,870 --> 00:27:40,010 Minunat. 485 00:27:40,010 --> 00:27:45,910 Iar acum vom merge la blog-uri 486 00:27:45,910 --> 00:27:50,960 și dacă totul funcționează bine - oh, acest lucru este din nou un alt lucru permisiunea dosar prost. 487 00:27:50,960 --> 00:27:56,090 Stai o secundă. Este un fel de absurd. 488 00:28:06,700 --> 00:28:08,490 Acolo mergem. Bine. 489 00:28:08,490 --> 00:28:10,040 Am stabilit că problema permisiune. 490 00:28:10,040 --> 00:28:12,040 Acesta a fost încercarea de a crea unele fișiere și unele jurnal, 491 00:28:12,040 --> 00:28:15,400 și permisiunile, din nou, nu au fost stabilite în mod corespunzător, așa că l-am făcut 492 00:28:15,400 --> 00:28:18,320 astfel încât aceste fișiere au fost permisiuni de scriere și executabil 493 00:28:18,320 --> 00:28:21,090 așa că ar putea conecta de fapt la lucruri. 494 00:28:21,090 --> 00:28:24,220 Acum e mi-a dat un alt proverb excepție, "clasa de ORM nu a fost găsit" 495 00:28:24,220 --> 00:28:26,960 și asta pentru că am uitat un pas. 496 00:28:26,960 --> 00:28:37,010 Asta e prea rău. 497 00:28:37,010 --> 00:28:40,270 În fișierul folder bootstrap, există aceste module aici, 498 00:28:40,270 --> 00:28:42,480 pe care le puteți alege pentru a activa sau dezactiva. 499 00:28:42,480 --> 00:28:44,340 Acestea sunt o grămadă de caracteristici diferite pe care le puteți alege pentru a utiliza 500 00:28:44,340 --> 00:28:46,180 în Kohana, care este un fel de frumos. 501 00:28:46,180 --> 00:28:49,090 >> De exemplu, ei au un modul de autentificare 502 00:28:49,090 --> 00:28:51,170 pe care le puteți utiliza pentru autentificarea utilizatorilor. 503 00:28:51,170 --> 00:28:53,390 Ei au un modul de cache, dacă doriți să pună în aplicare 504 00:28:53,390 --> 00:28:57,870 un fel de cache înapoi end pentru a face munca de aplicare fleacuri mai repede și. 505 00:28:57,870 --> 00:29:02,140 Avem nevoie pentru a permite baza de date și modulul ORM, 506 00:29:02,140 --> 00:29:04,280 pentru că așa cum am spus, suntem folosind baza de date, în mod evident, 507 00:29:04,280 --> 00:29:08,200 și avem nevoie, de asemenea, pentru a permite modulului ORM, 508 00:29:08,200 --> 00:29:12,220 pentru că ne-ar plăcea să aibă funcționalitatea în plus, ceea ce este frumos de a avea. 509 00:29:12,220 --> 00:29:14,240 Tot ce trebuie să faceți este să decomentați cele 2 linii, 510 00:29:14,240 --> 00:29:18,760 și acum, dacă am refresh, mi-a dat o altă eroare. 511 00:29:18,760 --> 00:29:22,100 Se spune, "clasa Model_Post nu a fost găsit." 512 00:29:22,100 --> 00:29:30,210 Acum, acest lucru este o problemă de bun pentru a avea. 513 00:29:30,210 --> 00:29:37,660 Să vedem. 514 00:29:37,660 --> 00:29:42,200 O facă publică. 515 00:29:42,200 --> 00:29:46,450 Nu. Stai. 516 00:30:11,610 --> 00:30:13,160 Oh, dragă. 517 00:30:13,160 --> 00:30:18,590 Nu știu de ce nu-i în stare să găsească asta. 518 00:30:18,590 --> 00:30:21,030 E foarte ciudat. 519 00:30:21,030 --> 00:30:23,820 Am această clasă aici. 520 00:30:23,820 --> 00:30:28,650 Cred că s-ar putea să - oh. 521 00:30:28,650 --> 00:30:32,010 Sunt atât de prost. Am uitat să adăugați o etichetă PHP. 522 00:30:32,010 --> 00:30:34,670 De aceea. 523 00:30:34,670 --> 00:30:41,260 Acum am să anulați că o modificare tocmai am făcut-o. 524 00:30:41,260 --> 00:30:44,270 >> Bine. Acolo mergem. 525 00:30:44,270 --> 00:30:47,500 Asta a fost într-adevăr o prostie. Nu am avut un PHP etichetă de deschidere. 526 00:30:47,500 --> 00:30:49,900 Dar, după cum puteți vedea, acum este de lucru în mod corespunzător, corect? 527 00:30:49,900 --> 00:30:51,240 Avem un mesaj. 528 00:30:51,240 --> 00:30:54,730 Ne-am luat primul post, iar acum ne-am imprimat corpul său. 529 00:30:54,730 --> 00:30:58,010 Mare. Fantastic. 530 00:30:58,010 --> 00:31:01,470 Orice întrebări până acum? 531 00:31:01,470 --> 00:31:04,100 Nope? Orice întrebări? 532 00:31:04,100 --> 00:31:08,340 Ok, deci ne-am creat modelul post, foarte de bază, 533 00:31:08,340 --> 00:31:10,930 și vom adăuga unele funcții mai târziu. 534 00:31:10,930 --> 00:31:13,600 Putem adăuga validări și de filtrare. 535 00:31:13,600 --> 00:31:15,650 Validări sunt unul dintre lucrurile 536 00:31:15,650 --> 00:31:18,150 că cadre rezolva pentru tine foarte, foarte bine, 537 00:31:18,150 --> 00:31:21,310 și nu cred că voi avea de a face acest lucru pentru PSET dumneavoastră CS50, 538 00:31:21,310 --> 00:31:24,000 dar dacă faci dezvoltare web pentru proiectul final, 539 00:31:24,000 --> 00:31:26,280 esti probabil de gând să vrei să faci un fel de validare, 540 00:31:26,280 --> 00:31:28,290 ca și cum nu avea nume de utilizator goale, 541 00:31:28,290 --> 00:31:31,950 poate avea o parolă cu cel puțin o parte lungime, lucruri de genul asta. 542 00:31:31,950 --> 00:31:34,750 Și este într-adevăr dificil să pună în aplicare aceste lucruri de către noi înșine, 543 00:31:34,750 --> 00:31:37,390 și destul de mult în fiecare cadru unic de web o face pentru tine 544 00:31:37,390 --> 00:31:41,140 și vă permite să o facă într-un mod foarte curat. 545 00:31:41,140 --> 00:31:44,340 Iar modelul este locul unde te exprima, în general, aceste reguli de validare, 546 00:31:44,340 --> 00:31:48,790 deoarece este validarea dacă un model este valabil sau nu. 547 00:31:48,790 --> 00:31:51,350 >> Dar pentru acum, vom pune că, până mai târziu, 548 00:31:51,350 --> 00:31:53,520 și de acum vom lucra la o altă parte, 549 00:31:53,520 --> 00:31:55,400 și vom încerca și de a face o noua viziune 550 00:31:55,400 --> 00:31:59,580 care listează toate posturile. 551 00:31:59,580 --> 00:32:02,490 Pașii implicați în a face o nouă acțiune pentru listarea toate posturile 552 00:32:02,490 --> 00:32:04,810 este de a apuca o listă a tuturor posturilor 553 00:32:04,810 --> 00:32:11,990 și apoi face lista a tuturor posturilor printr-un punct de vedere. 554 00:32:11,990 --> 00:32:16,420 Chiar aici, destul de fericire, ne-am luat deja toate posturile 555 00:32:16,420 --> 00:32:20,310 folosind aceasta prima linie, găsi toate funcțiile, 556 00:32:20,310 --> 00:32:22,520 și acum ce vom face este atât de departe 557 00:32:22,520 --> 00:32:25,350 Am fost stabilirea în mod direct corpul răspunsului 558 00:32:25,350 --> 00:32:29,090 prin trecerea șirul, dar acum vreau să folosesc o imagine, 559 00:32:29,090 --> 00:32:31,870 și diferența dintre o vedere și doar a face acest lucru 560 00:32:31,870 --> 00:32:35,330 este cu o vedere pot avea o mare model frumos, HTML, 561 00:32:35,330 --> 00:32:37,710 și ce pot face este o anumite variabile trece 562 00:32:37,710 --> 00:32:42,200 și apoi au punctul de vedere popula automat șablon sale 563 00:32:42,200 --> 00:32:44,690 folosind aceste variabile. 564 00:32:44,690 --> 00:32:50,780 Ce voi face este Voi crea un nou punct de vedere, 565 00:32:50,780 --> 00:32:55,940 și voi numi vedere ceva de genul "blog / index" 566 00:32:55,940 --> 00:33:08,480 și am de gând pentru a lega practic acest lucru - oh, ce scriu? 567 00:33:08,480 --> 00:33:12,910 Creierul meu este în altă parte. 568 00:33:12,910 --> 00:33:16,600 Am de gând să lega posturile variabile de vedere, 569 00:33:16,600 --> 00:33:19,950 astfel încât fel de vedere are acces la acest post variabilă. 570 00:33:19,950 --> 00:33:26,140 >> Și acum am nevoie pentru a crea acest punct de vedere, 571 00:33:26,140 --> 00:33:28,500 așa că aici avem acest folder numit "Vizualizări" 572 00:33:28,500 --> 00:33:32,150 și în primul rând, am de gând pentru a crea un nou dosar în care numita "Blog". 573 00:33:32,150 --> 00:33:35,810 Acest lucru este frumos. În acest fel putem avea o ierarhie frumos pentru punctele noastre de vedere. 574 00:33:35,810 --> 00:33:43,910 Și apoi am de gând pentru a crea un alt fișier de acolo, numit "index.php". 575 00:33:43,910 --> 00:33:45,780 Minunat. 576 00:33:45,780 --> 00:33:52,930 De fapt, hai să-i ambele au aici. 577 00:33:52,930 --> 00:33:56,760 Efectuarea unui fișier de vedere este, probabil, cea mai simplă parte din toate acestea, 578 00:33:56,760 --> 00:33:59,090 și acestea sunt, probabil, lucruri pe care sunteți deja familiarizat cu. 579 00:33:59,090 --> 00:34:01,240 Vom face ceva foarte simplu, 580 00:34:01,240 --> 00:34:05,360 incep sa spuna, "Lista mea de blog." 581 00:34:05,360 --> 00:34:14,860 Atunci putem trece prin, 582 00:34:14,860 --> 00:34:17,920 și putem repeta prin mesaje matrice, 583 00:34:17,920 --> 00:34:21,760 apuca fiecare mesaj și spune ceva de genul - 584 00:34:21,760 --> 00:34:25,290 poate adăuga o linie 585 00:34:25,290 --> 00:34:42,460 și apoi imprima autor și a corpului. 586 00:34:42,460 --> 00:34:44,480 Asta face sens până acum? 587 00:34:44,480 --> 00:34:50,870 Și să vedem dacă merge. 588 00:34:50,870 --> 00:34:53,489 Nu sa întâmplat nimic. 589 00:34:53,489 --> 00:34:55,090 Mă întreb de ce. 590 00:34:55,090 --> 00:34:58,760 Oh, am pierdut 1 pas. Foarte prostie din partea mea. 591 00:34:58,760 --> 00:35:01,640 Am creat un punct de vedere, dar nu am stabilit punctul de vedere ca răspuns, 592 00:35:01,640 --> 00:35:03,190 deci va trebui să faci un lucru mai mult. 593 00:35:03,190 --> 00:35:12,610 Trebuie să faci "acestui organism răspuns" și setați-o să fie punctul de vedere. 594 00:35:12,610 --> 00:35:14,760 Acolo mergem. 595 00:35:14,760 --> 00:35:17,200 Avem rubrica noastră, și apoi avem un post, 596 00:35:17,200 --> 00:35:20,500 și doar pentru lovituri, să introduceți un alt post 597 00:35:20,500 --> 00:35:23,390 astfel încât să putem vedea o listă. 598 00:35:31,800 --> 00:35:36,650 Și introduceți aceste 2 posturi, 599 00:35:36,650 --> 00:35:39,500 și acum, dacă am necesară încărcarea paginii, 600 00:35:39,500 --> 00:35:42,060 am vedea toate aceste posturi de aici. 601 00:35:42,060 --> 00:35:44,250 >> Asta face sens până acum? 602 00:35:44,250 --> 00:35:46,400 Da, o întrebare? Oh, bine. 603 00:35:46,400 --> 00:35:51,440 După cum puteți vedea, am fost în stare să separe toate aceste coduri de 604 00:35:51,440 --> 00:35:53,920 în diferite secțiuni, și apoi puteți vedea că este cel mai clar cu codul de vedere. 605 00:35:53,920 --> 00:35:57,810 Acest fișier de aici care reprezintă punctul de vedere, 606 00:35:57,810 --> 00:36:01,220 ea ii pasa doar despre reprezentarea datelor, afișarea de date. 607 00:36:01,220 --> 00:36:04,310 Acesta devine trecut un fel de date, și tot ce face este doar ți-l arăt. 608 00:36:04,310 --> 00:36:07,660 În toate celelalte părți ale codului, nu va trebui să vă faceți griji cu privire la orice de care, 609 00:36:07,660 --> 00:36:10,480 și în mod similar, codul de vedere nu trebuie să vă faceți griji despre nimic 610 00:36:10,480 --> 00:36:13,390 cum de a accesa baza de date și așa mai departe și așa mai departe, 611 00:36:13,390 --> 00:36:19,950 care este foarte bun și face codul mult mai mult de întreținut. 612 00:36:19,950 --> 00:36:23,390 Cum am spus, opinii, sunt dinamice, în care 613 00:36:23,390 --> 00:36:27,080 e un dosar, dar ar genera puncte de vedere diferite 614 00:36:27,080 --> 00:36:29,940 în funcție de variabilele de fapt trece în, 615 00:36:29,940 --> 00:36:32,370 și în plus, există o mulțime de diferite funcții helper 616 00:36:32,370 --> 00:36:34,230 pe care le puteți folosi pentru a vă ajuta să scrie cod mai rapid, 617 00:36:34,230 --> 00:36:36,320 pe care voi arăta într-o secundă. 618 00:36:36,320 --> 00:36:38,050 Da. 619 00:36:38,050 --> 00:36:42,490 >> [Student] Deci, zero dolari este un controler, corect? 620 00:36:42,490 --> 00:36:44,000 Că al doilea lucru. 621 00:36:44,000 --> 00:36:46,090 Întrebarea este este 0 dolari un controler? 622 00:36:46,090 --> 00:36:48,610 0 dolari este o variabilă am creat chiar aici. 623 00:36:48,610 --> 00:36:51,320 Am creat o vedere în primul rând. L-am atribuit unele variabile. 624 00:36:51,320 --> 00:36:54,960 Apoi am trecut în această funcție, a pus-o în calitate de organism de răspuns. 625 00:36:54,960 --> 00:36:57,260 Asta face sens? 626 00:36:57,260 --> 00:37:02,200 [Student] Deci, este de vedere :: fabrică, este punctul de vedere ca o clasă 627 00:37:02,200 --> 00:37:06,610 sau o bibliotecă [inaudibil] funcție fabrică? 628 00:37:06,610 --> 00:37:10,640 Este vorba de funcția de vedere :: fabrică, 629 00:37:10,640 --> 00:37:14,020 și, practic, acest lucru este ceva mai mult orientat pe obiect de programare, în esență. 630 00:37:14,020 --> 00:37:18,000 Vedere este punctul de vedere al clasei, și are o metoda numita "Fabrica" 631 00:37:18,000 --> 00:37:24,170 și că este o modalitate de a apuca obiectul care este numit "blog / index." 632 00:37:24,170 --> 00:37:27,140 Și asta e ceva mai mult orientat-obiect chestii de programare 633 00:37:27,140 --> 00:37:33,010 că eu nu am de gând să meargă în aici prea mult. 634 00:37:33,010 --> 00:37:36,400 Acum, evident, ne-o dorim pentru a crea posturi noi, 635 00:37:36,400 --> 00:37:38,790 dar nu vrem să aibă de a face acest lucru prin intermediul unei baze de date, 636 00:37:38,790 --> 00:37:41,280 așa că vom crea o nouă acțiune pentru a crea un nou post, 637 00:37:41,280 --> 00:37:43,050 și există o mulțime de lucruri ce trebuie să facem. 638 00:37:43,050 --> 00:37:45,910 >> Primul lucru pe care am de gând să facă - să abordeze aceste lucruri, unul câte unul. 639 00:37:45,910 --> 00:37:48,320 Primul lucru pe care îl vom face este că avem de a crea un formular 640 00:37:48,320 --> 00:37:54,460 pentru introducerea unui nou post, 641 00:37:54,460 --> 00:37:57,360 dar eu sunt, de asemenea, de gând să adăugați o nouă acțiune în primul rând, 642 00:37:57,360 --> 00:38:01,050 adăugând astfel o nouă acțiune este la fel de ușor ca 643 00:38:01,050 --> 00:38:03,490 adăugând o nouă funcție cu controlerul, 644 00:38:03,490 --> 00:38:13,710 și de acum am de gând să fac ceva foarte de bază, 645 00:38:13,710 --> 00:38:20,850 apuca doar acest punct de vedere și post-l, doar afișa pentru tine. 646 00:38:20,850 --> 00:38:26,220 Și apoi acum am de gând pentru a crea un nou fișier de vedere, 647 00:38:26,220 --> 00:38:33,690 și am de gând să înceapă să scrie unele lucruri. 648 00:38:33,690 --> 00:38:36,540 Ce este frumos despre Kohana este faptul că acestea oferă o mulțime de funcții diferite helper 649 00:38:36,540 --> 00:38:38,790 pentru tine de a scrie cod de vedere mult mai ușor, 650 00:38:38,790 --> 00:38:41,970 și 1 din aceste funcții helper sau module helper 651 00:38:41,970 --> 00:38:45,860 este de aproximativ scris forme. 652 00:38:45,860 --> 00:38:49,460 Pentru a scrie forme, nu am cu adevărat să scrie direct orice HTML mine. 653 00:38:49,460 --> 00:38:51,100 Voi au scris forme HTML. 654 00:38:51,100 --> 00:38:54,850 Știi cum poate fi într-adevăr, într-adevăr dureros și dificil de a scrie forme. 655 00:38:54,850 --> 00:38:59,970 Nu e amuzant, așa din fericire, 656 00:38:59,970 --> 00:39:04,860 putem scrie de fapt o formă cu ajutorul lui Kohana 657 00:39:04,860 --> 00:39:11,190 forma funcțiile helper a face acest lucru pentru noi. 658 00:39:11,190 --> 00:39:17,340 Vom avea practic domenii pentru fiecare lucru pe care îl avem, 659 00:39:17,340 --> 00:39:23,160 astfel unul pentru autori și una pentru organismele. 660 00:39:23,160 --> 00:39:27,090 Vom avea o etichetă, și vom avea o intrare. 661 00:39:37,450 --> 00:39:41,360 >> Și, în final, vom avea o prezentare. 662 00:39:49,350 --> 00:39:52,230 Și, după cum puteți vedea, aceasta este mult mai curat pentru a scrie 663 00:39:52,230 --> 00:39:58,150 decât toate că HTML murdar, care este un fel de frumos. 664 00:39:58,150 --> 00:40:00,930 Desigur, există și alte cadre web care au chiar mai curat decât atât, 665 00:40:00,930 --> 00:40:04,440 dar cel puțin aceasta este mai bună decât scris HTML singur. 666 00:40:09,400 --> 00:40:11,130 Awesome, deci acest lucru este ceea ce vedeți. 667 00:40:11,130 --> 00:40:13,530 Asta-i un fel de murdar, 668 00:40:13,530 --> 00:40:19,720 așa că am de gând să adăugați un sfârșit de linie acolo 669 00:40:19,720 --> 00:40:21,180 pentru a face ca arata un pic mai frumos. 670 00:40:21,180 --> 00:40:23,330 Ei bine, desigur, încă pare foarte, foarte rău, dar suntem doar concentrat 671 00:40:23,330 --> 00:40:26,050 pe funcționalitatea de acum și nu pe estetica. 672 00:40:26,050 --> 00:40:28,010 Nu ai timp pentru a face totul. 673 00:40:28,010 --> 00:40:30,600 Și, după cum puteți vedea, acum avem o formă super-de bază, 674 00:40:30,600 --> 00:40:32,080 care este un fel de frumos. 675 00:40:32,080 --> 00:40:36,730 Acest cod Aș spune că este mai curat decât încercarea de a scrie un HTML forma singur, 676 00:40:36,730 --> 00:40:40,290 așa că e drăguț. 677 00:40:40,290 --> 00:40:42,030 Ce urmează? 678 00:40:42,030 --> 00:40:49,260 Acum, avem nevoie pentru a face lucruri cu acțiunea. 679 00:40:49,260 --> 00:40:51,240 În mod normal, atunci când scrie forme HTML, 680 00:40:51,240 --> 00:40:54,070 trebuie să-l spună unde se va depune formularul la. 681 00:40:54,070 --> 00:40:56,050 În mod implicit, în cele mai multe cadre de web, 682 00:40:56,050 --> 00:40:58,200 se depune la același URL-ul exact, deci chestia este, 683 00:40:58,200 --> 00:41:01,310 dacă trimiteți o solicitare GET la / blog / nou, 684 00:41:01,310 --> 00:41:03,240 aceasta ar trebui să afișeze forma, 685 00:41:03,240 --> 00:41:06,810 dar dacă trimiteți o solicitare post / blog / nou cu datele, 686 00:41:06,810 --> 00:41:10,000 aceasta ar trebui să încerce, de fapt pentru a salva acest post 687 00:41:10,000 --> 00:41:13,300 și de a face ceva cu ea. 688 00:41:20,630 --> 00:41:22,180 >> Ceea ce vom face este 689 00:41:22,180 --> 00:41:25,320 practic tot ce trebuie să facem pentru a verifica dacă este o cerere de mesaj sau o cerere get 690 00:41:25,320 --> 00:41:29,350 este de a verifica ceea ce sunt variabilele mesaj le puteți seta. 691 00:41:29,350 --> 00:41:34,560 Și dacă variabila mesaj este setat, apoi vom încerca și de a crea un nou post. 692 00:41:34,560 --> 00:41:38,440 Din nou, doar ne-am face acest lucru, 693 00:41:38,440 --> 00:41:41,090 și care creează un nou post, și vom merge la literalmente 694 00:41:41,090 --> 00:41:51,150 stabilit domeniile sale, cum ar fi acest lucru, 695 00:41:51,150 --> 00:41:55,640 și apoi ne-am de gând să-l salveze. 696 00:41:55,640 --> 00:41:59,200 Și apoi am de gând să redirecționeze 697 00:41:59,200 --> 00:42:07,660 la pagina de index pentru a putea vedea lista noastră de posturi din nou. 698 00:42:07,660 --> 00:42:09,620 Să încercăm asta. 699 00:42:09,620 --> 00:42:15,160 Voi spune, "Brandon," 700 00:42:15,160 --> 00:42:18,140 și apoi să prezinte post, și dacă totul merge bine, 701 00:42:18,140 --> 00:42:21,390 după cum puteți vedea, mi-a redirecționat către pagina de index, 702 00:42:21,390 --> 00:42:24,140 și dacă am derulați în partea de jos, avem un post nou introdus. 703 00:42:24,140 --> 00:42:26,430 Yay! 704 00:42:26,430 --> 00:42:28,430 Da, întrebare. 705 00:42:28,430 --> 00:42:31,760 >> [Student] Ce se întâmplă dacă ai fi intrat în exact același lucru 706 00:42:31,760 --> 00:42:33,380 ați introdus înainte? 707 00:42:33,380 --> 00:42:36,950 Nu-l verificați pentru a vă asigura că nu ați duplicat 708 00:42:36,950 --> 00:42:38,810 În același prezentarea? 709 00:42:38,810 --> 00:42:41,660 Fie implicit, nu, pentru că în mod implicit - 710 00:42:41,660 --> 00:42:46,470 îmi pare rău, întrebarea este dacă introduceți în exact aceleași date în formă 711 00:42:46,470 --> 00:42:50,180 și susțin că, va permite să introduceți un obiect duplicat, 712 00:42:50,180 --> 00:42:52,550 un duplicat de intrare, în esență? 713 00:42:52,550 --> 00:42:54,070 Chiar acum, da, se va permite să faci asta, 714 00:42:54,070 --> 00:42:58,860 pentru că în bazele de date este perfect valid să aibă rânduri complet duplicat, 715 00:42:58,860 --> 00:43:02,260 dar în cazul în care este un motiv de îngrijorare, atunci puteți adăuga validări, de exemplu, 716 00:43:02,260 --> 00:43:06,430 pentru a se asigura că în cazul în care acest lucru este exact la fel ca pe ceva care există deja, 717 00:43:06,430 --> 00:43:08,720 apoi spune că este un obiect invalid, 718 00:43:08,720 --> 00:43:11,200 și apoi puteți specifica chiar și mesajul de eroare 719 00:43:11,200 --> 00:43:14,390 și spune, "Invalid pentru că aceasta există deja", sau ceva de genul asta. 720 00:43:14,390 --> 00:43:22,420 Dar, în acest caz, am putea crea ceva duplicat. 721 00:43:22,420 --> 00:43:26,010 Acum, haideți să încercăm și se adaugă câteva validări. 722 00:43:26,010 --> 00:43:30,400 Problema cu acest lucru chiar acum este că 723 00:43:30,400 --> 00:43:34,220 Am putea prezenta literalmente un post complet gol. 724 00:43:34,220 --> 00:43:37,500 Am posibilitatea să faceți clic pe acest buton, chiar acum, și acolo vom merge. 725 00:43:37,500 --> 00:43:40,290 Nu se poate cu adevărat vedea, dar această linie în plus aici 726 00:43:40,290 --> 00:43:43,830 indică faptul că am literalmente un nou post. 727 00:43:43,830 --> 00:43:46,050 Ea are doar un autor gol și un corp gol, 728 00:43:46,050 --> 00:43:48,630 și nu vrem pentru a permite oamenilor să facă asta. 729 00:43:48,630 --> 00:43:52,550 Acest lucru este în cazul în care validarea vine inch 730 00:43:52,550 --> 00:43:57,540 >> Pot merge la obiect mea de model, 731 00:43:57,540 --> 00:43:59,530 și acum pot adăuga o nouă funcție care specifică 732 00:43:59,530 --> 00:44:02,000 ce reguli de validare ar trebui să adăugați la acest model 733 00:44:02,000 --> 00:44:06,840 pentru a vă asigura că acesta este valid sau de a specifica ce înseamnă să fi un post valid? 734 00:44:06,840 --> 00:44:10,210 Și vreau să spun că este doar un mesaj valabil dacă atât autorul și corpul 735 00:44:10,210 --> 00:44:15,150 nu sunt goale, iar acest lucru este modul în care se face în Kohana. 736 00:44:15,150 --> 00:44:18,750 Puteți crea o nouă funcție numită "Regulile" 737 00:44:18,750 --> 00:44:20,210 și apoi vă întoarceți în esență un tablou asociativ 738 00:44:20,210 --> 00:44:24,230 care definește regulile de validare pentru acest obiect. 739 00:44:24,230 --> 00:44:27,530 Vom reveni matrice, și apoi ceea ce am de gând să faceți este să 740 00:44:27,530 --> 00:44:32,820 spune "autorul," se duce la o matrice, 741 00:44:32,820 --> 00:44:37,720 care se duce la un alt array numit "nu este gol." 742 00:44:37,720 --> 00:44:41,480 Și apoi am de gând să spun "trup." 743 00:44:50,980 --> 00:44:54,120 Bine, și sintaxa pentru acest lucru și structura pentru acest 744 00:44:54,120 --> 00:44:56,530 poate arata un pic mai greoaie și un pic mai complicat. 745 00:44:56,530 --> 00:44:59,330 Dacă ați citit documentația, e destul de simplu să ne dăm seama, 746 00:44:59,330 --> 00:45:02,500 Dar, în esență, aceasta este ceea ce trebuie să faci pentru a specifica 747 00:45:02,500 --> 00:45:04,130 unele reguli de validare, și există o mulțime de reguli diferite 748 00:45:04,130 --> 00:45:06,810 care Kohana vă va oferi gratuit, ca să puteți adăuga reguli de spus 749 00:45:06,810 --> 00:45:08,410 aceasta trebuie să fie de cel puțin această lungime. 750 00:45:08,410 --> 00:45:11,800 Poate că trebuie să fie numeric. Poate că trebuie să fie numeric alfa. 751 00:45:11,800 --> 00:45:14,410 Poate că trebuie să fie cel mult această lungime, așa mai departe și așa mai departe. 752 00:45:14,410 --> 00:45:17,730 Există o mulțime de reguli diferite care Kohana prevede pentru tine, 753 00:45:17,730 --> 00:45:19,610 si poti sa te duci pe site-ul lor, uita-te la documentația, 754 00:45:19,610 --> 00:45:23,150 și puteți vedea toate lucruri diferite pe care le puteți face. 755 00:45:23,150 --> 00:45:25,650 >> Dar acest lucru este tot ce trebuie să fac, 756 00:45:25,650 --> 00:45:30,490 și acum să vedem ce se întâmplă 757 00:45:30,490 --> 00:45:34,060 dacă am să prezinte un mesaj gol. 758 00:45:34,060 --> 00:45:36,960 Ce se va întâmpla? Oh, nu, primesc o eroare. 759 00:45:36,960 --> 00:45:39,440 I a lua o excepție validare. 760 00:45:39,440 --> 00:45:41,070 Ei bine, e bine. 761 00:45:41,070 --> 00:45:43,200 Ea mi-a spus că modelul meu este invalid, 762 00:45:43,200 --> 00:45:45,780 dar nu vreau pentru a afișa o excepție 763 00:45:45,780 --> 00:45:48,720 pentru utilizatorii mei atunci când încearcă să prezinte ceva invalid, corect? 764 00:45:48,720 --> 00:45:51,560 Vreau să le dau un fel de mesaj de eroare prietenos 765 00:45:51,560 --> 00:45:53,610 atunci când ceva nu merge bine. 766 00:45:53,610 --> 00:46:01,830 Ceea ce am de gând să faceți este să mergem la 767 00:46:01,830 --> 00:46:04,490 înveliți totul într-o buclă try catch. 768 00:46:04,490 --> 00:46:06,750 De fapt, cred că acest lucru este, de asemenea, ceva ce nu au învățat încă 769 00:46:06,750 --> 00:46:10,820 în CS50, deoarece C, limbajul de programare C, 770 00:46:10,820 --> 00:46:14,000 nu are excepții, dar aproape fiecare altă limbă 771 00:46:14,000 --> 00:46:16,700 are excepții, astfel încât într-adevăr, foarte pe scurt, 772 00:46:16,700 --> 00:46:19,430 o excepție este ceva care o bucată de cod poate 773 00:46:19,430 --> 00:46:21,430 arunca o excepție atunci când ceva nu merge bine, 774 00:46:21,430 --> 00:46:23,410 dar apoi, poate, o altă bucată de cod mai sus 775 00:46:23,410 --> 00:46:25,810 poate prinde această excepție și de a face ceva cu ea. 776 00:46:25,810 --> 00:46:27,710 >> De exemplu, în acest caz, 777 00:46:27,710 --> 00:46:29,940 bucata de cod care este încercarea de a salva un model, 778 00:46:29,940 --> 00:46:33,170 se validează modelul, și în cazul în care se spune: "Bine, acest model este invalid," 779 00:46:33,170 --> 00:46:36,150 se va arunca o excepție, iar acest lucru este un fel de echivalent cu 780 00:46:36,150 --> 00:46:39,870 în C, s-ar putea returna un -1 sau ceva de genul asta. 781 00:46:39,870 --> 00:46:42,320 Și apoi pentru mine, această funcție, codul meu 782 00:46:42,320 --> 00:46:46,310 la un nivel superior, pot încerca și de captură ca excepție 783 00:46:46,310 --> 00:46:49,330 și, practic spune, "Bine, dacă mă prinde excepție, ceea ce am de gând să fac?" 784 00:46:49,330 --> 00:46:51,570 Sau aș putea alege să nu pentru a prinde această excepție și a lasa pe cineva mai sus 785 00:46:51,570 --> 00:46:54,400 prinde excepție, sau în cazul în care nimeni nu-l prinde, 786 00:46:54,400 --> 00:46:56,820 apoi întregul program se blochează și spune, 787 00:46:56,820 --> 00:46:59,170 "Ceva a mers prost, și nu am putut descurca." 788 00:46:59,170 --> 00:47:04,490 >> Dar ceea ce facem este când înfășurați o bucată de cod într-un bloc try, 789 00:47:04,490 --> 00:47:09,030 și apoi se adaugă, de asemenea, ceva numit un bloc de captură, 790 00:47:09,030 --> 00:47:17,300 care este un fel de cod care va încerca și prinde excepții care pot apărea. 791 00:47:17,300 --> 00:47:20,430 Și așa că, dacă-l prind această excepție special 792 00:47:20,430 --> 00:47:23,110 sau invalidare excepție, atunci ceea ce am de gând să faceți este să 793 00:47:23,110 --> 00:47:31,210 Am de gând să se stabilească erorile - Cred că e modul în care o fac - 794 00:47:31,210 --> 00:47:35,370 și am de gând să se stabilească erorile la un obiect. 795 00:47:35,370 --> 00:47:40,920 Și atunci ce am de gând să faceți este în cazul în care hit-uri această excepție, 796 00:47:40,920 --> 00:47:43,090 ea nu va redirecționa, și în cazul în care nu redirecționează, 797 00:47:43,090 --> 00:47:46,160 este de gând să iasă din blog-ul în cazul în care 798 00:47:46,160 --> 00:47:49,920 și a lovit acest blog / nou, care se vrea ce vreau să fac. 799 00:47:49,920 --> 00:47:53,190 Dacă există o eroare, atunci vreau să mă întorc la forma 800 00:47:53,190 --> 00:47:55,100 și afișa aceste erori. 801 00:47:55,100 --> 00:48:00,780 Acum, ceea ce vreau să fac este vreau să treci în aceste erori 802 00:48:00,780 --> 00:48:07,010 de punctul de vedere. 803 00:48:07,010 --> 00:48:10,360 Bine, cred că am punctul de vedere aici, 804 00:48:10,360 --> 00:48:14,660 și, practic, vreau pentru a afișa aceste erori dacă acestea există. 805 00:48:14,660 --> 00:48:19,740 Înainte de a scrie HTML pentru care, am de gând să foarte repede 806 00:48:19,740 --> 00:48:21,720 vă arăt ce structura acestei erori arată variabile place, 807 00:48:21,720 --> 00:48:23,080 și aceasta este o bună practică, în general. 808 00:48:23,080 --> 00:48:25,070 De multe ori veți obține ceva înapoi de la o metodă, 809 00:48:25,070 --> 00:48:27,250 o funcție în cadrul web, 810 00:48:27,250 --> 00:48:29,410 și nu știi ce variabila arata ca, 811 00:48:29,410 --> 00:48:31,210 așa că nu știu cum să lucreze cu el. 812 00:48:31,210 --> 00:48:37,790 Am de gând să folosească o metodă de imprimare r să practic imprima afară. 813 00:48:37,790 --> 00:48:41,100 >> Și, după cum puteți vedea, ea mi-a spus că este o matrice asociat, 814 00:48:41,100 --> 00:48:44,880 și aveți o cheie, autor, puncte de la acest șir, 815 00:48:44,880 --> 00:48:47,050 autor nu trebuie să fie gol, și o altă cheie, corp, 816 00:48:47,050 --> 00:48:49,680 puncte la un alt șir, corpul nu trebuie să fie gol. 817 00:48:49,680 --> 00:48:52,130 Sunt ca, bine, rece. 818 00:48:52,130 --> 00:48:56,230 Apoi am putea repeta prin matrice și imprima fiecare mesaj. 819 00:48:56,230 --> 00:49:02,150 Este practic ca un tablou asociativ cu o grămadă de mesaje. 820 00:49:02,150 --> 00:49:13,500 Ceea ce am de gând să faceți este să "cazul în care erorile," 821 00:49:13,500 --> 00:49:17,140 și am de gând pentru a crea o lista neordonata, 822 00:49:17,140 --> 00:49:20,860 și am de gând să itera prin toate erorile. 823 00:49:33,730 --> 00:49:38,710 Și acest lucru, și acum am de gând să încercați să îl trimiteți din nou, 824 00:49:38,710 --> 00:49:41,200 și să vedem ce avem. 825 00:49:41,200 --> 00:49:45,370 Acum avem această listă frumos de erori, 826 00:49:45,370 --> 00:49:48,630 și acest lucru este încă destul de urât, dar acest lucru, evident, poate fi formatate pentru a arata frumos, 827 00:49:48,630 --> 00:49:51,620 dar ideea de bază este doar în câteva linii de cod, 828 00:49:51,620 --> 00:49:53,720 am putut valida modelul nostru, 829 00:49:53,720 --> 00:49:56,510 asigurați-vă că anumite domenii nu erau goale, 830 00:49:56,510 --> 00:49:59,740 și dacă ceva nu a mers bine, apoi să se întoarcă un fel de mesaj de eroare 831 00:49:59,740 --> 00:50:01,760 Am putea prezenta apoi înapoi la utilizator. 832 00:50:01,760 --> 00:50:03,910 Puteți personaliza, de asemenea, validarea dvs. 833 00:50:03,910 --> 00:50:07,590 astfel încât să puteți avea de fapt, un mesaj de eroare 834 00:50:07,590 --> 00:50:09,620 care este mai specific la cererea dumneavoastră sau ceva de genul asta. 835 00:50:09,620 --> 00:50:14,600 Tot ceea ce este, în general, personalizabil. 836 00:50:14,600 --> 00:50:17,150 >> Din păcate, suntem în criză de timp, 837 00:50:17,150 --> 00:50:20,040 așa că am de gând să trebuie să taie în direct sesiunea de codificare aici. 838 00:50:20,040 --> 00:50:22,980 Există o mulțime de alte caracteristici pe care vreau sa demonstrez pentru tine 839 00:50:22,980 --> 00:50:25,650 în acest exemplu. 840 00:50:25,650 --> 00:50:27,620 De exemplu, puteți adăuga template-uri pentru site-ul dvs., 841 00:50:27,620 --> 00:50:31,110 deci poate că există un fel de cod HTML pe care doriți să se aplice 842 00:50:31,110 --> 00:50:35,190 pentru fiecare pagina din site-ul dvs., și în loc de lipire care 843 00:50:35,190 --> 00:50:40,630 în fiecare vizualizare fișier aveți, care, evident, ar fi o practică rău, 844 00:50:40,630 --> 00:50:43,020 puteți defini practic aceste template-uri, 845 00:50:43,020 --> 00:50:46,660 și apoi în controlerul spune, "Bine, eu sunt, folosind acest model." 846 00:50:46,660 --> 00:50:50,130 "Au toate opiniile mele folosi acest șablon." 847 00:50:50,130 --> 00:50:52,470 Și ultima lucru pe care vreau să vă demonstrez, precum și 848 00:50:52,470 --> 00:50:57,800 că nu avem timp este cross-site scripting, 849 00:50:57,800 --> 00:51:01,430 și, practic, cred că voi ați văzut, probabil, în CS50 - 850 00:51:01,430 --> 00:51:03,770 Cred că David Malan, probabil, a vorbit despre modul în care puteți injecta, de obicei, 851 00:51:03,770 --> 00:51:08,040 Cod JavaScript în - ați vorbit despre asta? 852 00:51:08,040 --> 00:51:10,220 Poate? Poate nu? 853 00:51:10,220 --> 00:51:12,670 >> Dar, de multe ori vă puteți injecta cod malitios JavaScript 854 00:51:12,670 --> 00:51:15,630 în baza de date cuiva, și în cazul în care nu se pot sustrage că în mod corespunzător, 855 00:51:15,630 --> 00:51:18,280 atunci când acestea prezintă datele înapoi la utilizator, 856 00:51:18,280 --> 00:51:21,310 atunci se poate rula un fel de cod aleatoriu JavaScript nu vrei să se întâmple, 857 00:51:21,310 --> 00:51:23,050 și am fost de gând pentru a demonstra cum ai face asta în Kohana. 858 00:51:23,050 --> 00:51:25,380 Este de fapt foarte, foarte usor. 859 00:51:25,380 --> 00:51:31,920 Aș putea face chiar acum în 2 secunde literalmente. 860 00:51:31,920 --> 00:51:34,560 Tot ce trebuie să faceți este de fapt încheie aceste lucruri 861 00:51:34,560 --> 00:51:46,920 în acest lucru numit entități HTML. 862 00:51:46,920 --> 00:51:51,180 Și că va scăpa în mod automat toate caracterele în mod corespunzător 863 00:51:51,180 --> 00:51:54,730 și asigurați-vă că nu obține această problemă. 864 00:51:54,730 --> 00:51:57,220 [Student] Ai scris incorect primul test. 865 00:51:57,220 --> 00:52:01,030 [Brandon Liu] Oh, Oops. 866 00:52:01,030 --> 00:52:06,420 >> Bine, asta e tot ce am avut de a împărtăși cu tine pentru ziua de azi. 867 00:52:06,420 --> 00:52:09,930 Aceste slide-uri vor fi postate, dar acestea sunt, în general, 868 00:52:09,930 --> 00:52:13,900 numai resursele ar trebui într-adevăr nevoie pentru a începe cu Kohana. 869 00:52:13,900 --> 00:52:16,770 Puteți merge la site-ul web. Ei au un ghid de utilizare, și au, de asemenea, un explorator API. 870 00:52:16,770 --> 00:52:20,630 Putem explora toate diferite funcții și funcții helper care le au pentru tine. 871 00:52:20,630 --> 00:52:22,070 Ei au, în general, suficiente informații cu privire la site-ul web 872 00:52:22,070 --> 00:52:25,310 pe care le puteți folosi pentru a începe și să plec cu Kohana. 873 00:52:25,310 --> 00:52:30,840 Nu sunt atât de multe tutoriale, cred, pentru Kohana, in afara de 874 00:52:30,840 --> 00:52:33,880 ceea ce au pe site-ul de aici, așa că acest lucru este, probabil, cel mai bun pariu. 875 00:52:33,880 --> 00:52:35,600 Dar, dacă vrei să mergi cu cadrul de web 876 00:52:35,600 --> 00:52:37,120 și nu doriți să aibă de a ridica un nou limbaj, 877 00:52:37,120 --> 00:52:39,780 si tu vrei ceva care este relativ ușor și are o curbă de învățare ușoară, 878 00:52:39,780 --> 00:52:41,570 Aș sugera siguranta Kohana. 879 00:52:41,570 --> 00:52:44,040 Acesta este probabil cel mai bun jertfa pentru asta. 880 00:52:44,040 --> 00:52:46,830 Lucru amuzant, totuși, este dacă am fost folosind Ruby on Rails, 881 00:52:46,830 --> 00:52:48,550 am putea fi replicat ceea ce am făcut 882 00:52:48,550 --> 00:52:51,430 și, probabil, mai mult în sub 3 minute. 883 00:52:51,430 --> 00:52:54,710 Nici o gluma, dar de învățare Ruby on Rails durează mult mai mult 884 00:52:54,710 --> 00:52:56,780 decât ar fi nevoie pentru a învăța Kohana. 885 00:52:56,780 --> 00:52:58,840 Este practic alegerea pe ceea ce doriți să alegeți să învețe, 886 00:52:58,840 --> 00:53:01,260 dar dacă vrei să te ridici și să fie difuzate mai repede, 887 00:53:01,260 --> 00:53:03,870 Kohana este cu siguranta o alegere foarte buna. 888 00:53:03,870 --> 00:53:06,730 >> Orice ultimele întrebări înainte de a termina? Da. 889 00:53:06,730 --> 00:53:08,020 [Student] Cum ne-ar integra că 890 00:53:08,020 --> 00:53:13,120 într-un cadru CSS ca tine utilizați când ați fost instrucție? 891 00:53:13,120 --> 00:53:16,700 Întrebarea este cum ne-ar integra, care cu un cadru CSS? 892 00:53:16,700 --> 00:53:18,740 Ce ne-ar face, probabil, este că ar include, probabil, 893 00:53:18,740 --> 00:53:21,090 un nou dosar în care ne-ar arunca toate fișierele noastre CSS, 894 00:53:21,090 --> 00:53:23,010 și apoi ne-ar adăuga, de asemenea, un nou șablon. 895 00:53:23,010 --> 00:53:26,090 În șablonul am includ acele fișiere CSS 896 00:53:26,090 --> 00:53:28,410 pentru a vă asigura că ele face referire la fiecare pagina, 897 00:53:28,410 --> 00:53:32,220 și atunci când de fapt se scrie HTML, 898 00:53:32,220 --> 00:53:34,010 doar să adăugați cursuri adecvate și fleacuri, 899 00:53:34,010 --> 00:53:36,100 și, de exemplu, atunci când utilizați ceva de genul forma 900 00:53:36,100 --> 00:53:40,710 funcția de ajutor, puteți adăuga mai multe parametri după aceea 901 00:53:40,710 --> 00:53:42,830 pentru a specifica ce cursuri doriți să fie atașat la diverse lucruri 902 00:53:42,830 --> 00:53:47,820 astfel încât acestea ar putea stilul în mod corespunzător, și asta e de fapt modul în care v-ar merge. 903 00:53:47,820 --> 00:53:50,100 >> Orice alte întrebări? 904 00:53:50,100 --> 00:53:52,090 Minunat. 905 00:53:52,090 --> 00:53:58,540 Va multumim pentru timpul acordat, și vă mulțumesc că ați venit. 906 00:53:58,540 --> 00:54:05,170 Eu nu am fost de gând să adăugați foarte mult altceva, 907 00:54:05,170 --> 00:54:08,560 dar un lucru foarte rapid este că nu avem o legătură 908 00:54:08,560 --> 00:54:12,590 pentru a forma. 909 00:54:12,590 --> 00:54:14,310 Într-adevăr prost. 910 00:54:14,310 --> 00:54:20,110 Să adăugăm o - de fapt, din punctul de vedere, blog, index, 911 00:54:20,110 --> 00:54:23,890 Să foarte repede adăuga un link care duce la noua pagină, 912 00:54:23,890 --> 00:54:26,770 pagina unde putem introduce un nou post. 913 00:54:26,770 --> 00:54:29,950 Vom face acest lucru. 914 00:54:29,950 --> 00:54:34,020 Ce e frumos este acolo este tot acest grup de funcții ajutătoare HTML 915 00:54:34,020 --> 00:54:37,090 care fac lucruri diferite pentru tine, așa că ai văzut deja entitățile 916 00:54:37,090 --> 00:54:41,980 funcționa aici, dar au, de asemenea, o funcție numită "ancoră" 917 00:54:41,980 --> 00:54:45,400 pe care aveți posibilitatea să tastați în blog / new 918 00:54:45,400 --> 00:54:49,550 și spune, "Scrie un nou blog." 919 00:54:49,550 --> 00:54:51,850 Și s-ar crea că link-ul pentru tine, 920 00:54:51,850 --> 00:54:54,120 și acest lucru pare într-adevăr banal de a face, dar acest lucru este frumos, 921 00:54:54,120 --> 00:54:58,720 pentru că presupunem că sunteți în mișcare site-ul dvs. de la un domeniu la altul. 922 00:54:58,720 --> 00:55:01,390 Și dacă tocmai ați scris pe adresele URL singur, 923 00:55:01,390 --> 00:55:04,350 atunci va trebui să schimbe toate adresele URL. 924 00:55:04,350 --> 00:55:06,850 Sau poate l-ați mutat de la un subdirector la un alt subdirector. 925 00:55:06,850 --> 00:55:08,790 Tu ar trebui să schimbe toate aceste URL-uri singur, 926 00:55:08,790 --> 00:55:12,180 și că nu e distractiv. 927 00:55:12,180 --> 00:55:14,510 Puteți folosi această ancoră aici, 928 00:55:14,510 --> 00:55:18,950 și puteți schimba domeniu sau prefixul subfolder 929 00:55:18,950 --> 00:55:20,640 în fișierul de configurare o dată, 930 00:55:20,640 --> 00:55:22,980 și apoi se va aplica ca pretutindeni, iar acest lucru este, din nou, 931 00:55:22,980 --> 00:55:26,930 un exemplu foarte bun de nu te repeta, uscare codul afară. 932 00:55:26,930 --> 00:55:30,370 Oriunde tu te repeta, încercați și extract într-un fel de fișier de configurare 933 00:55:30,370 --> 00:55:34,160 sau la o altă funcție și să-l ocupe de asta pentru tine. 934 00:55:34,160 --> 00:55:42,930 >> Și ultimul lucru pe care am vrut să-ți arăt a fost 935 00:55:42,930 --> 00:55:50,250 să presupunem că ne-am întors la acest post, și am compus unele eseu foarte lung, 936 00:55:50,250 --> 00:55:52,670 dar am uitat să includă autorul meu. 937 00:55:52,670 --> 00:55:55,210 Acum, când am faceți clic pe "Trimite Mesaj" 938 00:55:55,210 --> 00:55:57,270 Tocmai am pierdut totul. 939 00:55:57,270 --> 00:56:00,000 Nu! Într-adevăr trist. 940 00:56:00,000 --> 00:56:03,870 Deci, cum te descurci cu asta? 941 00:56:03,870 --> 00:56:06,070 Aceasta este ceea ce facem. 942 00:56:06,070 --> 00:56:09,340 Ceea ce facem noi este aici pentru aceste funcții de intrare și zona de text, 943 00:56:09,340 --> 00:56:12,700 dacă includem un al doilea parametru, atunci valoarea pe care al doilea parametru 944 00:56:12,700 --> 00:56:16,620 va fi ceea ce domeniu va fi inițial populat cu. 945 00:56:16,620 --> 00:56:23,570 Ce am putea face este în controler blog-ul nostru, 946 00:56:23,570 --> 00:56:25,360 am putea lega o altă variabilă. 947 00:56:25,360 --> 00:56:27,050 Spune-i "valori" poate. 948 00:56:27,050 --> 00:56:30,620 Și trece în matrice de după, literalmente. 949 00:56:30,620 --> 00:56:32,620 Asta înseamnă că, dacă validarea a eșuat, 950 00:56:32,620 --> 00:56:36,570 trece să-mi matrice mesaj pe care l-am prezentat la ultima cerere, 951 00:56:36,570 --> 00:56:38,420 și în acest fel pot folosi valori de la ultima mea depunerea 952 00:56:38,420 --> 00:56:44,540 pentru a repopula câmpurile. 953 00:56:44,540 --> 00:56:49,600 Acum pot face ceva de genul valori autor 954 00:56:49,600 --> 00:56:55,180 și valori corp, și în acest fel acum, dacă am face niște chestii aleatoare 955 00:56:55,180 --> 00:57:01,490 și faceți clic pe "Trimite Mesaj", apoi rămâne acolo. 956 00:57:01,490 --> 00:57:03,830 Dar vom rula într-o altă problemă. 957 00:57:03,830 --> 00:57:07,670 Care funcționează, dar dacă mă duc la pagina de prima dată, 958 00:57:07,670 --> 00:57:09,720 se va prăbuși, și asta pentru că prima dată 959 00:57:09,720 --> 00:57:13,730 vom merge la pagina, acest post variabilă nu a fost definit încă. 960 00:57:13,730 --> 00:57:18,170 Este nul. Ea nu exista. 961 00:57:18,170 --> 00:57:21,630 >> Și ceea ce vreau să spun este dacă există această cheie, 962 00:57:21,630 --> 00:57:27,750 apoi reveni la valoarea de această matrice, 963 00:57:27,750 --> 00:57:30,450 dar în cazul în care cheia nu există, apoi întoarce un șir gol. 964 00:57:30,450 --> 00:57:32,150 Asta e funcționalitatea vrem aici. 965 00:57:32,150 --> 00:57:34,690 Vrem să verificați dacă există cheia înainte de a încerca pentru a accesa matrice, 966 00:57:34,690 --> 00:57:36,580 și destul de fericire, 967 00:57:36,580 --> 00:57:38,570 Kohana, de asemenea, ne oferă o funcție de ajutor pentru asta. 968 00:57:38,570 --> 00:57:41,040 Ei au toată această suită de funcții 969 00:57:41,040 --> 00:57:43,660 sub ARR nume, scurt pentru matrice, 970 00:57:43,660 --> 00:57:45,800 și ei au o functie numita "ajunge", 971 00:57:45,800 --> 00:57:48,690 și puteți trece în matrice, 972 00:57:48,690 --> 00:57:50,740 și puteți trece în numele cheii. 973 00:57:50,740 --> 00:57:54,330 Apoi, practic, ceea ce va face este să încercați să obțineți acea cheie, 974 00:57:54,330 --> 00:57:56,470 dar în cazul în care cheia nu există în matrice, 975 00:57:56,470 --> 00:58:00,900 apoi se va întoarce gol, sau se poate specifica, de asemenea, un implicit, cred, 976 00:58:00,900 --> 00:58:03,500 ceea ce este frumos. 977 00:58:09,740 --> 00:58:13,150 Acum, dacă am face din nou acelasi lucru, 978 00:58:13,150 --> 00:58:15,970 atunci veți vedea acum funcționează prima dată în jurul valorii, 979 00:58:15,970 --> 00:58:18,080 și din nou, în cazul în care ne-am tip în unele chestii aleatoare 980 00:58:18,080 --> 00:58:23,210 și să încerce și să prezinte, apoi rămâne acolo. 981 00:58:23,210 --> 00:58:31,640 >> Și cred că pot, de asemenea, vă arată cum să adăugați un șablon foarte repede. 982 00:58:31,640 --> 00:58:36,140 Ce putem face în primul rând este că putem adăuga un nou vedere numit "template.php" 983 00:58:36,140 --> 00:58:38,890 în dosarul Views, 984 00:58:38,890 --> 00:58:44,730 și ceea ce am de gând să faceți este să am de gând să imprima ceva numit "conținut" 985 00:58:44,730 --> 00:58:49,130 care va fi conținutul meu principal. 986 00:58:49,130 --> 00:58:51,380 Și poate chiar la partea de jos am de gând să adăugați, să zicem, 987 00:58:51,380 --> 00:58:53,340 drepturile de autor. 988 00:58:53,340 --> 00:58:56,150 [Întrebare elev nu pot fi auzite] 989 00:58:56,150 --> 00:58:58,050 [Brandon Liu] Poate că acest lucru este un șablon de bază vreau să utilizeze. 990 00:58:58,050 --> 00:59:02,840 Vreau să am un folder cu drepturile de autor pe fiecare pagina, 991 00:59:02,840 --> 00:59:05,560 și acum ce am de gând să fac în controlor meu 992 00:59:05,560 --> 00:59:07,740 este acum, în loc de a spune, "extinde controler" 993 00:59:07,740 --> 00:59:11,870 Am de gând să spun, "se extinde Controller_Template," 994 00:59:11,870 --> 00:59:15,890 și acum, în loc de a spune, "organism de răspuns este egal cu acest punct de vedere," 995 00:59:15,890 --> 00:59:24,110 Am de gând să spun, "acest conținut șablon este -" 996 00:59:24,110 --> 00:59:27,690 și cred - am pus semnul egal? 997 00:59:27,690 --> 00:59:32,710 Am uitat. Da, m-am gândit așa. 998 00:59:32,710 --> 00:59:37,710 Și acum am stabilit că variabila de conținut pentru a egala de vedere. 999 00:59:37,710 --> 00:59:40,960 Eu pot face același lucru aici. 1000 00:59:49,620 --> 00:59:57,170 Și acum, dacă eu refresh, puteți vedea acum se adaugă acest drept de autor acolo, 1001 00:59:57,170 --> 01:00:00,350 și chiar face unele mesaj aleatoriu, 1002 01:00:00,350 --> 01:00:06,760 și apoi, din nou, ar trebui să vedeți că dreptul de autor este în partea de jos a paginii. 1003 01:00:06,760 --> 01:00:10,730 >> Mare. Asta e tot ce am vrut să-ți arăt băieți. 1004 01:00:10,730 --> 01:00:14,970 [Aplauze] 1005 01:00:14,970 --> 01:00:18,950 Orice întrebări? 1006 01:00:18,950 --> 01:00:21,000 [CS50.TV]