1 00:00:00,000 --> 00:00:02,150 >> [Seminario] [Kohana: malpeza PHP Kadra] 2 00:00:02,150 --> 00:00:04,000 [Brandon Liu] [Universitato Harvard] 3 00:00:04,000 --> 00:00:07,270 [Ĉi tiu estas CS50.] [CS50.TV] 4 00:00:07,270 --> 00:00:09,130 >> Saluton al ĉiuj. Mia nomo estas Brandon. 5 00:00:09,130 --> 00:00:11,000 Mi estas juna ĉi tie ĉe la kolegio faranta komputiko, kaj hodiaŭ ni iras por paroli pri 6 00:00:11,000 --> 00:00:14,460 Kohana, kiu estas PHP-retejo evoluo kadro. 7 00:00:14,460 --> 00:00:17,260 Hodiaŭ tuj estos rekta kodigo seminarion, 8 00:00:17,260 --> 00:00:21,000 do mi baze pasigos 5-10 minutoj eksplikante kio Kohana estas, 9 00:00:21,000 --> 00:00:25,000 kaj tiam Mi laŭvorte tuj konstrui super simpla blogo 10 00:00:25,000 --> 00:00:28,570 cxar vi rajtas tie laŭvorte de nulo. 11 00:00:28,570 --> 00:00:32,229 Ni tuj elŝuti la kodon de la Kohana retpaĝaro, 12 00:00:32,229 --> 00:00:35,000 kaj ni tuj komencu konstrui blogo, kaj espereble ĝi estos tre instrua, 13 00:00:35,000 --> 00:00:37,000 ĉar vi vidos eble eble mi faros kelkajn erarojn, 14 00:00:37,000 --> 00:00:39,000 kaj vi vidos min resanigxos de ili, 15 00:00:39,000 --> 00:00:42,040 aŭ vi vidos mian penson procezon kiel mi konstruu tra tiu ĉi blogo, 16 00:00:42,040 --> 00:00:44,000 kaj dume, vi ankaŭ ricevas familiara kun la kadro mem. 17 00:00:44,000 --> 00:00:48,000 Espereble ĝi estos tre instrua ekzercado. 18 00:00:48,000 --> 00:00:51,370 >> Unue, kio precize estas kadro? 19 00:00:51,370 --> 00:00:54,000 Se vi estis prenante CS50 tiom malproksime, vi ne vere laboris kun ajna 20 00:00:54,000 --> 00:00:56,000 kadroj tamen, kaj la afero estas jena. 21 00:00:56,000 --> 00:01:00,000 Vi probable farita 1 retejo evoluo pset jam, 22 00:01:00,000 --> 00:01:03,000 kaj diru al vi daŭre konstruas retejojn kaj subteni konstruaĵo retpaĝaroj. 23 00:01:03,000 --> 00:01:05,000 Vi devos komenci rimarki kelkajn aferojn. 24 00:01:05,000 --> 00:01:07,000 La unua afero, vi rimarkos, ke vi verŝajne faras la samajn aferojn 25 00:01:07,000 --> 00:01:09,150 foje kaj refoje dum la tuta tempo, 26 00:01:09,150 --> 00:01:13,000 aĵoj kiel purigado uzanto enigaĵo, 27 00:01:13,000 --> 00:01:17,250 aĵoj kiel organizi viajn dosierojn en certa maniero. 28 00:01:17,250 --> 00:01:19,000 La alia afero vi ankaŭ probable rimarkos estas ke via kodo 29 00:01:19,000 --> 00:01:21,000 eble komencos fariĝi tre, tre senorda, 30 00:01:21,000 --> 00:01:24,000 kaj vi povas lasi ĝin senorda kaj nur havas tre malfacile subteni ŝin, 31 00:01:24,000 --> 00:01:26,000 aux vi povas starti strukturi via kodo kaj farante gxin modula 32 00:01:26,000 --> 00:01:28,510 en certaj manieroj fari ĝin pli mantenible. 33 00:01:28,510 --> 00:01:31,020 >> Tiu estas kie ttt kadroj esence envenis 34 00:01:31,020 --> 00:01:33,680 Tiuj homoj, kiuj estis konstruitaj multe da retejoj, oni diris, 35 00:01:33,680 --> 00:01:35,820 "Ni ne bezonas refari ĉi ĉiun solan fojon ni konstruas retejon." 36 00:01:35,820 --> 00:01:39,050 "Kial ni ne simple fari pakon kiu faras cxion cxi tion por vi 37 00:01:39,050 --> 00:01:41,250 ĉiun solan fojon vi volas konstrui retejon? " 38 00:01:41,250 --> 00:01:43,030 Kaj por ke kiam vi faru novan retejon, 39 00:01:43,030 --> 00:01:45,880 vi simple enfokusigi kio precize tiu aparta paĝaro estas proksimume. 40 00:01:45,880 --> 00:01:48,630 Vi ne bezonas ripeti ĉiuj diversaj agordo 41 00:01:48,630 --> 00:01:53,070 kaj disiĝo de kodoj kaj reverkada kodo 42 00:01:53,070 --> 00:01:56,180 ke vi ofte devas fari kiam vi faras retpaĝaroj. 43 00:01:56,180 --> 00:01:59,410 La ideo estas ke ablono ebligas al vi skribi pli altnivelaj kodo 44 00:01:59,410 --> 00:02:01,030 sen devi zorgi pri malsupra nivelo detaloj. 45 00:02:01,030 --> 00:02:03,670 Suba-nivelo detalo povus esti io kiel 46 00:02:03,670 --> 00:02:07,250 kontraktanta kun pureco de uzanto enigaĵo. 47 00:02:07,250 --> 00:02:09,320 Tio estas io kion vi devus ne vere bezonas zorgi pri. 48 00:02:09,320 --> 00:02:12,370 Vi koncentriĝu sur kio via retejo atribuo estas vere pri. 49 00:02:12,370 --> 00:02:14,790 Ĝi forigas multajn boilerplate kodo. 50 00:02:14,790 --> 00:02:16,640 Ĝi estas arkitekturo por via projekto. 51 00:02:16,640 --> 00:02:18,680 >> La plej populara estus Modelo-View-Kontrolisto, 52 00:02:18,680 --> 00:02:20,380 kiun mi tuj raporti en sekundo. 53 00:02:20,380 --> 00:02:22,790 Kaj multajn fojojn tiujn kadrojn personigi aro de proceduroj, 54 00:02:22,790 --> 00:02:25,750 reguloj, kaj bonaj praktikoj por vi uzi 55 00:02:25,750 --> 00:02:28,190 por ke kiam vi adopti la ttt kadro 56 00:02:28,190 --> 00:02:30,050 vi devas skribi vian kodon en certa maniero, 57 00:02:30,050 --> 00:02:32,430 kaj ĝi estas ĝenerale interkonsentita sur aro de principoj 58 00:02:32,430 --> 00:02:34,290 de la komunumo kiu estas ĝenerale akceptita kiel 59 00:02:34,290 --> 00:02:36,230 bona maniero de skribado kodo. 60 00:02:36,230 --> 00:02:38,260 Ĝi faras vian kodon pli mantenible, pli uzeblaj, 61 00:02:38,260 --> 00:02:40,030 tiel plu kaj tiel plu. 62 00:02:40,030 --> 00:02:42,740 Kaj fine, la afero mi volas substreki pri kadrojn 63 00:02:42,740 --> 00:02:45,980 kontre bibliotekoj estas ĉi ideo pri inverto de kontrolo, kaj la afero estas jena. 64 00:02:45,980 --> 00:02:48,430 La diferenco inter biblioteko kaj ablono estas ke kun biblioteko 65 00:02:48,430 --> 00:02:51,990 vi ankoraux skribas la ĉefa programo, 66 00:02:51,990 --> 00:02:54,460 kaj vi estas speco de alvokante la biblioteko 67 00:02:54,460 --> 00:02:56,810 kaj alvokis la biblioteko fari ion por vi. 68 00:02:56,810 --> 00:02:58,180 La diferenco inter biblioteko kaj ablono 69 00:02:58,180 --> 00:03:01,620 estas, ke la kadro komenciĝas per la kontrolon, 70 00:03:01,620 --> 00:03:03,260 kaj alpreĝas via kodo: 71 00:03:03,260 --> 00:03:06,190 tial vi povas pensi pri tio kiel - tio estas kial ĝi nomiĝas ablono - 72 00:03:06,190 --> 00:03:09,700 la kadro provizas ĉi kadron kaj strukturon por via kodo, 73 00:03:09,700 --> 00:03:11,320 kaj vi plenigi la truojn, 74 00:03:11,320 --> 00:03:13,990 kaj tio fariĝos pli evidentaj en dua 75 00:03:13,990 --> 00:03:16,670 kiam vi vidas min komenci skribi kodon ene de la kunteksto de la kadro. 76 00:03:16,670 --> 00:03:19,130 Vi vidos, ke Mi estas la plenigi la truojn, 77 00:03:19,130 --> 00:03:22,450 kaj la kadro estas speco de kontroli ĉiujn movi pecojn, 78 00:03:22,450 --> 00:03:27,420 kaj mi devas meti la pecojn gxustaloke. 79 00:03:27,420 --> 00:03:29,360 >> Hodiaŭ ni babilos pri Kohana, 80 00:03:29,360 --> 00:03:31,610 kio estas unu el multaj PHP kadrojn. 81 00:03:31,610 --> 00:03:34,550 Ekzistas ttt kadrojn, kaj ekzistas en preskaŭ ĉiu sola lingvo, 82 00:03:34,550 --> 00:03:38,330 kaj mi pluki Kohana ĉar Kohana estas disputeble 83 00:03:38,330 --> 00:03:43,250 kaj ĝenerale rekonita kiel la plej facila PHP kadro repreni. 84 00:03:43,250 --> 00:03:45,940 Ĝi estas la plej malpeza. 85 00:03:45,940 --> 00:03:48,470 Estas aliaj aĵoj el tie, kiu venas kun multege pli da funkcioj, 86 00:03:48,470 --> 00:03:51,590 sed ili inklinas esti pli malfacila por repreni. 87 00:03:51,590 --> 00:03:54,920 Kaj fine, Kohana uzas la MVC arkitekturo. 88 00:03:54,920 --> 00:03:57,780 Ĝi estas malpeza sufiĉas ke ni povas laŭvorte konstrui projekton 89 00:03:57,780 --> 00:03:59,620 ĝuste ĉi tie ĝuste fronte de viaj okuloj, kaj vi povas pretty much 90 00:03:59,620 --> 00:04:02,780 sekvi kune belajn facile. 91 00:04:02,780 --> 00:04:04,420 >> Kio estas la MVC arkitekturo? 92 00:04:04,420 --> 00:04:06,540 Ĝi staras por Modelo-View-Kontrolisto, 93 00:04:06,540 --> 00:04:09,560 kaj eble, se vi pensas pri la kodo kiun vi verkis tiom multe 94 00:04:09,560 --> 00:04:11,280 por iu de via TTT evoluo psets 95 00:04:11,280 --> 00:04:14,710 vi eble povos vidi iom de tiu, sed kutime kiam oni komencas skribi 96 00:04:14,710 --> 00:04:16,500 pli kompleksa retejo apliko, 97 00:04:16,500 --> 00:04:21,209 la divido inter tiuj 3 segmentoj iĝas pli kaj pli evidenta. 98 00:04:21,209 --> 00:04:26,740 Mi elspezata la MVC tie ia kiel stako, 99 00:04:26,740 --> 00:04:29,920 kaj ofte vi aŭdas homojn paroli pri stakoj en retejo disvolviĝo, 100 00:04:29,920 --> 00:04:33,760 kaj tio estas por ilustri la ideon, ke 101 00:04:33,760 --> 00:04:37,510 ĉiu tavolo, ĉiu komponanto vere provas nur komunikas 102 00:04:37,510 --> 00:04:40,750 inter 2 aliaj komponantoj. 103 00:04:40,750 --> 00:04:44,550 Iu aliroj via retejo kiel kliento aŭ retumilo. 104 00:04:44,550 --> 00:04:48,870 Ili interagas kun via programo per la vido kodo. 105 00:04:48,870 --> 00:04:50,500 La vido kodo interagas kun la regilo. 106 00:04:50,500 --> 00:04:52,400 La regilo interagas kun la modelo, 107 00:04:52,400 --> 00:04:55,090 kaj la modelo interagas kun la SQL datumbazo. 108 00:04:55,090 --> 00:04:59,670 Kaj ne ekzistas saltetante inter se vi skribas vian kodo konvene. 109 00:04:59,670 --> 00:05:01,670 >> Kion tion fari? 110 00:05:01,670 --> 00:05:06,020 La modelo esence estas la koderon kiu traktas viajn datumojn. 111 00:05:06,020 --> 00:05:09,100 Io ajn kiu traktas via datumbazo, kun la celoj kiujn vi stoki, 112 00:05:09,100 --> 00:05:11,280 aŭ traserĉas tiuj objektoj en la datenbazo, 113 00:05:11,280 --> 00:05:13,450 Jen ĉio manipulitaj de la modelo. 114 00:05:13,450 --> 00:05:15,290 Eble vi havas celojn en via datumbazo. 115 00:05:15,290 --> 00:05:17,700 Ni tuj krei modelon devi fari kun fostoj, 116 00:05:17,700 --> 00:05:19,760 tial post eble havas iujn atributojn al ĝi. 117 00:05:19,760 --> 00:05:23,900 Vi eble havas funkciojn ĉirkaŭ stokante tiujn afiŝojn aŭ traserĉas afiŝojn 118 00:05:23,900 --> 00:05:26,270 aŭ filtri la fostoj kaj tiel plu kaj tiel plu, 119 00:05:26,270 --> 00:05:28,880 kaj tio estas la tuta kodo, kiu estas manipulita per la modelo. 120 00:05:28,880 --> 00:05:31,780 La regilo estas speco de la apliko logiko, 121 00:05:31,780 --> 00:05:37,910 kaj multe da malsamaj aferoj povas iri en la apliko logiko. 122 00:05:37,910 --> 00:05:39,790 Se vi parolas al malsama API, 123 00:05:39,790 --> 00:05:42,310 kiu povas esti kie vi estas kontraktanta kun la apliko logiko. 124 00:05:42,310 --> 00:05:47,990 Se vi provas devas alporti en la datumojn de multnombraj diversaj modeloj 125 00:05:47,990 --> 00:05:51,540 kaj devas kombini ilin iel, ke ofte povas esti manipulita per la regilo. 126 00:05:51,540 --> 00:05:53,820 Ekzemple, en Facebook, se vi amiko al iu, 127 00:05:53,820 --> 00:05:58,500 do eble tiu akto de establante ke interrilato 128 00:05:58,500 --> 00:06:00,490 povas esti farita per la regilo. 129 00:06:00,490 --> 00:06:04,350 >> Kaj finfine, la vido estas la kodo kiu estas generante kion vi reale vidi. 130 00:06:04,350 --> 00:06:07,410 Multaj fojoj mi kredas en la CS50 psets 131 00:06:07,410 --> 00:06:10,050 Ili ne vere kuraĝigas vin knaboj disigi tiuj 3 aferoj. 132 00:06:10,050 --> 00:06:12,430 Vi verŝajne havas tiun grandan, longan dosieron kie al la supro 133 00:06:12,430 --> 00:06:15,130 vi faru iuj SQL query kaj eble faros kelkajn prilaborado 134 00:06:15,130 --> 00:06:17,020 sur la datumoj vi ekstraktita el la datumbazo, 135 00:06:17,020 --> 00:06:19,370 kaj tiam vi havos vian tutan HTML ĉe la malsupro. 136 00:06:19,370 --> 00:06:22,840 Kaj vi povas trovi ke kiel oni kreas pli kaj pli da paĝoj 137 00:06:22,840 --> 00:06:25,790 ke vi tuj havos iom da kodo ripeto, kaj ankaŭ, 138 00:06:25,790 --> 00:06:29,600 la afero estas via dosiero gets vere granda kaj longa 139 00:06:29,600 --> 00:06:32,370 kaj iĝas _unwieldy_ mastrumi. 140 00:06:32,370 --> 00:06:34,500 La kialo kial MVC estas tiel bone rigardis 141 00:06:34,500 --> 00:06:36,120 estas pro kelkaj kialoj. 142 00:06:36,120 --> 00:06:38,110 La unua afero estas io nomata disiĝo de zorgojn 143 00:06:38,110 --> 00:06:40,370 tio estas la ideo ke, kiam vi havas - 144 00:06:40,370 --> 00:06:43,520 ideale 1 koderon faru 1 aferon kaj faru ĝin vere bone, 145 00:06:43,520 --> 00:06:47,210 kaj vi ne devus kombini pecoj de kodo ke fari pafas aferojn. 146 00:06:47,210 --> 00:06:49,230 Por ekzemplo, vidi kodo kaj modelo kodo, 147 00:06:49,230 --> 00:06:51,040 ili ne vere devas esti rilatigitaj. 148 00:06:51,040 --> 00:06:53,290 Ili ne devas esti en la sama dosierojn, do kiam vi povas, apartigi ilin el 149 00:06:53,290 --> 00:06:55,300 do ĝi estas facile subteni. 150 00:06:55,300 --> 00:06:57,130 >> La alia afero estas kodo reuzado. 151 00:06:57,130 --> 00:06:59,770 Vi povas trovi mem skribi la saman SQL query aŭ faranta 152 00:06:59,770 --> 00:07:03,060 simila sercxoj per kiuj eblis abstraída en 1 funkcion, 153 00:07:03,060 --> 00:07:05,440 kaj tio estas la ideo malantaŭ modeloj kaj regiloj, 154 00:07:05,440 --> 00:07:09,690 havi ĝin en apartan funkcion, kiun vi povas reuzi en malsamaj lokoj en via projekto. 155 00:07:09,690 --> 00:07:12,420 Kaj fine, tio ligitan al sekigita via kodo: 156 00:07:12,420 --> 00:07:14,700 aŭ ne ripetante mem, ne ripetu mem. 157 00:07:14,700 --> 00:07:18,090 Tio estas tre komprenebla en evoluo. 158 00:07:18,090 --> 00:07:20,110 Kiam ajn vi povas, vi ne volas ripeti mem, ĉar se vi ripetu mem, 159 00:07:20,760 --> 00:07:23,400  ĝi estas multe pli kosta por subteni. 160 00:07:23,400 --> 00:07:26,040 Se vi volas ŝanĝi la 1 afero, vi devos ŝanĝi ĝin ĉie, 161 00:07:26,040 --> 00:07:30,230 kaj tio kondukas al cimojn, kaj ĝi estas horora. 162 00:07:30,230 --> 00:07:32,010 >> Bone. 163 00:07:32,010 --> 00:07:37,270 Demandojn tiom multe pri Kohana je ĉiuj? 164 00:07:37,270 --> 00:07:39,200 Granda. 165 00:07:39,200 --> 00:07:42,300 Nun ni iras al plonĝi en la viva kodigo kunsido, 166 00:07:42,300 --> 00:07:48,050 kaj espereble ĉio iras bone. 167 00:07:57,200 --> 00:08:00,050 Mi estas iranta al esence konstruu tiun retejon 168 00:08:00,050 --> 00:08:03,910 sur unu el miaj foraj serviloj, kaj aliflanken vi uloj povas ankaŭ 169 00:08:03,910 --> 00:08:06,310 vidu la paĝaron kaj aliri la retejon, 170 00:08:06,310 --> 00:08:10,990 kaj ankaŭ la medio estas pli bone agordita ol mia fora maŝino, 171 00:08:10,990 --> 00:08:14,580 ĉar ĝi estas kurante Linukso anstataux OS X. 172 00:08:14,580 --> 00:08:16,260 Ni laŭvorte tuj komenci. 173 00:08:16,260 --> 00:08:18,110 KohanaFramework.org. 174 00:08:18,110 --> 00:08:21,350 Mi iras por elŝuti la kodo de la retejo. 175 00:08:21,350 --> 00:08:24,610 Mi tuj kopii la ligilon adreson, 176 00:08:24,610 --> 00:08:29,770 iri al mia servilo, elŝuti ĝin, 177 00:08:29,770 --> 00:08:33,000 kaj mi iros por ĉerpi ĝin. 178 00:08:38,330 --> 00:08:45,710 >> [Studenta] Kio estas la plej granda vi povas fari la tekston? 179 00:08:45,710 --> 00:08:47,330 [Brandon Liu] Ĉu pli bone? 180 00:08:47,330 --> 00:08:50,070 [Studenta] Is that doable? >> [Brandon Liu] Jes, tio estas bone. 181 00:08:50,070 --> 00:08:54,500 Mi elŝutis ZIP-dosiero kaj Unzipped ke en dosierujo nomita Kohana, 182 00:08:54,500 --> 00:08:58,820 kaj ni iras al renomi ke CS50-Kohana, 183 00:08:58,820 --> 00:09:01,140 kaj ni volis eniri; 184 00:09:01,140 --> 00:09:03,610 Awesome. 185 00:09:03,610 --> 00:09:06,870 Ĉi tie vi vidas multajn malsamajn dosierojn. 186 00:09:06,870 --> 00:09:10,140 La plejparto de vi povas ignori - we're ne tuj iros tra ĉiu sola dosiero kiu estas en ĉi tien 187 00:09:10,140 --> 00:09:13,130 pro nia tempo devigoj, 188 00:09:13,130 --> 00:09:16,310 sed ĝenerale, kiam vi instalas Kohana, la unua afero kiun vi faros 189 00:09:16,310 --> 00:09:23,210 Estas vi iru al la dosierujo, 190 00:09:23,210 --> 00:09:26,050 kaj vi esence faru iun medion testoj kaj whatnot 191 00:09:26,050 --> 00:09:28,640 certigi vian medio adekvate starigis kuri Kohana 192 00:09:28,640 --> 00:09:31,450 kaj certigi, ke ĉio estas en ordo. 193 00:09:31,450 --> 00:09:35,510 Vi povas vidi pli aferoj pasintaj, sed ĝenerale vi ĉiam kuri en tiun 1 problemo 194 00:09:35,510 --> 00:09:38,180 kie plendas, ke kelkaj dosierujo estas neskribebla, 195 00:09:38,180 --> 00:09:40,410 kaj tio estas pro iu permesojn. 196 00:09:40,410 --> 00:09:43,080 Mi ne scias, kiom multe vi infanoj lernis pri dosier-permesojn en CS50, 197 00:09:43,080 --> 00:09:47,920 sed se vi faros ttt evoluo, vi tuj kuri en tiun temon multe. 198 00:09:47,920 --> 00:09:58,340 Mi tuj faros la skribebla 199 00:09:58,340 --> 00:10:03,390 kaj mi kredas ke mi ankaŭ devas - tie ni iru. 200 00:10:03,390 --> 00:10:07,040 >> Bone, do nun povas vidi ĉiu pasis, 201 00:10:07,040 --> 00:10:10,000 kaj nun diros al vi, por renomi la dosieron. 202 00:10:10,000 --> 00:10:15,630 Mi iras al kopii la dosieron al installed.php, 203 00:10:15,630 --> 00:10:19,610 kaj nun, se mi refreŝigi, 204 00:10:19,610 --> 00:10:22,810 tio donas al mi iun eraron, kaj tiu estas kie la sencimigo eniros 205 00:10:22,810 --> 00:10:25,610 Ĉi tie vi povas vidi kio reale okazos. 206 00:10:25,610 --> 00:10:28,460 La afero estas, implicite, Kohana supozas ke 207 00:10:28,460 --> 00:10:31,480 via projekto estas je la radika dosierujo de via havaĵo, 208 00:10:31,480 --> 00:10:35,920 Do estas atendante vin esti ĉe demo.brandonkliu.com. 209 00:10:35,920 --> 00:10:37,540 Ni devas diri al ŝi, ke estas reale en subdosierujon. 210 00:10:37,540 --> 00:10:39,820 Ĝi estas en subdosierujon nomata CS50 Kohana. 211 00:10:39,820 --> 00:10:42,640 La afero estas, ĝi estas malinterpretando CS50-Kohana 212 00:10:42,640 --> 00:10:45,680 kiel io alia, kion mi klarigos al vi en sekundo. 213 00:10:45,680 --> 00:10:49,910 Sed mi devas diri al vi ke estas io kion estas atendi. 214 00:10:49,910 --> 00:10:53,700 Kion ni faros estas ni tuj iros al tiu dosierujo nomita bootstrap.php, 215 00:10:53,700 --> 00:10:59,260 kiu estas la agordo dosierujo kie multaj malsamaj aferoj starigis. 216 00:10:59,260 --> 00:11:01,570 Mi malfermu ke ĝis. 217 00:11:01,570 --> 00:11:09,790 Tiam eble unu el la unuaj aferoj mi tion faros estas ŝanĝi la horzono. 218 00:11:09,790 --> 00:11:13,910 >> Kaj tiam ni vidos. 219 00:11:13,910 --> 00:11:15,180 Aha! Ĝuste ĉi tie. 220 00:11:15,180 --> 00:11:18,690 Ekzistas aro da malsamaj agordo dirojn en ĉi tie, 221 00:11:18,690 --> 00:11:21,700 sed la unu mi serĉas estas tiu afero nomata bazon URL: 222 00:11:21,700 --> 00:11:24,570 kaj defaŭlte mi enretigos ĝin starigis al Kohana, 223 00:11:24,570 --> 00:11:29,020 sed mi tuj ŝanĝu tion al CS50-Kohana, 224 00:11:29,020 --> 00:11:32,880 kaj mi kredas ke devus ripari ĝin. 225 00:11:32,880 --> 00:11:34,150 Jes, granda. 226 00:11:34,150 --> 00:11:39,530 Defaŭlte, por vidi, ke ĝi funkcias, ĝi diras, "Saluton Mondo." 227 00:11:39,530 --> 00:11:42,930 Kien kiuj venas de? Kiel ni atingos Saluton Mondo? 228 00:11:42,930 --> 00:11:47,640 Kien precize estas la kodo kiu fakte skribis tion? 229 00:11:47,640 --> 00:11:50,240 Por kompreni tion, mi devos enkonduki tiun koncepton nomata routing. 230 00:11:50,240 --> 00:11:52,590 Pli malpli ĉiuj TTT kadroj havas la koncepto nomata routing, 231 00:11:52,590 --> 00:11:57,230 kiu estas la peco de la softvaro kiu mapas certaj URL- 232 00:11:57,230 --> 00:12:01,550 al certa koderon ene viajn kadro. 233 00:12:01,550 --> 00:12:07,510 Ekzemple, se vi havas iujn URL kaj vi iros al iu retadreso kiel foo.com / blog / ĉiuj 234 00:12:07,510 --> 00:12:11,170 tiam kion la kadro tuj fari - aŭ almenaŭ kion Kohana tuj fari - 235 00:12:11,170 --> 00:12:15,540 Estas ĝi tuj trovos klason nomita regilo blogo, 236 00:12:15,540 --> 00:12:18,720 kaj gxi tuj kuri al la funkcio nomata agado cxiuj. 237 00:12:18,720 --> 00:12:20,160 Mi scias, mi parolas pri klaso kaj funkcioj, 238 00:12:20,160 --> 00:12:23,860 kaj mi scias, vi uloj ne kovris klasoj kaj funkcioj 239 00:12:23,860 --> 00:12:26,470 en CS50 ankoraŭ, sed por nun, 240 00:12:26,470 --> 00:12:29,800 vi povas pensi pri klasoj kiel simplan grupon de funkcioj, 241 00:12:29,800 --> 00:12:32,900 manieron de kolektante funkcioj kune. 242 00:12:32,900 --> 00:12:37,690 Tio estas vere ĉiuj vi devas scii. 243 00:12:37,690 --> 00:12:43,120 >> Nu, se ni rigardas nian dosierujon strukturo, 244 00:12:43,120 --> 00:12:47,110 interne de la apliko dosierujo estas alia dosierujo nomita klasoj, 245 00:12:47,110 --> 00:12:49,200 kaj la aliaj dosierujoj nomataj Controller kaj modelo. 246 00:12:49,200 --> 00:12:52,530 Se vi rigardi en la Controller dosierujo, 247 00:12:52,530 --> 00:12:56,330 Ni vidas, ke ekzistas dosiero nomata Welcome, 248 00:12:56,330 --> 00:13:00,370 kaj vi povas vidi ĉi tie estas klaso nomata Controller Bonvenon, 249 00:13:00,370 --> 00:13:02,340 kaj tie estas funkcio nomata Ago Index, 250 00:13:02,340 --> 00:13:06,360 kaj kion ŝi faras estas ĝi elmontras la korpo de via respondo al Saluton Mondo. 251 00:13:06,360 --> 00:13:08,730 Tie estas kie la kodo estas skribita. 252 00:13:08,730 --> 00:13:11,610 La alia demando estas, nu, mi ne iris al 253 00:13:11,610 --> 00:13:13,680 bla, bla, bla, / bonvenon / index. 254 00:13:13,680 --> 00:13:16,250 Kiel mi finas ĉi tie? 255 00:13:16,250 --> 00:13:20,410 Nu, tio estas simple pro 256 00:13:20,410 --> 00:13:22,410 tie ĉe la fundo de nia bootstrap dosieron 257 00:13:22,410 --> 00:13:24,550 kie ni metis niajn vojojn 258 00:13:24,550 --> 00:13:26,570 vi povas vidi, ke ili metis iujn defaŭltaĵoj por vi. 259 00:13:26,570 --> 00:13:28,990 La defaŭlta regilo estas bonvena. La defaŭlta ago estas Indekso. 260 00:13:28,990 --> 00:13:31,600 Tial kiam ni neniel tie aŭtomate iris al la Bonvenon adaptilo 261 00:13:31,600 --> 00:13:33,940 kaj la indico Agado. 262 00:13:33,940 --> 00:13:37,460 >> Ĉio sencon ĝis nun? 263 00:13:37,460 --> 00:13:40,850 Nun, vi povas fari pli ol nur iri al Controller 264 00:13:40,850 --> 00:13:43,670 kaj specifan agon. 265 00:13:43,670 --> 00:13:48,480 Vi ankaux povas pasi en parametroj por la regilo. 266 00:13:48,480 --> 00:13:56,390 Nur kiel ekzemplo, 267 00:13:56,390 --> 00:14:04,070 Mi tuj aldonos alian agon al ĉi adaptilo por montri al vi. 268 00:14:04,070 --> 00:14:09,130 Ni nomas tiun agon Eĥon, ĉar ĝi tuj rakontos al vi, kion vi donas al ŝi, 269 00:14:09,130 --> 00:14:17,510 kaj tial mi esence tuj ekpreni 270 00:14:17,510 --> 00:14:20,960 parametro kiu tuj estos senditaj pere de mi al la routing programo, 271 00:14:20,960 --> 00:14:24,440 kaj kiel vi povas vidi ĉi tie, 272 00:14:24,440 --> 00:14:28,440 tiun linion ĝuste ĉi tie, vi povas vidi, ke 273 00:14:28,440 --> 00:14:31,270 tio esence signifas ke vi havas komandon, kaj vi havas /, 274 00:14:31,270 --> 00:14:33,480 kaj vi havas agadon, kaj vi havas alian /, 275 00:14:33,480 --> 00:14:39,140 kaj tiu tuj estos parametroj, kaj ĉar ni havas ĉi nomo ID 276 00:14:39,140 --> 00:14:42,450 ene angulajn krampojn, tio signifas ke ni enoficigante ĉi parametro ID. 277 00:14:42,450 --> 00:14:45,490 Poste en mia regilo kodo, se mi volas ekpreni malliberejo de tiu parametro, 278 00:14:45,490 --> 00:14:51,790 Mi povas uzi la kodon mi skribis, trovu la parametro nomata ID. 279 00:14:51,790 --> 00:14:59,290 Tio estas kion mi faris ĉi tie, kaj mi tuj revenos kaj diros: 280 00:14:59,290 --> 00:15:07,090 "Vi diris" kiu. 281 00:15:07,090 --> 00:15:10,760 Kaj tial nun, se mi iras al nia retejo, 282 00:15:10,760 --> 00:15:19,550 Mi iras al cs50-kohana/welcome/echo/Helloooo-- 283 00:15:19,550 --> 00:15:21,420 oh, tio estas vera. 284 00:15:21,420 --> 00:15:23,930 Tie estas 1 paŝo mi preterlasis. 285 00:15:23,930 --> 00:15:27,020 Ĉi tiu estas parto de la viva kodigo ideo. 286 00:15:27,020 --> 00:15:36,100 >> Jen 1 afero. Ni vidu. 287 00:15:36,100 --> 00:15:38,870 Do normale defaŭlte kun amaso de tiuj ttt aplikoj 288 00:15:38,870 --> 00:15:42,820 Vi devas inkluzivi ĉi index.php afero en via URL 289 00:15:42,820 --> 00:15:46,410 ĉar la ideo estas index.php estas speco de la enirpunkto 290 00:15:46,410 --> 00:15:48,250 de via kandidatiĝo, sed kompreneble, 291 00:15:48,250 --> 00:15:50,110 tio estas ia ĝena havi. 292 00:15:50,110 --> 00:15:53,790 Vi ne volas havi index.php aperi en via URL 293 00:15:53,790 --> 00:15:56,080 kaj preskaux cxiun ttt kadro el la skatolo 294 00:15:56,080 --> 00:15:58,440 havas ĉi index.php problemo, 295 00:15:58,440 --> 00:16:03,370 kaj tial oni devas preni kelkajn mezurojn por povi forigi tion. 296 00:16:03,370 --> 00:16:07,540 Kaj tiel en tiu kazo, 297 00:16:07,540 --> 00:16:11,450 kion ni faros estas ni tuj uzi dosieron nomata. htaccess, 298 00:16:11,450 --> 00:16:13,900 kaj ĉi tiu estas iu kiu estas specifa al la Apache ttt-servilo, 299 00:16:13,900 --> 00:16:16,290 kaj ĝi povas fari tion kiel reverki URLoj 300 00:16:16,290 --> 00:16:19,350 kaj redirekti URLs kaj tiel plu kaj tiel plu, 301 00:16:19,350 --> 00:16:24,280 kaj Kohana estas bela sufiĉas por havigi ŝablono. htaccess dosieron kiun ni povas uzi. 302 00:16:24,280 --> 00:16:28,300 >> Kiel vi povas vidi, ekzistas dosiero tie nomata example.htaccess, 303 00:16:28,300 --> 00:16:33,410 kaj ni tuj kopii ke. htaccess. 304 00:16:33,410 --> 00:16:36,950 Mi tuj malfermu ĉi kaj redakti gxin, 305 00:16:36,950 --> 00:16:40,840 kaj esence ĝi faras multajn malsamajn aferojn. 306 00:16:40,840 --> 00:16:45,320 La ŝlosilo linio vi eble volas rigardi pravas tie. 307 00:16:45,320 --> 00:16:49,840 La ideo estas, ke tio starigas regulon kiu diras, 308 00:16:49,840 --> 00:16:56,400 "Konsentite, kion ajn vi tajpas en, prepend index.php al tio." 309 00:16:56,400 --> 00:16:58,710 Vi povas vidi tion. 310 00:16:58,710 --> 00:17:00,370 La. * Signifas ion ajn, kongruas ion, 311 00:17:00,370 --> 00:17:03,300 kaj tiam la dua parto estas index.php / $ 0, 312 00:17:03,300 --> 00:17:07,410 kaj $ 0 referencas al kiom estis parigitaj antaŭe. 313 00:17:07,410 --> 00:17:09,500 Ĉu tio havas sencon? 314 00:17:09,500 --> 00:17:12,190 Sed la vere klavo aferon mi volas ŝanĝi estas ŝanĝi ĉi reverki bazo, 315 00:17:12,190 --> 00:17:14,300 kiu estas la URL-bazo. 316 00:17:14,300 --> 00:17:17,780 Ĝi ia supozas kie vi laboras el. 317 00:17:17,780 --> 00:17:22,560 Mi tuj aldonos CS50 Kohana al tiu, 318 00:17:22,560 --> 00:17:26,530 kaj tiu vojo nun se mi forigu la index.php, 319 00:17:26,530 --> 00:17:32,110 gxi devus funkcii, kaj mi tuj aldonu iuj nombroj 320 00:17:32,110 --> 00:17:36,380 montri al vi ke ĝi ja faris laboron. 321 00:17:36,380 --> 00:17:38,130 Sonas bone. 322 00:17:38,130 --> 00:17:40,260 >> Iu demandoj ĝis nun? 323 00:17:40,260 --> 00:17:42,300 [Studenta] Kiel ĝi scias fari la 123? 324 00:17:42,300 --> 00:17:44,120 Ĉu tio estas argumento? 325 00:17:44,120 --> 00:17:46,560 Ekzakte. Vi povas pensi pri ĝi nur kiel argumenton. 326 00:17:46,560 --> 00:17:52,410 Sed la stranga afero, tamen, estas ke la vojo Kohana faras 327 00:17:52,410 --> 00:17:54,910 estas ke ili ne faru precize kiel argumenton. 328 00:17:54,910 --> 00:17:56,930 Vi devos ekpreni ĝin kiel ĉi tio. 329 00:17:56,930 --> 00:18:01,030 Vi devos ekpreni la peto objekto kaj demandu pri la parametro kiu estas nomata ID, 330 00:18:01,030 --> 00:18:03,240 kaj tiu nomo ID devenas ke bootstrap dosieron 331 00:18:03,240 --> 00:18:06,990 kiun mi montris pli frue, kaj la nomo ID estis en tiuj angulajn krampojn, 332 00:18:06,990 --> 00:18:11,580 kaj tiel estas kiel vi grab tiuj parametroj. 333 00:18:11,580 --> 00:18:14,010 Awesome. 334 00:18:14,010 --> 00:18:17,550 Ajna alia demandojn? 335 00:18:17,550 --> 00:18:20,500 Kiel mi diris, regiloj, ili manipulas apliko logiko, 336 00:18:20,500 --> 00:18:22,980 do tio estas 1 petskribon, kie vi povas vidi that's - 337 00:18:22,980 --> 00:18:24,830 ĝi estas tre baza, sed estas ankoraŭ apliko logiko, 338 00:18:24,830 --> 00:18:27,980 la ideo de kaptante la parametron kaj kreante novan ĉenon 339 00:18:27,980 --> 00:18:31,920 kiu diras, "Vi diris, bla," kaj tiam kracxi kiuj revenas al vi. 340 00:18:31,920 --> 00:18:34,030 Kaj ĝenerale, kion vi faras al vi krei malsamaj regiloj. 341 00:18:34,030 --> 00:18:36,450 Vi kreas apartan regiloj por malsamaj partoj de via retejo. 342 00:18:36,450 --> 00:18:38,160 >> Hodiaŭ ni tuj faros tre simpla retejo, 343 00:18:38,160 --> 00:18:40,420 kaj gxi tuj estos tre baza blogo. 344 00:18:40,420 --> 00:18:43,780 Ni tuj fari novan regilo nur por la postenoj en blogo. 345 00:18:43,780 --> 00:18:47,060 Sed tiam, se mi estus same aldoni komentojn al la blogo de post, 346 00:18:47,060 --> 00:18:50,140 tiam mi versxajne volas fari novan adaptilo por tiuj komentoj. 347 00:18:50,140 --> 00:18:53,380 Se mi volis aldoni uzantojn, mi probable aldonu novan adaptilo por tiuj uzantoj, 348 00:18:53,380 --> 00:18:57,000 kaj ĝenerale, la ideo estas ke ĉiam vi havas novan modelon, 349 00:18:57,000 --> 00:18:59,630 nova datumo celo kiun vi pritraktas, 350 00:18:59,630 --> 00:19:02,970 vi havas libera unulitan adaptilo por tiu datumo objekto. 351 00:19:02,970 --> 00:19:04,370 Hodiaŭ ni nur irante labori kun 1 datumoj celon, 352 00:19:04,370 --> 00:19:06,250 kaj tiu tuj estos afiŝojn, 353 00:19:06,250 --> 00:19:08,710 kaj ankaŭ vi povas pensi pri datumoj celoj kiel la respondaj al tabloj. 354 00:19:08,710 --> 00:19:12,160 Ĝenerale ĉiu tablo respondas al 1 tipo de datumoj celon, 355 00:19:12,160 --> 00:19:15,160 tial la fosto tablo havos 1 diskuto modelo, 356 00:19:15,160 --> 00:19:18,230 kiu havos 1 diskuto regilo responda al tiu, 357 00:19:18,230 --> 00:19:22,190 kaj la saman por komentoj, la sama por uzantoj, kaj tiel plu kaj tiel plu. 358 00:19:22,190 --> 00:19:24,070 Kaj tio estas ĝenerala regulo de thumb. 359 00:19:24,070 --> 00:19:27,460 Tie tuj estos specialaj kazoj, kie vi povas malsami de tio, 360 00:19:27,460 --> 00:19:29,300 sed 90% de la tempo, kiam estas kion vi tuj estos faranta, 361 00:19:29,300 --> 00:19:32,810 kaj mi montros al vi, tio estas kion ni tuj faros hodiaŭ. 362 00:19:32,810 --> 00:19:35,490 1 pli koncepton antaux ni plonĝi reen en la kodo, 363 00:19:35,490 --> 00:19:37,710 tiun ideon de objekto rilata surĵeto. 364 00:19:37,710 --> 00:19:41,200 >> You guys jam faris ttt evoluo pset, 365 00:19:41,200 --> 00:19:43,820 kaj vi vidis, ke vi faru SQL query: 366 00:19:43,820 --> 00:19:46,510 kaj kion ajn li revenas al vi, estas vicoj. 367 00:19:46,510 --> 00:19:50,040 Vi ricevas tiujn vicojn, kaj vi indekso ilin per iu nomo, 368 00:19:50,040 --> 00:19:55,480 la nomo de la kolumno kaj la tablo 369 00:19:55,480 --> 00:19:57,630 kaj tiel estas kiel vi laboras kun ĝi, 370 00:19:57,630 --> 00:19:59,290 kaj tio povas esti iom ĝena. 371 00:19:59,290 --> 00:20:01,810 Sed krome, se vi havas rilatojn ene de via datenbazo, 372 00:20:01,810 --> 00:20:05,280 kiel ekzemple se mi havas komentojn kaj afiŝojn, 373 00:20:05,280 --> 00:20:11,240 tiam eble mi volas ekpreni la patro post de komenton. 374 00:20:11,240 --> 00:20:14,350 Se mi uzas nur vicoj en SQL, tiam ĉio mi povas akiri estas la ID 375 00:20:14,350 --> 00:20:19,310 de la patro fosto kaj ne la realan post si. 376 00:20:19,310 --> 00:20:21,680 Sed kiam ni estas kodigo, kion ni vere volas estas reale ekpreni 377 00:20:21,680 --> 00:20:23,550  la patro sendi mem kelkfoje. 378 00:20:23,550 --> 00:20:25,730 Kio objekto rilata surĵeto faras estas 379 00:20:25,730 --> 00:20:29,480 Ĝi prenas la rezultoj de la datumbazo informpeto 380 00:20:29,480 --> 00:20:32,420 kaj metas ĝin en celoj por vi, kiuj estas multe pli agrabla por labori kun 381 00:20:32,420 --> 00:20:34,770 ol ebenaĵo arrays kaj vicoj. 382 00:20:34,770 --> 00:20:37,550 >> Ekzemple, nun kiam mi havas komenton eble, 383 00:20:37,550 --> 00:20:40,900 kaj mi volas ekpreni lia patro post, 384 00:20:40,900 --> 00:20:43,440 kaj mi eble komenti sago post, 385 00:20:43,440 --> 00:20:45,230 tiam gxi efektive donu al mi la fosto objekto 386 00:20:45,230 --> 00:20:47,940 responda al la reala patro post, ne nur kelkaj ID, 387 00:20:47,940 --> 00:20:52,210 kiun mi devus alie devas uzi kaj fari alian SQL query ekpreni la fosto, 388 00:20:52,210 --> 00:20:57,430 kio estas maloportuna kaj nenecesa. 389 00:20:57,430 --> 00:21:01,840 Kaj krome, per surĵeto ĉiuj tiuj datumoj vicoj en celoj, 390 00:21:01,840 --> 00:21:03,760 vi povas ankaŭ alfiksi pli funkcioj al celoj, 391 00:21:03,760 --> 00:21:09,700 tiel ekzemple, mi parolis pri kiel klasoj estas esence grupoj de funkcioj. 392 00:21:09,700 --> 00:21:11,620 Vi povas pensi pri tio kiel tio. 393 00:21:11,620 --> 00:21:15,290 Ekzemple, eble mi havos afiŝo celon, 394 00:21:15,290 --> 00:21:17,830 kaj eble mi ŝatus havi ian funkcion alfiksis al ĝi 395 00:21:17,830 --> 00:21:20,300 kiu esence diras al mi gxi estis lastatempe eldonita? 396 00:21:20,300 --> 00:21:23,570 Gxi estis eldonita en la lasta semajno, vera aŭ falsa? 397 00:21:23,570 --> 00:21:27,320 Kaj tio estas funkcio mi povas alfiksi sur tiu celo, 398 00:21:27,320 --> 00:21:31,300 kaj ĝi estas vere oportune havi ĝin en la sama loko, 399 00:21:31,300 --> 00:21:33,820 kaj tie estas gastiganto de malsamaj funkcioj povas krei 400 00:21:33,820 --> 00:21:37,990 por ĉi tiuj celoj, kaj ĝi estas vere bela povi aligu ĝin al klaso, 401 00:21:37,990 --> 00:21:41,700 al objekto, dum, se vi nur devis vicoj venas el via datumbazo, 402 00:21:41,700 --> 00:21:43,790 tiam vi ne povas vere ligi ajnan funcionalidad al tio. 403 00:21:43,790 --> 00:21:47,850 Ĝi estas laŭvorte nur datumojn. 404 00:21:47,850 --> 00:21:50,550 Demandojn pri kiuj ĉe ĉiu? 405 00:21:50,550 --> 00:21:52,710 ORMs estas tre komuna retejo disvolviĝo, 406 00:21:52,710 --> 00:21:56,330 kaj estas multaj diversaj tipoj de ORMs, 407 00:21:56,330 --> 00:21:58,450 kaj Kohana havas sian propran ORM. 408 00:21:58,450 --> 00:22:05,050 Ĝi estas tre baza, sed vi ricevos guston de tio, kion ĝi aspektas. 409 00:22:05,050 --> 00:22:08,780 >> Ni krei modelon por nia blogo afiŝojn, 410 00:22:08,780 --> 00:22:12,350 kaj la unua afero, kiun ni evidente bezonas fari estas krei veran tablo 411 00:22:12,350 --> 00:22:16,680 ene nia datumbazo por fakte stoki niaj datumoj por tiuj postenoj. 412 00:22:16,680 --> 00:22:19,260 La unua afero Mi iras fari estas iri al phpMyAdmin. 413 00:22:19,260 --> 00:22:21,410 Ĉu vi uloj uzis phpMyAdmin antaŭe? 414 00:22:21,410 --> 00:22:23,400 Konsentite, awesome, do you guys jam scias kio tio estas, 415 00:22:23,400 --> 00:22:32,200 kaj mi tuj krei novajn tablo nomata Kohana Afiŝoj, 416 00:22:32,200 --> 00:22:37,820 kaj gxi tuj estos vere simpla. 417 00:22:37,820 --> 00:22:40,190 Mi devos ensaluti re-ensalutu 418 00:23:02,620 --> 00:23:04,640 Ĉiuj ni tuj faros hodiaŭ estas havi aŭtoro kaj korpo, 419 00:23:04,640 --> 00:23:11,930 nur teni ĝin simpla. 420 00:23:11,930 --> 00:23:15,620 Mi iras al krei tiun tablon, 421 00:23:15,620 --> 00:23:19,620 kaj nun ni nur devas tablo reprezentis nian afiŝojn 422 00:23:19,620 --> 00:23:23,370 kun 2 kampoj por nia aŭtoro kaj nia korpo. 423 00:23:23,370 --> 00:23:26,290 La alia afero mi faros nun estas 424 00:23:26,290 --> 00:23:29,820 konfiguri mian ttt apliko do ĝi scipovas konekti al la datumbazo, 425 00:23:29,820 --> 00:23:31,950 kaj ĉi, denove, estas io kion vi devos fari kun ĉiuj aplikoj retejo. 426 00:23:31,950 --> 00:23:34,790 Vi devas diri al ĝi la nomon de uzanto kaj pasvorto 427 00:23:34,790 --> 00:23:36,990 kaj la nomo de la datumbazo kaj tiel plu kaj tiel plu 428 00:23:36,990 --> 00:23:40,000 elkompreni kiel reale konekti al via datumbazo. 429 00:23:40,000 --> 00:23:58,710 >> En Kohana, ni havas ion nomita datumbazo modulon, 430 00:23:58,710 --> 00:24:02,690 kaj en la agordo dosierujo ni havas ĉi dosierujo nomita Datumbazo, 431 00:24:02,690 --> 00:24:07,330 kaj kiel vi povas vidi, estas aro da agordojn vi devas agordi tien 432 00:24:07,330 --> 00:24:09,860 sciigi kio estas la nomo de uzanto kaj pasvorto 433 00:24:09,860 --> 00:24:13,110 cxar la datumbaza do mi efektive povas konekti al ĝi. 434 00:24:13,110 --> 00:24:15,010 Kaj ĉar mi ne volas ke vi infanoj por fakte scias 435 00:24:15,010 --> 00:24:17,190 la nomo de uzanto kaj pasvorto de mia datenbazo, 436 00:24:17,190 --> 00:24:23,840 Mi havas dosieron, kie mi jam starigis la tuton, kaj mi tuj kopiu kaj algluu ĝin super. 437 00:24:33,080 --> 00:24:36,870 Awesome. 438 00:24:36,870 --> 00:24:39,880 Okay. Mi kredas ke tio estas ĉiuj la agordon mi bezonas fari, 439 00:24:39,880 --> 00:24:41,070 sed ni vidos. 440 00:24:41,070 --> 00:24:43,720 Ni daŭre laboras en ĝin, kaj se io kraŝas, 441 00:24:43,720 --> 00:24:47,490 tiam ni devos ripari ĝin. 442 00:24:47,490 --> 00:24:51,830 Nun kio mi tuj faros estas mi iros por krei novan regilo. 443 00:24:51,830 --> 00:24:53,190 Aŭ fakte, pardonon. 444 00:24:53,190 --> 00:24:55,080 Unue mi devas krei novan modelon. 445 00:24:55,080 --> 00:25:01,620 Mi kreos novan modelon nomata Post.php, 446 00:25:01,620 --> 00:25:12,440 kaj tio, kion ni faros estas ni iras, por voki lin klaso Model_Post. 447 00:25:12,440 --> 00:25:15,390 Get iuj sintakso reliefigante plu, 448 00:25:15,390 --> 00:25:19,750 kaj tiel, kiam mi diras, "etendas ORM," tio estas esence 449 00:25:19,750 --> 00:25:21,210 iuj pli objekteman programadon, 450 00:25:21,210 --> 00:25:23,340 kiu bedaŭrinde vi uloj ne lernis en CS50 tamen, 451 00:25:23,340 --> 00:25:25,290 sed ĝi estas sufiĉe facila por repreni. 452 00:25:25,290 --> 00:25:27,950 Ĝi donas al mi la tutan ĉi ekstra funcionalidad kiuj venas en ĉi ORM pako, 453 00:25:27,950 --> 00:25:31,120 kaj do mi ricevos multajn ekstrajn funkciojn kaj whatnot senpage, 454 00:25:31,120 --> 00:25:34,810 kion vi vidos iom da en sekundo. 455 00:25:34,810 --> 00:25:37,670 >> Ĝuste nun fakte ĉio mi devas fari estas krei ĉi klaso. 456 00:25:37,670 --> 00:25:39,160 Mi eĉ ne bezonas fari iu ajn funkcio aŭ ion ajn, 457 00:25:39,160 --> 00:25:41,770 sed mi kreis klaso kiu reprezentas la tablo, 458 00:25:41,770 --> 00:25:44,140 kaj cxar Mi etendis ĉi ORM klaso, 459 00:25:44,140 --> 00:25:51,080 Mi ricevos multajn aferojn por liberaj, tiel cxar nun vi ne devas agordi ion pli supren. 460 00:25:51,080 --> 00:25:53,530 Kaj nun kion mi tuj faros estas Mi tuj krei novajn adaptilo, 461 00:25:53,530 --> 00:25:58,480 kiun mi tuj nomumi blog.php, 462 00:25:58,480 --> 00:26:04,350 kaj mi tuj kopii super la Bonvenon adaptilo 463 00:26:04,350 --> 00:26:11,950 tial mi ne devas Retajpu kelkaj havajxoj, 464 00:26:11,950 --> 00:26:20,720 kaj nun mi devas renomi ĉi. 465 00:26:20,720 --> 00:26:24,710 Nu, kion mi faros por testi certigi ĉio laboras ekstere, 466 00:26:24,710 --> 00:26:27,820 Mi tuj havigu la unua post de mia datumbazo 467 00:26:27,820 --> 00:26:32,680 kaj presi la korpon de la afiŝo en la ekrano. 468 00:26:32,680 --> 00:26:37,920 Por fari tion, kion mi faros unue mi iros por savi la afiŝojn 469 00:26:37,920 --> 00:26:48,770 al variablo tia, kion ni faros estas - 470 00:26:48,770 --> 00:26:52,090 en Kohana kion vi faras por ekpreni la fosto objekto 471 00:26:52,090 --> 00:26:55,380 ĝi estas speco de peza, sed vi devos fari tion nomis ORM :: fabriko, 472 00:26:55,380 --> 00:26:57,750 kaj tiam vi pasos en la nomo de la modelo vi volas, 473 00:26:57,750 --> 00:27:00,490 kaj gxi redonas la ORM objekton kiu reprezentas tiun modelon. 474 00:27:00,490 --> 00:27:04,860 Kaj tiam, kiel mi diris, kiam ni etendas la ORM celon, 475 00:27:04,860 --> 00:27:07,320 ni preni cxiujn tiujn metodojn por liberaj, tiel ekzemple, 476 00:27:07,320 --> 00:27:09,200 ni atingos ĉi nova funkcio nomita "trovi ĉiujn," 477 00:27:09,200 --> 00:27:12,160 kiu aŭtomate revenas ĉiu sola fosto en la datenbazo, 478 00:27:12,160 --> 00:27:14,850 kio estas sufiĉe oportuna. 479 00:27:14,850 --> 00:27:17,480 >> Kaj nun en la korpo, mi tuj revenos 480 00:27:17,480 --> 00:27:24,860 la unuan postenon kaj reveni lian korpon. 481 00:27:24,860 --> 00:27:27,930 Kaj kompreneble, mi devas krei fosto, 482 00:27:27,930 --> 00:27:31,880 do ni enmetu novan postenon. 483 00:27:31,880 --> 00:27:37,870 Mi diros, "Brandon, mia unua afiŝo." 484 00:27:37,870 --> 00:27:40,010 Awesome. 485 00:27:40,010 --> 00:27:45,910 Kaj nun ni tuj iru al blogoj 486 00:27:45,910 --> 00:27:50,960 kaj se ĉiuj bone funkcias - oh, tio estas iu alia mutaj dosieron permeson afero denove. 487 00:27:50,960 --> 00:27:56,090 Tenu la 1 sekundo. Ĝi estas speco de absurda. 488 00:28:06,700 --> 00:28:08,490 Tie ni iru. Okay. 489 00:28:08,490 --> 00:28:10,040 Mi fiksis ke permeso problemon. 490 00:28:10,040 --> 00:28:12,040 Ĝi provis krei iujn dosierojn kaj iuj log, 491 00:28:12,040 --> 00:28:15,400 kaj la permesoj, denove, ne estis ĝuste agordita, do mi faris ĝin 492 00:28:15,400 --> 00:28:18,320 tial tiujn dosierojn estis skribebla kaj plenumebla 493 00:28:18,320 --> 00:28:21,090 do ĝi povus reale ensaluti por aĵoj. 494 00:28:21,090 --> 00:28:24,220 Nun ĝi estas doni al mi alian escepto diro, "klaso ORM ne trovita", 495 00:28:24,220 --> 00:28:26,960 kaj tio estas ĉar mi forgesis alian paŝon. 496 00:28:26,960 --> 00:28:37,010 Domaĝe. 497 00:28:37,010 --> 00:28:40,270 En la bootstrap dosierujon dosieron esas tiuj moduloj ĉi tie, 498 00:28:40,270 --> 00:28:42,480 kion vi povas elekti por aktivigi aŭ malaktivigi. 499 00:28:42,480 --> 00:28:44,340 Tio estas aro da malsamaj karakterizaĵoj kiuj vi povas elekti uzi 500 00:28:44,340 --> 00:28:46,180 ene Kohana, kiu estas speco de agrabla. 501 00:28:46,180 --> 00:28:49,090 >> Ekzemple, oni havas aŭtentigan modulon 502 00:28:49,090 --> 00:28:51,170 kion vi povas uzi por legalizante uzantoj. 503 00:28:51,170 --> 00:28:53,390 Ili havas caching modulon se vi volas apliki 504 00:28:53,390 --> 00:28:57,870 ia Caching reen fino fari la apliko laboro pli rapide kaj whatnot. 505 00:28:57,870 --> 00:29:02,140 Ni devas ebligi al la datumbazo kaj la ORM modulon, 506 00:29:02,140 --> 00:29:04,280 ĉar kiel mi diris, ni uzas la datumbazo, evidente, 507 00:29:04,280 --> 00:29:08,200 kaj ni ankaŭ devas aktivigi la ORM modulon, 508 00:29:08,200 --> 00:29:12,220 ĉar ni ŝatus havi la ekstran funkcioj, kiu estas agrable havi. 509 00:29:12,220 --> 00:29:14,240 Ĉiuj mi devas fari estas uncomment tiuj 2 linioj, 510 00:29:14,240 --> 00:29:18,760 kaj nun, se mi refreŝigi, li donacis al mi alian eraron. 511 00:29:18,760 --> 00:29:22,100 Ĝi diras, "Klaso Model_Post ne trovita." 512 00:29:22,100 --> 00:29:30,210 Nun jen estas bona problemo havi. 513 00:29:30,210 --> 00:29:37,660 Ni vidu. 514 00:29:37,660 --> 00:29:42,200 Faru ĝin publika. 515 00:29:42,200 --> 00:29:46,450 No Atendu. 516 00:30:11,610 --> 00:30:13,160 Ho, kara. 517 00:30:13,160 --> 00:30:18,590 Mi ne scias kial tio ne povis trovi tiun. 518 00:30:18,590 --> 00:30:21,030 Tio estas vere stranga. 519 00:30:21,030 --> 00:30:23,820 Mi havas ĉi klaso ĝuste ĉi tie. 520 00:30:23,820 --> 00:30:28,650 Mi supozas ke mi povus havi al - oh. 521 00:30:28,650 --> 00:30:32,010 Mi tiom silentis. Mi forgesis aldoni PHP etikedo. 522 00:30:32,010 --> 00:30:34,670 Tio estas kial. 523 00:30:34,670 --> 00:30:41,260 Nun mi devas malfari ke 1 ŝanĝo mi ĵus faris. 524 00:30:41,260 --> 00:30:44,270 >> Bone. Tie ni iru. 525 00:30:44,270 --> 00:30:47,500 Tio estis vere stulta. Mi ne havis premieron PHP etikedo. 526 00:30:47,500 --> 00:30:49,900 Sed kiel vi povas vidi, nun ĝi taŭge funkcias, ĉu ne? 527 00:30:49,900 --> 00:30:51,240 Ni havas 1 post. 528 00:30:51,240 --> 00:30:54,730 Ni kaptis la unuan postenon, kaj nun ni presitaj el lia korpo. 529 00:30:54,730 --> 00:30:58,010 Granda. Fantastic. 530 00:30:58,010 --> 00:31:01,470 Demandojn ĝis nun? 531 00:31:01,470 --> 00:31:04,100 Nope? Demandojn? 532 00:31:04,100 --> 00:31:08,340 Konsentite, do ni ĵus kreis la fosto modelo, tre baza, 533 00:31:08,340 --> 00:31:10,930 kaj ni tuj aldonu iuj funkcioj poste. 534 00:31:10,930 --> 00:31:13,600 Ni povas aldoni validations kaj filtrado. 535 00:31:13,600 --> 00:31:15,650 Validations estas unu el la aferoj 536 00:31:15,650 --> 00:31:18,150 ke kadrojn solvi por vi vere, vere bone, 537 00:31:18,150 --> 00:31:21,310 kaj mi ne kredas vin knaboj devis fari ĉi tiun por via CS50 pset, 538 00:31:21,310 --> 00:31:24,000 sed se vi faros ttt evoluo por via fina projekto, 539 00:31:24,000 --> 00:31:26,280 vi probable tuj volas fari ian validigon, 540 00:31:26,280 --> 00:31:28,290 kiel ne havi malplenan uzulnomoj, 541 00:31:28,290 --> 00:31:31,950 eble havante pasvorto kun almenaŭ iom longe, aĵoj kiel tio. 542 00:31:31,950 --> 00:31:34,750 Kaj estas vere maloportuna por apliki ĉi tiujn aĵojn por ni mem, 543 00:31:34,750 --> 00:31:37,390 kaj preskaux cxiun solan ttt kadro faras ĝin por vi 544 00:31:37,390 --> 00:31:41,140 kaj permesas vin fari gxin en tre pura formo. 545 00:31:41,140 --> 00:31:44,340 Kaj la modelo estas kie vi ĝenerale esprimi tiujn validigo reguloj, 546 00:31:44,340 --> 00:31:48,790 ĉar ĝi estas validigi ĉu modelo validas aŭ ne. 547 00:31:48,790 --> 00:31:51,350 >> Sed por nun, ni tuj metis tiun ĝis poste, 548 00:31:51,350 --> 00:31:53,520 kaj cxar nun ni iras por labori sur la alia parto, 549 00:31:53,520 --> 00:31:55,400 kaj ni tuj provi kaj fari novajn vido 550 00:31:55,400 --> 00:31:59,580 kiuj listigas ĉiujn afiŝojn. 551 00:31:59,580 --> 00:32:02,490 La paŝoj implikita en fari novan agon por listing ĉiujn afiŝojn 552 00:32:02,490 --> 00:32:04,810 Estas ekpreni listo de ĉiuj afiŝoj 553 00:32:04,810 --> 00:32:11,990 kaj tiam redonu la listo de ĉiuj afiŝoj tra cele. 554 00:32:11,990 --> 00:32:16,420 Ĝuste tie, feliĉe sufiĉe, ni jam kaptis la tutan afiŝojn 555 00:32:16,420 --> 00:32:20,310 uzante tiun unuan linion, la trovos ĉiujn funkcion, 556 00:32:20,310 --> 00:32:22,520 kaj nun kion ni faros estas tiel malproksima 557 00:32:22,520 --> 00:32:25,350 Mi estis rekte opcio la korpon de la respondo 558 00:32:25,350 --> 00:32:29,090 aprobante la kordo, sed nun mi volas uzi vido, 559 00:32:29,090 --> 00:32:31,870 kaj la diferenco inter vido kaj nur faras ĉi 560 00:32:31,870 --> 00:32:35,330 estas cele mi povas havi belan, grandan HTML ŝablono, 561 00:32:35,330 --> 00:32:37,710 kaj kion mi povas fari estas fordoni certaj variabloj 562 00:32:37,710 --> 00:32:42,200 kaj tiam esti la vido aŭtomate popoli lia ŝablono 563 00:32:42,200 --> 00:32:44,690 uzante tiujn variablojn. 564 00:32:44,690 --> 00:32:50,780 Kion mi faros, estas mi krei novan vidon, 565 00:32:50,780 --> 00:32:55,940 kaj mi enoficigi la vido ion kiel "blogo / index" 566 00:32:55,940 --> 00:33:08,480 kaj mi tuj esence ligi tio - oh, kion mi skribas? 567 00:33:08,480 --> 00:33:12,910 Mia cerbo estas aliloke. 568 00:33:12,910 --> 00:33:16,600 Mi tuj kateni la afiŝojn variablon al la vido, 569 00:33:16,600 --> 00:33:19,950 tial tiu maniero la vidpunkto havas aliron al afiŝo variablo. 570 00:33:19,950 --> 00:33:26,140 >> Do nun mi bezonas por krei tiun vidpunkton, 571 00:33:26,140 --> 00:33:28,500 tial jen ni havas ĉi dosierujo nomita "Vidoj" 572 00:33:28,500 --> 00:33:32,150 kaj unue, mi provus krei novan dosierujon sub tiu nomita "Blogo". 573 00:33:32,150 --> 00:33:35,810 Tiu estas bela. Tiel ni povas havi belan hierarkio por niaj opinioj. 574 00:33:35,810 --> 00:33:43,910 Kaj poste mi iros kaj krei alian dosieron en tie nomata "index.php". 575 00:33:43,910 --> 00:33:45,780 Awesome. 576 00:33:45,780 --> 00:33:52,930 Fakte, ni havas ilin ambaŭ tie. 577 00:33:52,930 --> 00:33:56,760 Farante view dosiero estas probable la plej simpla parto de ĉio ĉi, 578 00:33:56,760 --> 00:33:59,090 kaj jen estas probable tion vi jam familiara kun. 579 00:33:59,090 --> 00:34:01,240 Ni intencas fari ion vere simpla, 580 00:34:01,240 --> 00:34:05,360 komenci diri: "Mia listo de blogo afiŝojn." 581 00:34:05,360 --> 00:34:14,860 Poste ni povas iri tra, 582 00:34:14,860 --> 00:34:17,920 kaj ni povas persisti tra la afiŝojn tabelo, 583 00:34:17,920 --> 00:34:21,760 grab ĉiu sola fosto kaj diras ion kiel - 584 00:34:21,760 --> 00:34:25,290 eble aldoni linion 585 00:34:25,290 --> 00:34:42,460 kaj poste printi la aŭtoro kaj la korpo. 586 00:34:42,460 --> 00:34:44,480 Tio havas sencon ĝis nun? 587 00:34:44,480 --> 00:34:50,870 Kaj ni vidu, se tio funkcias. 588 00:34:50,870 --> 00:34:53,489 Nenio okazis. 589 00:34:53,489 --> 00:34:55,090 Mi scivolas kial. 590 00:34:55,090 --> 00:34:58,760 Ho, mi maltrafis 1 paŝo. Tre stulte de mi. 591 00:34:58,760 --> 00:35:01,640 Mi kreis vidpunkto, sed mi ne agordis la vido kiel la respondon, 592 00:35:01,640 --> 00:35:03,190 tiel vi devas fari ankoraŭ 1 afero. 593 00:35:03,190 --> 00:35:12,610 Vi devos fari "ĉi respondo korpo" kaj metis gxin al esti la vido. 594 00:35:12,610 --> 00:35:14,760 Tie ni iru. 595 00:35:14,760 --> 00:35:17,200 Ni havas nian rubrikon, kaj tiam ni havas post, 596 00:35:17,200 --> 00:35:20,500 kaj ĝuste pro piedbatoj, ni enmetas alian postenon 597 00:35:20,500 --> 00:35:23,390 tiel ni povas vidi liston. 598 00:35:31,800 --> 00:35:36,650 Kaj enmeti tiujn 2 afiŝojn, 599 00:35:36,650 --> 00:35:39,500 kaj nun, se mi refreŝigi la paĝon, 600 00:35:39,500 --> 00:35:42,060 ni vidas ĉiujn tiujn afiŝojn ĉi tie. 601 00:35:42,060 --> 00:35:44,250 >> Ĉu tio havas sencon ĝis nun? 602 00:35:44,250 --> 00:35:46,400 Yeah, demando? Ho, bone. 603 00:35:46,400 --> 00:35:51,440 Kiel vi povas vidi, ni povis disigi cxiujn tiujn kodojn ekstere 604 00:35:51,440 --> 00:35:53,920 en malsamaj sekcioj, kaj tiam vi povas vidi gxin estas pli klara kun la vido kodo. 605 00:35:53,920 --> 00:35:57,810 Tiu dosiero tie kiu reprezentas la vidpunkton, 606 00:35:57,810 --> 00:36:01,220 nur zorgas pri reprezenti datumojn, montri datumojn. 607 00:36:01,220 --> 00:36:04,310 Ĝi gets pasis ian datumojn, kaj ĉiuj faras estas ĝuste montri ĝin al vi. 608 00:36:04,310 --> 00:36:07,660 En ĉiuj aliaj partoj de via kodo, vi ne devos zorgi pri iu ajn el tiu, 609 00:36:07,660 --> 00:36:10,480 kaj simile, via vidpunkto kodo ne devas maltrankviligi ion pri 610 00:36:10,480 --> 00:36:13,390 kiel aliri la datenbazon kaj tiel plu kaj tiel plu, 611 00:36:13,390 --> 00:36:19,950 kiu estas vere bona kaj faras via kodo multe pli mantenible. 612 00:36:19,950 --> 00:36:23,390 Kiel mi diris, opinioj, ili estas dinamika en tiu 613 00:36:23,390 --> 00:36:27,080 ĝi estas la 1-dosiero, sed ĝi generus malsamaj vidpunktoj 614 00:36:27,080 --> 00:36:29,940 bazita sur la variablojn vi fakte pasas en, 615 00:36:29,940 --> 00:36:32,370 kaj krome, estas amaso de malsamaj helpanton funkcioj 616 00:36:32,370 --> 00:36:34,230 ke vi povas uzi por helpi vin verki via kodo rapida, 617 00:36:34,230 --> 00:36:36,320 kion mi montros al vi en nur duan. 618 00:36:36,320 --> 00:36:38,050 Jes. 619 00:36:38,050 --> 00:36:42,490 >> [Studenta] Do $ 0 estas adaptilo, right? 620 00:36:42,490 --> 00:36:44,000 Tiu dua afero. 621 00:36:44,000 --> 00:36:46,090 La demando estas estas $ 0 controlador? 622 00:36:46,090 --> 00:36:48,610 $ 0 estas variablo Mi kreis ĝuste ĉi tie. 623 00:36:48,610 --> 00:36:51,320 Mi kreis view unue. Mi atribuas gxin al iu variablo. 624 00:36:51,320 --> 00:36:54,960 Do mi pasigis ĝin en ĉi tiun funkcion, starigis ĝin kiel la korpo de la respondo. 625 00:36:54,960 --> 00:36:57,260 Ĉu tio havas sencon? 626 00:36:57,260 --> 00:37:02,200 [Studenta] Tia estas view :: fabriko, estas vidita kiel kategorio 627 00:37:02,200 --> 00:37:06,610 aŭ biblioteko [inaudibles] fabriko funkcio? 628 00:37:06,610 --> 00:37:10,640 La demando estas pri la vido :: fabriko funkcion, 629 00:37:10,640 --> 00:37:14,020 kaj esence tio estas iom pli objekteman programadon esence. 630 00:37:14,020 --> 00:37:18,000 View estas la vidpunkto de klaso, kaj ĝi havas metodo nomata "Fabriko," 631 00:37:18,000 --> 00:37:24,170 kaj tio estas maniero por ekpreni la celo kiu estas nomata "blogo / indekso." 632 00:37:24,170 --> 00:37:27,140 Kaj tio estas iom pli objekteman programadon stuff 633 00:37:27,140 --> 00:37:33,010 ke mi ne tuj iru al tie tro multe. 634 00:37:33,010 --> 00:37:36,400 Nun evidente, ni volas krei novajn afiŝojn, 635 00:37:36,400 --> 00:37:38,790 sed ni ne volas devi fari tion tra datumbazo, 636 00:37:38,790 --> 00:37:41,280 tial ni tuj krei novajn agado por kreado de nova posteno, 637 00:37:41,280 --> 00:37:43,050 kaj tie estas multe da taskoj oni devas fari. 638 00:37:43,050 --> 00:37:45,910 >> La unua afero, kiun ni iras fari - ni pritrakti tion unu post unu. 639 00:37:45,910 --> 00:37:48,320 La unua afero, kiun ni devos fari estas ni devas krei formo 640 00:37:48,320 --> 00:37:54,460 por enmeto de nova posteno, 641 00:37:54,460 --> 00:37:57,360 sed mi ankaŭ tuj aldoni novajn agojn unua, 642 00:37:57,360 --> 00:38:01,050 tial aldoni novan agado estas same facila kiel 643 00:38:01,050 --> 00:38:03,490 aldoni novan funkcion kun via adaptilo, 644 00:38:03,490 --> 00:38:13,710 kaj cxar nun Mi faros ion tre baza, 645 00:38:13,710 --> 00:38:20,850 nur grab tiu vido kaj poŝti ĝin, simple vidigi ĝin por vi. 646 00:38:20,850 --> 00:38:26,220 Kaj poste mi nun tuj krei novajn view dosiero, 647 00:38:26,220 --> 00:38:33,690 kaj mi tuj komenci skribi iujn vazojn. 648 00:38:33,690 --> 00:38:36,540 Kio estas agrable pri Kohana estas ke ili ofertas multajn malsamajn helpanton funkcioj 649 00:38:36,540 --> 00:38:38,790 por vi skribi vido kodon pli facile, 650 00:38:38,790 --> 00:38:41,970 kaj 1 el tiuj helpanton funkciojn aŭ helpanto moduloj 651 00:38:41,970 --> 00:38:45,860 Estas ĉirkaŭ skribi formojn. 652 00:38:45,860 --> 00:38:49,460 Por skribi formojn, mi ne vere devos rekte skribi ajnan HTML mem. 653 00:38:49,460 --> 00:38:51,100 You guys skribis HTML. 654 00:38:51,100 --> 00:38:54,850 Vi scias, kiel tio povas esti vere, vere doloraj kaj malkomfortaj verki formojn. 655 00:38:54,850 --> 00:38:59,970 Ĝi ne estas amuza, do feliĉe, 656 00:38:59,970 --> 00:39:04,860 ni povas baze skribi formo uzanta Kohana la 657 00:39:04,860 --> 00:39:11,190 formi helpanton funkcioj por fari ĝin por ni. 658 00:39:11,190 --> 00:39:17,340 Ni iras al esence havi kampoj por ĉiu sola afero, kiun ni havas, 659 00:39:17,340 --> 00:39:23,160 tial unu por aŭtoroj kaj unu por la korpoj. 660 00:39:23,160 --> 00:39:27,090 Ni tuj havas etiketon, kaj ni tuj havos enigo. 661 00:39:37,450 --> 00:39:41,360 >> Kaj poste fine, ni tuj havos submetiĝo. 662 00:39:49,350 --> 00:39:52,230 Kaj kiel vi povas vidi, tio estas multe pli pura skribi 663 00:39:52,230 --> 00:39:58,150 ol cxiuj, kiuj senorda HTML, kiu estas speco de agrabla. 664 00:39:58,150 --> 00:40:00,930 Koncedas, ke estas aliaj ttt kadroj kiuj havas ĝin eĉ pli puran ol tiu, 665 00:40:00,930 --> 00:40:04,440 sed almenaŭ tio estas pli bone ol skribi la HTML mem. 666 00:40:09,400 --> 00:40:11,130 Awesome, do tio estas, kion vi vidos. 667 00:40:11,130 --> 00:40:13,530 Tio estas speco de senordaj, 668 00:40:13,530 --> 00:40:19,720 do mi tuj aldonu linerompo tie 669 00:40:19,720 --> 00:40:21,180 fari, ke aspektas iom pli afabla. 670 00:40:21,180 --> 00:40:23,330 Nu, kompreneble, ĝi ankoraŭ aspektas vere, vere malbona, sed ni nur centrita 671 00:40:23,330 --> 00:40:26,050 sur la funcionalidad por nun kaj ne sur la estetiko. 672 00:40:26,050 --> 00:40:28,010 Ne estas tempo por fari ĉion. 673 00:40:28,010 --> 00:40:30,600 Kaj kiel vi povas vidi, ni nun havas super baza formo, 674 00:40:30,600 --> 00:40:32,080 kio estas speco de agrabla. 675 00:40:32,080 --> 00:40:36,730 Ĉi tiu kodo mi devus diri estas puraj ol provas skribi HTML formi mem, 676 00:40:36,730 --> 00:40:40,290 tiel, ke estas agrable. 677 00:40:40,290 --> 00:40:42,030 Kio estas sekvanta? 678 00:40:42,030 --> 00:40:49,260 Nun ni devas fari tion kun la ago. 679 00:40:49,260 --> 00:40:51,240 Kutime, kiam vi skribas HTML, 680 00:40:51,240 --> 00:40:54,070 vi devas diri al ŝi, kie ĝi okazos al la formularon por. 681 00:40:54,070 --> 00:40:56,050 Implicite en plej ttt kadrojn, 682 00:40:56,050 --> 00:40:58,200 ĝi submetas al la ĝusta sama URL, do la afero estas, 683 00:40:58,200 --> 00:41:01,310 se vi sendos get peto / blog / nova, 684 00:41:01,310 --> 00:41:03,240 ĝi devus montri al vi la formon, 685 00:41:03,240 --> 00:41:06,810 sed se vi sendas post peto al / blog / nova kun la datumoj, 686 00:41:06,810 --> 00:41:10,000 ĝi devus efektive provas savi tion, post 687 00:41:10,000 --> 00:41:13,300 kaj faru ion kun tio. 688 00:41:20,630 --> 00:41:22,180 >> Kion ni faros estas 689 00:41:22,180 --> 00:41:25,320 esence ĉiuj ni devas fari por kontroli, ĉu ĝi estas post peto aux get peto 690 00:41:25,320 --> 00:41:29,350 Estas por kontroli kio estas la fosto variablojn vi povas agordi. 691 00:41:29,350 --> 00:41:34,560 Kaj se la fosto variablo estas fiksita, do ni tuj provi krei novan postenon. 692 00:41:34,560 --> 00:41:38,440 Denove, ni nur faru tion, 693 00:41:38,440 --> 00:41:41,090 kaj tio kreas novan postenon, kaj oni laŭvorte tuj 694 00:41:41,090 --> 00:41:51,150 starigis lian kampoj kiel ĉi, 695 00:41:51,150 --> 00:41:55,640 kaj tiam ni tuj por savi ŝin. 696 00:41:55,640 --> 00:41:59,200 Kaj poste mi iros ridirektanta 697 00:41:59,200 --> 00:42:07,660 al la indekso pagxo do ili povas vidi nian liston de afiŝojn denove. 698 00:42:07,660 --> 00:42:09,620 Ni provu tion. 699 00:42:09,620 --> 00:42:15,160 Mi diros, "Brandon," 700 00:42:15,160 --> 00:42:18,140 kaj tiam submit la fosto, kaj se ĉiu iras bone, 701 00:42:18,140 --> 00:42:21,390 kiel vi povas vidi, ĝi alidirektita min al la indekso paĝo 702 00:42:21,390 --> 00:42:24,140 kaj se mi rulumas la fundon, ni havas nove enmetita post. 703 00:42:24,140 --> 00:42:26,430 Yay! 704 00:42:26,430 --> 00:42:28,430 Yeah, demando. 705 00:42:28,430 --> 00:42:31,760 >> [Studenta] Kio, se vi eniris la ĝusta sama aĵo 706 00:42:31,760 --> 00:42:33,380 vi tajpis antaŭe? 707 00:42:33,380 --> 00:42:36,950 Ĉu ĝi kontroli por certiĝi ke vi ne duobligi 708 00:42:36,950 --> 00:42:38,810 la sama submetiĝo? 709 00:42:38,810 --> 00:42:41,660 Estu defaŭlte, ne, ĉar defaŭlte - 710 00:42:41,660 --> 00:42:46,470 bedaŭras, la demando estas, se vi eniros en la ĝusta sama datumojn en la formo 711 00:42:46,470 --> 00:42:50,180 kaj submeti ke, ĉu ĝi permesas enmeti duplikaton celon, 712 00:42:50,180 --> 00:42:52,550 duplikaton enirejo, esence? 713 00:42:52,550 --> 00:42:54,070 Ĝuste nun, jes, ĝi ebligos vin fari tion, 714 00:42:54,070 --> 00:42:58,860 ĉar en la datumbazoj estas perfekte valida havi tute duplikatajn vicoj, 715 00:42:58,860 --> 00:43:02,260 sed se tiu estas maltrankvilo, tiam vi povas aldoni validations, ekzemple, 716 00:43:02,260 --> 00:43:06,430 por certiĝi, ke se tio estas ĝuste la sama kiel iu kiu jam ekzistas, 717 00:43:06,430 --> 00:43:08,720 tiam diru, ke ĝi estas nevalida celon, 718 00:43:08,720 --> 00:43:11,200 kaj tiam vi povas eĉ specifi vian erarmesaĝon 719 00:43:11,200 --> 00:43:14,390 kaj diri, "Nevalida ĉar tio jam ekzistas" aŭ io simila. 720 00:43:14,390 --> 00:43:22,420 Sed en tiu kazo, mi povus simple krei iun duplikaton. 721 00:43:22,420 --> 00:43:26,010 Nun ni provu kaj aldoni kelkajn validations. 722 00:43:26,010 --> 00:43:30,400 La problemo kun ĉi tiu nun estas ke 723 00:43:30,400 --> 00:43:34,220 Mi povus laŭvorte submit tute malplenan postenon. 724 00:43:34,220 --> 00:43:37,500 Mi povas alklaki tiun butonon ĝuste nun, kaj tie ni iru. 725 00:43:37,500 --> 00:43:40,290 Vi ne povas vere vidi ĝin, sed ĉi tiu superflua linio tien 726 00:43:40,290 --> 00:43:43,830 indikas ke mi laŭvorte havas novan postenon. 727 00:43:43,830 --> 00:43:46,050 Ĝi nur havas malplenan aŭtoro kaj malplenan korpon, 728 00:43:46,050 --> 00:43:48,630 kaj ni ne volas permesi al homoj por fari tion. 729 00:43:48,630 --> 00:43:52,550 Tie estas kie validigo eniros 730 00:43:52,550 --> 00:43:57,540 >> Mi povas iri al mia modelo celon, 731 00:43:57,540 --> 00:43:59,530 kaj nun mi povas aldoni novan funkcion kiu specifas 732 00:43:59,530 --> 00:44:02,000 kio validigo reguloj mi devus aldoni al tiu modelo 733 00:44:02,000 --> 00:44:06,840 por certiĝi, ke ĝi estas valida aŭ specifi kion signifas esti valida post? 734 00:44:06,840 --> 00:44:10,210 Kaj mi volas diri ke estas nur valida post se ambaŭ la aŭtoro kaj korpo 735 00:44:10,210 --> 00:44:15,150 ne estas malplena, kaj tiu estas kiel vi faras ĝin en Kohana. 736 00:44:15,150 --> 00:44:18,750 Vi kreas novan funkcio nomita "Reguloj" 737 00:44:18,750 --> 00:44:20,210 kaj tiam vi esence reveni asocieca tabelo 738 00:44:20,210 --> 00:44:24,230 kiu difinas la validigo reguloj por tiu celo. 739 00:44:24,230 --> 00:44:27,530 Ni tuj revenos la tabelo, kaj poste, kion ni faros estas 740 00:44:27,530 --> 00:44:32,820 diri "aŭtoro", ĝi iras al tabelo, 741 00:44:32,820 --> 00:44:37,720 kiu iras al alia tabelo nomas "ne estas malplena." 742 00:44:37,720 --> 00:44:41,480 Kaj poste mi iros diri "la korpo". 743 00:44:50,980 --> 00:44:54,120 Okay, kaj la sintakson por tio kaj strukturon por tiu 744 00:44:54,120 --> 00:44:56,530 eble aspektas iom ĝene kaj iom komplika. 745 00:44:56,530 --> 00:44:59,330 Se vi legis la dokumentaron, ĝi estas bela simpla elkompreni, 746 00:44:59,330 --> 00:45:02,500 Sed esence tio estas kion vi bezonas fari specifi 747 00:45:02,500 --> 00:45:04,130 iuj validigo reguloj, kaj ekzistas multaj malsamaj reguloj 748 00:45:04,130 --> 00:45:06,810 ke Kohana donos al vi senpage, kiel vi povas aldoni regulojn por diri 749 00:45:06,810 --> 00:45:08,410 ĝi devas esti almenaŭ ĉi longa. 750 00:45:08,410 --> 00:45:11,800 Eble ĝi devas esti nombra. Eble ĝi devas esti alfa nombraj. 751 00:45:11,800 --> 00:45:14,410 Eble ĝi devas esti maksimume ĉi longo, tiel plu kaj tiel plu. 752 00:45:14,410 --> 00:45:17,730 Ekzistas multaj diversaj reguloj kiuj Kohana havigas al vi, 753 00:45:17,730 --> 00:45:19,610 kaj vi povas iri sur ilia retpaĝaro, rigardi la dokumentaron, 754 00:45:19,610 --> 00:45:23,150 kaj vi povas vidi ĉiujn malsamajn aferojn, kiujn vi povas fari. 755 00:45:23,150 --> 00:45:25,650 >> Sed tio estas ĉio, kion mi devas fari, 756 00:45:25,650 --> 00:45:30,490 kaj nun ni vidu kio okazas 757 00:45:30,490 --> 00:45:34,060 se mi submit vakan postenon. 758 00:45:34,060 --> 00:45:36,960 Kio okazos? Ho, ne, mi ricevas eraron. 759 00:45:36,960 --> 00:45:39,440 Mi ricevas validigo escepto. 760 00:45:39,440 --> 00:45:41,070 Nu, estas bona. 761 00:45:41,070 --> 00:45:43,200 Ĝi diris al mi, ke mia modelo estas nevalida, 762 00:45:43,200 --> 00:45:45,780 sed mi ne volas vidigi escepton 763 00:45:45,780 --> 00:45:48,720 al mia uzantoj kiam ili provas submeti ion nevalida, right? 764 00:45:48,720 --> 00:45:51,560 Mi volas doni al ili ian amikan erarmesaĝon 765 00:45:51,560 --> 00:45:53,610 kiam io iras malbone. 766 00:45:53,610 --> 00:46:01,830 Kion ni faros estas ni tuj 767 00:46:01,830 --> 00:46:04,490 enpaki ĉion en try catch buklo. 768 00:46:04,490 --> 00:46:06,750 Efektive, mi pensas, ke estas ankaŭ iu vi ne lernis ankoraŭ 769 00:46:06,750 --> 00:46:10,820 en CS50, ĉar C, la programlingvo C, 770 00:46:10,820 --> 00:46:14,000 ne havas esceptojn, sed preskaŭ ĉiu sola alia lingvo 771 00:46:14,000 --> 00:46:16,700 havas esceptojn, tio vere, vere mallonge, 772 00:46:16,700 --> 00:46:19,430 escepto estas iu kiun koderon povas 773 00:46:19,430 --> 00:46:21,430 ĵeti escepton kiam io fuŝas, 774 00:46:21,430 --> 00:46:23,410 sed tiam eble iuj aliaj koderon pli supren 775 00:46:23,410 --> 00:46:25,810 povas kapti tiu escepto kaj faru ion kun tio. 776 00:46:25,810 --> 00:46:27,710 >> Ekzemple, en tiu kazo, 777 00:46:27,710 --> 00:46:29,940 la koderon kiuj provas savi modelon, 778 00:46:29,940 --> 00:46:33,170 ĝi validigas la modelo, kaj se ĝi diras, "Bone, tiu modelo estas nevalida" 779 00:46:33,170 --> 00:46:36,150 ĝi tuj ĵetu escepton, kaj ĉi tiu estas speco de ekvivalento al 780 00:46:36,150 --> 00:46:39,870 en C vi povus redoni a -1 aŭ io kiel tio. 781 00:46:39,870 --> 00:46:42,320 Kaj tiam mi, ĉi tiu funkcio, mia kodo 782 00:46:42,320 --> 00:46:46,310 je pli alta nivelo, mi povas provi kapti tiu escepto 783 00:46:46,310 --> 00:46:49,330 kaj esence diras, "Bone, se mi kaptos la escepto, kion mi povos fari?" 784 00:46:49,330 --> 00:46:51,570 Aux mi povus elekti ne kaptas kiuj escepto kaj lasu iun pli alte 785 00:46:51,570 --> 00:46:54,400 kapti la escepton, aŭ se neniu lin kaptas, 786 00:46:54,400 --> 00:46:56,820 tiam la tuta programo kraŝas kaj diras: 787 00:46:56,820 --> 00:46:59,170 "Io misokazis, kaj mi ne povis manipuli ĝin." 788 00:46:59,170 --> 00:47:04,490 >> Sed kion ni faras estas vi wrap koderon en try bloko, 789 00:47:04,490 --> 00:47:09,030 kaj tiam vi ankaŭ aldonu iun nomita akirado bloko, 790 00:47:09,030 --> 00:47:17,300 kiu estas la speco de kodo ke provos kaj kapti esceptoj kiuj povas okazi. 791 00:47:17,300 --> 00:47:20,430 Kaj tial, se mi kaptos tiun apartan escepton 792 00:47:20,430 --> 00:47:23,110 aŭ invalidation escepton, tiam kion mi tuj faros estas 793 00:47:23,110 --> 00:47:31,210 Mi tuj metis la eraroj - mi pensas ke estas kiel mi faru ĝin - 794 00:47:31,210 --> 00:47:35,370 kaj mi tuj metis la erarojn al iu celo. 795 00:47:35,370 --> 00:47:40,920 Kaj tiam kion mi faros se lin batas tiu escepto, 796 00:47:40,920 --> 00:47:43,090 ĝi ne estas tuj ridirektanta, kaj se ĝi ne ridirektanta, 797 00:47:43,090 --> 00:47:46,160 ĝi tuj venas el la se blogo 798 00:47:46,160 --> 00:47:49,920 kaj batis ĉi blogo / nova, kiun oni volas mi volas fari. 799 00:47:49,920 --> 00:47:53,190 Se estas eraro, ĉar mi volas reiri al la formo 800 00:47:53,190 --> 00:47:55,100 kaj montri tiuj eraroj. 801 00:47:55,100 --> 00:48:00,780 Nu, kion mi volas fari estas mi volas en tiuj eraroj 802 00:48:00,780 --> 00:48:07,010 al la vido. 803 00:48:07,010 --> 00:48:10,360 Konsentite, mi kredas ke mi havas la opinion ĉi tie, 804 00:48:10,360 --> 00:48:14,660 kaj esence Mi deziras montri tiuj eraroj, se ili ekzistas. 805 00:48:14,660 --> 00:48:19,740 Antaŭ mi skribos la HTML por ke, mi iros al vere rapide 806 00:48:19,740 --> 00:48:21,720 montras al vi, kion la strukturo de ĉi eraroj variablo similas, 807 00:48:21,720 --> 00:48:23,080 kaj ĉi tiu estas bona praktiko ĝenerale. 808 00:48:23,080 --> 00:48:25,070 Multaj fojoj vi ricevas ion de iu metodo, 809 00:48:25,070 --> 00:48:27,250 iu funkcio en la TTT-kadro, 810 00:48:27,250 --> 00:48:29,410 kaj vi ne scias kio estas la variablo aspektas kiel, 811 00:48:29,410 --> 00:48:31,210 tial vi ne scias kiel labori kun ŝi. 812 00:48:31,210 --> 00:48:37,790 Mi tuj uzi print r metodo por esence presi ĝin. 813 00:48:37,790 --> 00:48:41,100 >> Kaj kiel vi povas vidi, ĝi diras al mi ke estas asociita tabelo, 814 00:48:41,100 --> 00:48:44,880 kaj vi havas klavon, aŭtoro, poentojn al tiu ĉeno, 815 00:48:44,880 --> 00:48:47,050 aŭtoro devas ne esti malplena, kaj alia klavo, korpo, 816 00:48:47,050 --> 00:48:49,680 punktojn al alia kordo, korpo ne povas esti malplena. 817 00:48:49,680 --> 00:48:52,130 Mi ŝatas, ĝi valoras, cool. 818 00:48:52,130 --> 00:48:56,230 Tiam mi povos persisti tra la tabelo kaj presi ĉiu sola mesaĝo. 819 00:48:56,230 --> 00:49:02,150 Ĝi estas esence same kiel asocieca tabelo kun fasko da mesaĝoj. 820 00:49:02,150 --> 00:49:13,500 Kion mi faros estas "se eraroj," 821 00:49:13,500 --> 00:49:17,140 kaj mi iros por krei neordigitan liston, 822 00:49:17,140 --> 00:49:20,860 kaj mi tuj persisti tra ĉiuj eraroj. 823 00:49:33,730 --> 00:49:38,710 Kaj ĉi tiu, kaj nun mi iras provi submitting ĉi denove, 824 00:49:38,710 --> 00:49:41,200 kaj ni vidos kion ni ricevas. 825 00:49:41,200 --> 00:49:45,370 Nun ni havas tian belan liston de eraroj, 826 00:49:45,370 --> 00:49:48,630 kaj ĉi tiu estas ankoraŭ sufiĉe malbela, sed tiu evidente povas formatita rigardi bela, 827 00:49:48,630 --> 00:49:51,620 sed la baza ideo estas nur en malmultaj linioj de kodo, 828 00:49:51,620 --> 00:49:53,720 ni povis validigi nia modelo, 829 00:49:53,720 --> 00:49:56,510 certigi, ke certaj kampoj ne estis malplena, 830 00:49:56,510 --> 00:49:59,740 kaj se io estis malbone, tiam revenu ia eraro mesaĝon 831 00:49:59,740 --> 00:50:01,760 Mi povis tiam starigu reen al la uzanto. 832 00:50:01,760 --> 00:50:03,910 Vi povas ankaŭ agordi vian validigo 833 00:50:03,910 --> 00:50:07,590 por ke vi povas reale havas erarmesagxon 834 00:50:07,590 --> 00:50:09,620 ke estas pli specifa por via kandidatiĝo aŭ io kiel tio. 835 00:50:09,620 --> 00:50:14,600 Ĉio ĉi tio estas ĝenerale agordebla. 836 00:50:14,600 --> 00:50:17,150 >> Bedaŭrinde, ni elĉerpiĝas de tempo, 837 00:50:17,150 --> 00:50:20,040 do mi tuj devas ekstermi la vivan kodigo kunsido tie. 838 00:50:20,040 --> 00:50:22,980 Ekzistas aro da aliaj trajtoj kiuj mi volas pruvi por vi 839 00:50:22,980 --> 00:50:25,650 en ĉi tiu ekzemplo. 840 00:50:25,650 --> 00:50:27,620 Ekzemple, vi povas aldoni ŝablonojn al via retejo, 841 00:50:27,620 --> 00:50:31,110 do eble ekzistas iu speco de HTML kodo kiun vi volas apliki 842 00:50:31,110 --> 00:50:35,190 al ĉiu unuopa paĝo en via retejo, kaj anstataŭ ol interglui ke 843 00:50:35,190 --> 00:50:40,630 en ĉiu sola vido dosieron vi havas, kiuj evidente devus esti malbona praktiko, 844 00:50:40,630 --> 00:50:43,020 vi povas esence difinas tiujn ŝablonojn, 845 00:50:43,020 --> 00:50:46,660 kaj tiam en via regilo diras, "Bone, mi uzas ĉi tiun ŝablonon." 846 00:50:46,660 --> 00:50:50,130 "Ĉu ĉiuj miaj opinioj uzi ĉi tiun ŝablonon." 847 00:50:50,130 --> 00:50:52,470 Kaj la lasta afero mi volas pruvi al vi tiel 848 00:50:52,470 --> 00:50:57,800 ke ni ne havas tempon por estas kruco-ejo skripta, 849 00:50:57,800 --> 00:51:01,430 kaj esence mi pensas vi infanoj verŝajne vidis en CS50 - 850 00:51:01,430 --> 00:51:03,770 Mi kredas David Malan probable parolis pri kiel vi povas kutime injekti 851 00:51:03,770 --> 00:51:08,040 Javascript kodon en - Vi parolis pri tio? 852 00:51:08,040 --> 00:51:10,220 Eble? Eble ne? 853 00:51:10,220 --> 00:51:12,670 >> Sed multe da fojoj vi povas injekti malican JavaScript kodo 854 00:51:12,670 --> 00:51:15,630 en ies datumaron, kaj se ili ne povas savigxi tiu, konvene, 855 00:51:15,630 --> 00:51:18,280 tiam, kiam ili prezenti ke datumoj reen al la uzanto, 856 00:51:18,280 --> 00:51:21,310 do eble kuri ia hazarda kodo JavaScript vi ne volas okazi, 857 00:51:21,310 --> 00:51:23,050 kaj mi tuj pruvi kiom vi deziras fari tion ene Kohana. 858 00:51:23,050 --> 00:51:25,380 Ĝi estas efektive vere, vere facila. 859 00:51:25,380 --> 00:51:31,920 Mi povus fari tion nun en 2 sekundoj laŭvorte. 860 00:51:31,920 --> 00:51:34,560 Ĉio kion vi devas fari estas esence wrap tion 861 00:51:34,560 --> 00:51:46,920 en ĉi tiu afero nomata HTML entoj. 862 00:51:46,920 --> 00:51:51,180 Kaj tio estos aŭtomate eskapi ĉiujn karakterojn adekvate 863 00:51:51,180 --> 00:51:54,730 kaj certigi vin ne komprenas ĉi tiun problemon. 864 00:51:54,730 --> 00:51:57,220 [Studenta] Vi literumis la unuan provon malĝuste. 865 00:51:57,220 --> 00:52:01,030 [Brandon Liu] Ho, oops. 866 00:52:01,030 --> 00:52:06,420 >> Bone, jen ĉio mi devis dividi kun vi hodiaŭ. 867 00:52:06,420 --> 00:52:09,930 Ĉi tiuj diapozitivoj tuj estos eldonitaj, sed tiuj estas ĝenerale 868 00:52:09,930 --> 00:52:13,900 nur rimedojn vi devus vere bezonas por starti kun Kohana. 869 00:52:13,900 --> 00:52:16,770 Vi povas iri al la retejo. Ili havas uzanto gvidas, kaj ili ankaux havas API esploristo. 870 00:52:16,770 --> 00:52:20,630 Ni povas esplori ĉiujn malsamajn funkciojn kaj helpantojn funkcioj ili havas por vi. 871 00:52:20,630 --> 00:52:22,070 Ili ĝenerale havas sufiĉe informo pri la retejo 872 00:52:22,070 --> 00:52:25,310 ke vi povas uzi por starti kaj get going with Kohana. 873 00:52:25,310 --> 00:52:30,840 Tie ne estas ke multaj lernilojn, mi pensas, por Kohana, ekstere de 874 00:52:30,840 --> 00:52:33,880 kion ili havas en la paĝo ĉi tie, do tio estas probable vian plej bona veto. 875 00:52:33,880 --> 00:52:35,600 Sed se vi volas iri kun la ttt kadro 876 00:52:35,600 --> 00:52:37,120 kaj vi ne volas havi repreni novan lingvon, 877 00:52:37,120 --> 00:52:39,780 kaj vi volas ion ke estas relative malpeza kaj havas facilan lernadon kurbo, 878 00:52:39,780 --> 00:52:41,570 Mi certe sugestus Kohana. 879 00:52:41,570 --> 00:52:44,040 Tio estas verŝajne la plej bona donaco por tio. 880 00:52:44,040 --> 00:52:46,830 La amuza afero, tamen, estas, se ni uzas Ruby on Rails, 881 00:52:46,830 --> 00:52:48,550 Ni povis esti multoblighas kion ni ĵus faris 882 00:52:48,550 --> 00:52:51,430 kaj verŝajne pli en malpli ol 3 minutoj. 883 00:52:51,430 --> 00:52:54,710 Neniu ŝerco, sed lernante Ruby on Rails prenas multan plu 884 00:52:54,710 --> 00:52:56,780 ol necesus por lerni Kohana. 885 00:52:56,780 --> 00:52:58,840 Ĝi estas esence via elekto pri kion vi volas elekti por lerni, 886 00:52:58,840 --> 00:53:01,260 sed se vi volas ellitiĝi kaj kurante rapide, 887 00:53:01,260 --> 00:53:03,870 Kohana estas definitive tre bona elekto. 888 00:53:03,870 --> 00:53:06,730 >> Ajna lasta demandojn antaŭ ol ni finos? Jes. 889 00:53:06,730 --> 00:53:08,020 [Studenta] Kiel ni integri ke 890 00:53:08,020 --> 00:53:13,120 en CSS kadro kiel vi uzis kiam vi estis instrui? 891 00:53:13,120 --> 00:53:16,700 La demando estas kiel estus ni integri ke kun CSS kadro? 892 00:53:16,700 --> 00:53:18,740 Kio ni estus probable fari estas ni estus probable inkluzivas 893 00:53:18,740 --> 00:53:21,090 nova dosierujo, kie ni devus renversi ĉiujn niajn CSS dosieroj, 894 00:53:21,090 --> 00:53:23,010 kaj tiam ni ankaŭ aldoni novan ŝablonon. 895 00:53:23,010 --> 00:53:26,090 En la ŝablono ni deziras inkludi tiujn CSS dosierojn 896 00:53:26,090 --> 00:53:28,410 por certiĝi ili estas referencita en ĉiu unuopa paĝo 897 00:53:28,410 --> 00:53:32,220 kaj tiam kiam vi vere estas skribo de HTML, 898 00:53:32,220 --> 00:53:34,010 vi simple aldonu taŭga klasoj kaj whatnot, 899 00:53:34,010 --> 00:53:36,100 kaj ekzemple, kiam vi uzas iun kiel la formo 900 00:53:36,100 --> 00:53:40,710 helpanto funkcio, vi povas aldoni pli da parametroj poste 901 00:53:40,710 --> 00:53:42,830 specifi kion klasoj vi volas esti konektita al diversaj aferoj 902 00:53:42,830 --> 00:53:47,820 tial ili povus stiligi konvene, kaj tio estas esence kiel vi devus iri. 903 00:53:47,820 --> 00:53:50,100 >> Iu ajn aliajn demandojn? 904 00:53:50,100 --> 00:53:52,090 Awesome. 905 00:53:52,090 --> 00:53:58,540 Dankon pro via tempo, kaj dankon pro veni. 906 00:53:58,540 --> 00:54:05,170 Mi ne tuj aldonas tre multe alie, 907 00:54:05,170 --> 00:54:08,560 sed 1 vere rapida afero estas ke ni ne havas ligon 908 00:54:08,560 --> 00:54:12,590 al la formo. 909 00:54:12,590 --> 00:54:14,310 Vere muta. 910 00:54:14,310 --> 00:54:20,110 Ni aldonu - fakte en la vido, blogo, indekso, 911 00:54:20,110 --> 00:54:23,890 ni vere rapide aldoni ligilon kiu iras al la nova paĝo, 912 00:54:23,890 --> 00:54:26,770 La paĝo kie ni povas enigi novan postenon. 913 00:54:26,770 --> 00:54:29,950 Ni tuj faros. 914 00:54:29,950 --> 00:54:34,020 Kio estas agrable estas tie estas tiu tuta grupo de HTML helpanton funkcioj 915 00:54:34,020 --> 00:54:37,090 kion fari malsamajn aferojn por vi, do vi jam vidis la estaĵoj 916 00:54:37,090 --> 00:54:41,980 funkcii ĉi tie, sed ili ankaŭ havas funkcion nomas "ankro" 917 00:54:41,980 --> 00:54:45,400 kion vi povas tajpi la blogo / nova 918 00:54:45,400 --> 00:54:49,550 kaj diru: "Afiŝu novan blogon." 919 00:54:49,550 --> 00:54:51,850 Kaj tio estus krei tiun ligon por vi, 920 00:54:51,850 --> 00:54:54,120 kaj tio ŝajnas vere bagatela por fari, sed tio estas bela, 921 00:54:54,120 --> 00:54:58,720 ĉar supozas ke vi estas movanta retpagxon de 1 havaĵo al alia. 922 00:54:58,720 --> 00:55:01,390 Kaj se vi simple skribis el la URL mem, 923 00:55:01,390 --> 00:55:04,350 tiam vi devus ŝanĝi ĉiujn URLoj. 924 00:55:04,350 --> 00:55:06,850 Aŭ eble vi kopiis ĝin el 1 subdosierujon al alia subdosierujon. 925 00:55:06,850 --> 00:55:08,790 Vi devus ŝanĝi ĉiujn tiujn URL-oj mem, 926 00:55:08,790 --> 00:55:12,180 kaj tio ne estas amuza. 927 00:55:12,180 --> 00:55:14,510 Vi povas uzi ĉi ankron ĝuste ĉi tie, 928 00:55:14,510 --> 00:55:18,950 kaj vi povos ŝanĝi la domajno aŭ la subdosierujon prefikso 929 00:55:18,950 --> 00:55:20,640 en la agordo-dosiero samtempe, 930 00:55:20,640 --> 00:55:22,980 kaj tiam sekvindaj ke ĉie, kaj ĉi tio estas, denove, 931 00:55:22,980 --> 00:55:26,930 granda ekzemplo de ne ripetu mem, sekigante via kodo eksteren. 932 00:55:26,930 --> 00:55:30,370 Kie ajn vi ripetante mem, provi kaj ĉerpi en ia agordo-dosiero 933 00:55:30,370 --> 00:55:34,160 aŭ al malsama funkcio kaj ĝi manipulas ke por vi. 934 00:55:34,160 --> 00:55:42,930 >> Kaj la lasta afero, kiun mi volis montri al vi estis 935 00:55:42,930 --> 00:55:50,250 supozu ke ni estas ree en tiu posteno, kaj mi verkis kelkajn vere longa eseo, 936 00:55:50,250 --> 00:55:52,670 sed mi forgesis inkluzivi mian aŭtoro. 937 00:55:52,670 --> 00:55:55,210 Nun kiam mi premas "Afiŝu Post," 938 00:55:55,210 --> 00:55:57,270 Mi nur perdis ĉion. 939 00:55:57,270 --> 00:56:00,000 Neniu! Vere malgaja. 940 00:56:00,000 --> 00:56:03,870 Do kiel vi agas kun tiu? 941 00:56:03,870 --> 00:56:06,070 Jen kion ni faros. 942 00:56:06,070 --> 00:56:09,340 Kion ni faras estas tie por tiuj enigo kaj tekstujo funkciojn, 943 00:56:09,340 --> 00:56:12,700 se ni inkluzivas duan parametron, tiam la valoro de tiu dua parametro 944 00:56:12,700 --> 00:56:16,620 tuj estos kion la kampo tuj estos komence popolita. 945 00:56:16,620 --> 00:56:23,570 Kion ni povus fari estas en nia blogo adaptilo, 946 00:56:23,570 --> 00:56:25,360 ni povus ligi al alia variablo. 947 00:56:25,360 --> 00:56:27,050 Nomu ĝin "valoroj" eble. 948 00:56:27,050 --> 00:56:30,620 Migru en la post tabelo, laŭvorte. 949 00:56:30,620 --> 00:56:32,620 Tio signifas ke se la validigo maltrafis, 950 00:56:32,620 --> 00:56:36,570 pasi al mi la fosto tabelo, ke Mi sendis de la lasta peto, 951 00:56:36,570 --> 00:56:38,420 kaj tiu vojo mi povas uzi la valorojn de mia lasta submetiĝo 952 00:56:38,420 --> 00:56:44,540 repoblarse la kampoj. 953 00:56:44,540 --> 00:56:49,600 Nun mi povas fari ion kiel valoroj aŭtoro 954 00:56:49,600 --> 00:56:55,180 kaj valoras korpon, kaj tiu vojo nun se mi faras iu hazarda stuff 955 00:56:55,180 --> 00:57:01,490 kaj alklaku "Submit Post," tiam ĝi restas tie. 956 00:57:01,490 --> 00:57:03,830 Sed ni tuj kuras en alian problemon. 957 00:57:03,830 --> 00:57:07,670 Tio funkcias, sed se mi veturas al la paĝo la unua fojo, 958 00:57:07,670 --> 00:57:09,720 ĝi estas tuj frakasos, kaj tio estas pro la tre unua fojo 959 00:57:09,720 --> 00:57:13,730 ni iru al la paĝo, afiŝo variablo ne estis difinita ankoraŭ. 960 00:57:13,730 --> 00:57:18,170 Ĝi estas nula. Ĝi ne ekzistas. 961 00:57:18,170 --> 00:57:21,630 >> Kaj kion ni volas diri estas, se ĉi tiu ŝlosilo ekzistas, 962 00:57:21,630 --> 00:57:27,750 tiam redonas la valoron de ĉi tiu tabelo, 963 00:57:27,750 --> 00:57:30,450 sed se la ŝlosilo ne ekzistas, do resendas malplenan ĉenon. 964 00:57:30,450 --> 00:57:32,150 Tio estas la funcionalidad ni volas cxi tie. 965 00:57:32,150 --> 00:57:34,690 Ni volas kontroli, ĉu la klavo ekzistas antaŭ provi aliri la tabelo, 966 00:57:34,690 --> 00:57:36,580 kaj feliĉe sufiĉe, 967 00:57:36,580 --> 00:57:38,570 Kohana ankaŭ donas al ni helpantino funkcio por tio. 968 00:57:38,570 --> 00:57:41,040 Ili havas cxi tiun tutan suite de funkcioj 969 00:57:41,040 --> 00:57:43,660 sub la nomo ARR, mallongigo de tabelo, 970 00:57:43,660 --> 00:57:45,800 kaj ili havos 1 funkcio nomita "get", 971 00:57:45,800 --> 00:57:48,690 kaj vi povas pasi en la tabelo, 972 00:57:48,690 --> 00:57:50,740 kaj vi povas pasi en la nomo de la klavo. 973 00:57:50,740 --> 00:57:54,330 Tiam esence kion faros estas provos akiri tiun klavon, 974 00:57:54,330 --> 00:57:56,470 sed se tiu ŝlosilo ne ekzistas en la tabelo, 975 00:57:56,470 --> 00:58:00,900 tiam revenos malplenan, aŭ ni povas ankaŭ specifi defaŭlte, mi kredas, 976 00:58:00,900 --> 00:58:03,500 kio estas agrabla. 977 00:58:09,740 --> 00:58:13,150 Nun se ni faros la samon denove, 978 00:58:13,150 --> 00:58:15,970 tiam vi vidas nun funkcias la unua fojo ĉirkaŭe, 979 00:58:15,970 --> 00:58:18,080 kaj denove, se oni tajpas en iu hazarda stuff 980 00:58:18,080 --> 00:58:23,210 kaj provi kaj submetigxu, tiam ĝi restas tie. 981 00:58:23,210 --> 00:58:31,640 >> Mi supozas ke mi povas ankaŭ montri al vi kiel aldoni ŝablonon vere rapide. 982 00:58:31,640 --> 00:58:36,140 Kion ni povas fari unua estas ke ni povas aldoni novajn view nomata "template.php" 983 00:58:36,140 --> 00:58:38,890 ene de la Vidoj dosierujo, 984 00:58:38,890 --> 00:58:44,730 kaj kion mi faros Estas Mi tuj presi iun nomita "enhavo", 985 00:58:44,730 --> 00:58:49,130 kiu iras al Mi kiel ĉefan enhavon. 986 00:58:49,130 --> 00:58:51,380 Kaj eble je la tre malsupro Mi tuj aldonas, diru, 987 00:58:51,380 --> 00:58:53,340 kopirajto. 988 00:58:53,340 --> 00:58:56,150 [Inaudibles studento demando] 989 00:58:56,150 --> 00:58:58,050 [Brandon Liu] Eble ĉi tiu estas super bazan ŝablonon mi volas uzi. 990 00:58:58,050 --> 00:59:02,840 Mi volas havi dosierujon kun mia kopirajto pri ĉiu unuopa paĝo 991 00:59:02,840 --> 00:59:05,560 kaj nun kion mi faros ene mia adaptilo 992 00:59:05,560 --> 00:59:07,740 Estas nun anstataŭ diri, "etendas Controller ' 993 00:59:07,740 --> 00:59:11,870 Mi intencis diri, "etendas Controller_Template" 994 00:59:11,870 --> 00:59:15,890 kaj nun, anstataŭ diri: "respondo korpo estas egala al tiu vidpunkto", 995 00:59:15,890 --> 00:59:24,110 Mi intencis diri, "ĉi tiu ŝablono enhavo estas -" 996 00:59:24,110 --> 00:59:27,690 kaj mi opinias, - cxu mi enmetu egalsigno? 997 00:59:27,690 --> 00:59:32,710 Mi forgesas. Jes, mi pensis tion. 998 00:59:32,710 --> 00:59:37,710 Kaj nun mi starigis tiun enhavon variablo por egali la vidon. 999 00:59:37,710 --> 00:59:40,960 Mi povas fari la saman ĉi tie. 1000 00:59:49,620 --> 00:59:57,170 Kaj nun se mi refreŝigi, vi povas vidi nun ĉi kopirajto aldonas tie, 1001 00:59:57,170 --> 01:00:00,350 kaj ĝuste fari iu hazarda post, 1002 01:00:00,350 --> 01:00:06,760 kaj tiam, denove, vi devus vidi, ke la kopirajto estas je la tre malsupre de la paĝo. 1003 01:00:06,760 --> 01:00:10,730 >> Granda. Jen ĉio mi volis montri al vi knaboj. 1004 01:00:10,730 --> 01:00:14,970 [Aplaŭdo] 1005 01:00:14,970 --> 01:00:18,950 Demandojn? 1006 01:00:18,950 --> 01:00:21,000 [CS50.TV]