1 00:00:00,000 --> 00:00:02,150 >> [Seminar] [Kohana: Isang Magaang PHP Framework] 2 00:00:02,150 --> 00:00:04,000 [Brandon Liu] [Harvard University] 3 00:00:04,000 --> 00:00:07,270 [Ito ay CS50.] [CS50.TV] 4 00:00:07,270 --> 00:00:09,130 >> Hi sa lahat. Ang pangalan ko ay Brandon. 5 00:00:09,130 --> 00:00:11,000 Ako ay isang junior dito sa kolehiyo paggawa ng computer science, at ngayon kami ay pagpunta sa makipag-usap tungkol sa 6 00:00:11,000 --> 00:00:14,460 Kohana, na isang PHP web development framework. 7 00:00:14,460 --> 00:00:17,260 Ngayon ay magiging isang live na coding seminar, 8 00:00:17,260 --> 00:00:21,000 kaya talaga Pupunta ako sa gastusin ng 5-10 minuto pagpapaliwanag kung ano ang Kohana ay, 9 00:00:21,000 --> 00:00:25,000 at pagkatapos ay literal na pupuntahan ko bumuo ng isang napaka-simpleng blog 10 00:00:25,000 --> 00:00:28,570 para sa iyo karapatan dito literal mula sa simula. 11 00:00:28,570 --> 00:00:32,229 Kami ay pagpunta upang i-download ang code mula sa Kohana website, 12 00:00:32,229 --> 00:00:35,000 at kami ay pagpunta upang simulan ang pagbuo ng isang blog, at sana ay magkakaroon ito maging napaka-nakapagtuturo, 13 00:00:35,000 --> 00:00:37,000 dahil makikita mo marahil siguro kukunin ko na gumawa ng ilang mga mali, 14 00:00:37,000 --> 00:00:39,000 at makikita mo sa akin mabawi mula sa kanila, 15 00:00:39,000 --> 00:00:42,040 o makikita mo ang aking proseso ng pag-iisip habang binubuo ko sa pamamagitan ng blog na ito, 16 00:00:42,040 --> 00:00:44,000 at samantala, kakailanganin mo ring maging pamilyar sa ang balangkas mismo. 17 00:00:44,000 --> 00:00:48,000 Sana makikita itong maging isang napaka-nakapagtuturo ehersisyo. 18 00:00:48,000 --> 00:00:51,370 >> Una, kung ano ang eksaktong ay isang framework? 19 00:00:51,370 --> 00:00:54,000 Kung na-pagkuha CS50 sa ngayon, hindi ka talaga nagtrabaho sa anumang 20 00:00:54,000 --> 00:00:56,000 Framework pa, at ang bagay ay na ito. 21 00:00:56,000 --> 00:01:00,000 Marahil nagawa kang 1 web development pset na, 22 00:01:00,000 --> 00:01:03,000 at sabihin nating patuloy kang bumuo ng mga website at panatilihin ang mga website ng gusali. 23 00:01:03,000 --> 00:01:05,000 Magsisimula ka upang makapansin ng ilang mga bagay. 24 00:01:05,000 --> 00:01:07,000 Ang unang bagay na mapapansin mo ay na marahil ginagawa mo ang parehong mga bagay 25 00:01:07,000 --> 00:01:09,150 nang paulit-ulit sa lahat ng oras, 26 00:01:09,150 --> 00:01:13,000 mga bagay tulad ng paglilinis ng data ng pag-input ng user, 27 00:01:13,000 --> 00:01:17,250 mga bagay tulad ng pag-aayos ng iyong mga file sa isang tiyak na paraan. 28 00:01:17,250 --> 00:01:19,000 Ang iba pang mga bagay na makikita mo marahil napansin rin ay na ang iyong code 29 00:01:19,000 --> 00:01:21,000 maaaring magsimulang upang maging napaka, napaka-walang kaayusan, 30 00:01:21,000 --> 00:01:24,000 at maaari mong iwanan ito maraming kalat at mayroon lamang isang napakahirap oras sa pagpapanatili ng ito, 31 00:01:24,000 --> 00:01:26,000 o maaari mong simulan upang buuin ang iyong code at ginagawa itong Modular 32 00:01:26,000 --> 00:01:28,510 sa ilang mga paraan upang gawin itong mas maintainable. 33 00:01:28,510 --> 00:01:31,020 >> Ito ay kung saan web Framework talaga dumating in 34 00:01:31,020 --> 00:01:33,680 Ang mga taong binuo ng maraming mga website, sinabi nila, 35 00:01:33,680 --> 00:01:35,820 "Hindi namin kailangang gawing muli ito bawat solong oras bumuo kami ng isang website." 36 00:01:35,820 --> 00:01:39,050 "Bakit hindi gumawa lang namin ang isang package na ang lahat ng mga bagay na ito para sa iyo 37 00:01:39,050 --> 00:01:41,250 bawat solong oras na gusto mong bumuo ng isang website? " 38 00:01:41,250 --> 00:01:43,030 At nang sa gayon ay kapag gumawa ka ng isang bagong website, 39 00:01:43,030 --> 00:01:45,880 tumutok ka lamang sa kung ano eksakto ang partikular na website ay tungkol sa. 40 00:01:45,880 --> 00:01:48,630 Hindi mo na kailangang ulitin ang lahat ng mga iba't-ibang mga configuration 41 00:01:48,630 --> 00:01:53,070 at paghihiwalay ng mga code at muling pagsusulat ng code 42 00:01:53,070 --> 00:01:56,180 na madalas ay mayroon kang gawin kapag nagsasagawa ka ng mga website. 43 00:01:56,180 --> 00:01:59,410 Ang ideya ay na nagbibigay-daan sa isang framework mong magsulat ng isang code mas mataas na antas 44 00:01:59,410 --> 00:02:01,030 nang hindi na kinakailangang mag-alala tungkol sa mga detalye ng mas mababang antas. 45 00:02:01,030 --> 00:02:03,670 Isang detalye mas mababang antas ay maaaring maging isang bagay tulad ng 46 00:02:03,670 --> 00:02:07,250 pagharap sa paglilinis ng data ng pag-input ng user. 47 00:02:07,250 --> 00:02:09,320 Iyan ay isang bagay na hindi dapat talaga kailangan mong mag-alala tungkol sa. 48 00:02:09,320 --> 00:02:12,370 Dapat mong tumuon sa kung ano ang iyong web paglalaan ay tungkol sa aktwal na. 49 00:02:12,370 --> 00:02:14,790 Ito inaalis ng maraming boilerplate na code. 50 00:02:14,790 --> 00:02:16,640 Ito ay isang architecture para sa iyong proyekto. 51 00:02:16,640 --> 00:02:18,680 >> Ang pinaka-popular na isa ay magiging Model-View-Controller, 52 00:02:18,680 --> 00:02:20,380 kung saan ako pupunta na makipag-usap tungkol sa isang segundo. 53 00:02:20,380 --> 00:02:22,790 At marami ng beses na ang mga Framework magsama ng isang hanay ng mga pamamaraan, 54 00:02:22,790 --> 00:02:25,750 mga panuntunan, at mga pinakamahusay na kasanayan para sa iyo upang gamitin ang 55 00:02:25,750 --> 00:02:28,190 kaya na kapag umaayon sa mga web framework 56 00:02:28,190 --> 00:02:30,050 kailangan mong isulat ang iyong code sa isang tiyak na paraan, 57 00:02:30,050 --> 00:02:32,430 at ito ay sa pangkalahatan ay isang napagkasunduang hanay ng mga prinsipyo 58 00:02:32,430 --> 00:02:34,290 sa pamamagitan ng ang komunidad na pangkalahatang tinatanggap na maging 59 00:02:34,290 --> 00:02:36,230 isang mahusay na paraan ng pagsulat code. 60 00:02:36,230 --> 00:02:38,260 Ginagawa itong mas maintainable ang iyong code, mas kapaki-pakinabang, 61 00:02:38,260 --> 00:02:40,030 kaya sa at iba pa. 62 00:02:40,030 --> 00:02:42,740 At sa wakas, ang bagay na gusto kong bigyang-diin ang tungkol sa Framework 63 00:02:42,740 --> 00:02:45,980 kumpara sa mga aklatan ay sa ideya na ito tungkol sa pagbabaligtad ng control, at ang bagay ay na ito. 64 00:02:45,980 --> 00:02:48,430 Ang pagkakaiba sa pagitan ng isang library at isang framework ay na may isang library 65 00:02:48,430 --> 00:02:51,990 na iyong isinusulat pa rin sa pangunahing programa, 66 00:02:51,990 --> 00:02:54,460 at tapos ka uri ng invoking ang library 67 00:02:54,460 --> 00:02:56,810 at pagtawag sa mga library upang gawin ang isang bagay para sa iyo. 68 00:02:56,810 --> 00:02:58,180 Ang pagkakaiba sa pagitan ng isang library at isang balangkas 69 00:02:58,180 --> 00:03:01,620 ay ang balangkas ay nagsisimula out kasama ang control, 70 00:03:01,620 --> 00:03:03,260 at ito invokes ang iyong code, 71 00:03:03,260 --> 00:03:06,190 sa gayon maaari mong isipin ito bilang - ito ang dahilan kung bakit ito ay tinatawag na isang framework - 72 00:03:06,190 --> 00:03:09,700 ang balangkas ay nagbibigay ito frame at istraktura para sa iyong code, 73 00:03:09,700 --> 00:03:11,320 at punan mo sa butas, 74 00:03:11,320 --> 00:03:13,990 at ito ay nagiging mas maliwanag sa isang segundo 75 00:03:13,990 --> 00:03:16,670 kapag nakita mo sa akin simulan na magsulat code sa loob ng konteksto ng mga balangkas. 76 00:03:16,670 --> 00:03:19,130 Makikita mo na ako ng pagpuno sa gaps, 77 00:03:19,130 --> 00:03:22,450 at sa balangkas ay uri ng pagkontrol ng lahat sa umaandar na piraso, 78 00:03:22,450 --> 00:03:27,420 at Kailangan ko bang ilagay ang mga piraso sa kanan lugar. 79 00:03:27,420 --> 00:03:29,360 >> Ngayon kami ay pagpunta sa makipag-usap tungkol sa Kohana, 80 00:03:29,360 --> 00:03:31,610 na kung saan ay isa sa maraming mga Framework PHP. 81 00:03:31,610 --> 00:03:34,550 May mga web Framework, at doon ay mga sa halos bawat solong wika, 82 00:03:34,550 --> 00:03:38,330 at ako pagpili Kohana dahil Kohana ay arguably 83 00:03:38,330 --> 00:03:43,250 at sa pangkalahatan ay kinikilala bilang ang pinakamadaling balangkas na PHP upang kunin. 84 00:03:43,250 --> 00:03:45,940 Ito ay ang pinaka-magaan ang timbang. 85 00:03:45,940 --> 00:03:48,470 May iba pang mga out doon na may maraming, maraming iba pang mga tampok, 86 00:03:48,470 --> 00:03:51,590 ngunit may posibilidad sila na maging mas mahirap i-pick up. 87 00:03:51,590 --> 00:03:54,920 At sa wakas, Kohana ay gumagamit ng arkitektura MVC. 88 00:03:54,920 --> 00:03:57,780 Ito ay sapat na magaan ang timbang na maaaring literal naming bumuo ng isang proyekto 89 00:03:57,780 --> 00:03:59,620 dito mismo sa harap ng iyong mga mata karapatan, at maaari mong medyo magkano 90 00:03:59,620 --> 00:04:02,780 sundin kasama medyo madali. 91 00:04:02,780 --> 00:04:04,420 >> Ano ang arkitektura MVC? 92 00:04:04,420 --> 00:04:06,540 Ito ay nakatayo para sa Model-View-Controller, 93 00:04:06,540 --> 00:04:09,560 at siguro kung sa tingin mo tungkol sa ang code nagsusulat ka sa ngayon 94 00:04:09,560 --> 00:04:11,280 para sa ilan sa iyong mga psets web development 95 00:04:11,280 --> 00:04:14,710 maaaring magawa upang makita ang ilan sa mga ito, ngunit karaniwan kapag nagsimula ka ng pagsulat 96 00:04:14,710 --> 00:04:16,500 isang mas kumplikadong mga web application, 97 00:04:16,500 --> 00:04:21,209 ang dibisyon sa pagitan ng mga 3 mga segment ay nagiging higit pa at higit pa maliwanag. 98 00:04:21,209 --> 00:04:26,740 Inilatag out ko ang MVC dito uri ng bilang isang stack, 99 00:04:26,740 --> 00:04:29,920 at madalas makikita mo marinig nagsasalita ang mga tao tungkol sa mga stack sa web development, 100 00:04:29,920 --> 00:04:33,760 at ito ay upang ilarawan ang ideya na ang 101 00:04:33,760 --> 00:04:37,510 bawat layer, talagang sinusubukan ng bawat bahagi upang makipag-ugnayan lamang 102 00:04:37,510 --> 00:04:40,750 sa pagitan ng 2 iba pang mga bahagi. 103 00:04:40,750 --> 00:04:44,550 May nag-a-access ang iyong website bilang isang client o isang browser. 104 00:04:44,550 --> 00:04:48,870 Sila ay nakikipag-ugnayan sa iyong programa sa pamamagitan ng code view. 105 00:04:48,870 --> 00:04:50,500 Nakikipag-ugnayan ang view ng code na may controller. 106 00:04:50,500 --> 00:04:52,400 Controller Ang nakikipag-ugnayan sa mga modelo, 107 00:04:52,400 --> 00:04:55,090 at ang modelo nakikipag-ugnayan sa mga database ng SQL. 108 00:04:55,090 --> 00:04:59,670 At walang hopping sa pagitan ng kung isulat mo nang maayos ang iyong code. 109 00:04:59,670 --> 00:05:01,670 >> Ano ang mga bagay na ito gawin? 110 00:05:01,670 --> 00:05:06,020 Ang modelo mahalagang ay ang piraso ng code na deal sa iyong data. 111 00:05:06,020 --> 00:05:09,100 Anumang bagay na deal sa iyong database, na may mga bagay na ini-imbak mo, 112 00:05:09,100 --> 00:05:11,280 o pagbawi ng mga bagay sa database, 113 00:05:11,280 --> 00:05:13,450 na lahat ng hinahawakan ng mga modelo. 114 00:05:13,450 --> 00:05:15,290 Siguro mayroon kang mga bagay sa iyong database. 115 00:05:15,290 --> 00:05:17,700 Kami ay pagpunta upang lumikha ng isang modelo na kinakailangang gawin sa mga post, 116 00:05:17,700 --> 00:05:19,760 kaya isang post ay maaaring magkaroon ng ilang mga katangian dito. 117 00:05:19,760 --> 00:05:23,900 Maaari kang magkaroon ng mga pag-andar sa paligid pag-iimbak ng mga post o pagbawi ng mga post 118 00:05:23,900 --> 00:05:26,270 o pini-filter ang mga post at iba pa at iba pa, 119 00:05:26,270 --> 00:05:28,880 at iyon ang lahat ng code na hinahawakan ng mga modelo. 120 00:05:28,880 --> 00:05:31,780 Controller ang uri ng application logic, 121 00:05:31,780 --> 00:05:37,910 at maraming iba't ibang mga bagay na maaari pumunta sa application ng logic. 122 00:05:37,910 --> 00:05:39,790 Kung ikaw ay pakikipag-usap sa isang iba't ibang mga API, 123 00:05:39,790 --> 00:05:42,310 na maaaring maging kung saan ka pagharap sa mga application logic. 124 00:05:42,310 --> 00:05:47,990 Kung sinusubukan mong magkaroon upang dalhin sa data mula sa maraming iba't ibang mga modelo 125 00:05:47,990 --> 00:05:51,540 at kailangang pagsamahin ang mga ito sa ilang mga paraan, na madalas ay maaaring panghahawakan ng controller. 126 00:05:51,540 --> 00:05:53,820 Halimbawa, sa Facebook, kung kaibigan mo ang isang tao, 127 00:05:53,820 --> 00:05:58,500 pagkatapos ay marahil na gawa ng pagtaguyod ng kaugnayan na 128 00:05:58,500 --> 00:06:00,490 maaaring tapos na sa pamamagitan ng controller. 129 00:06:00,490 --> 00:06:04,350 >> At sa wakas, ang view ay ang code na pagbuo ng kung ano ang iyong aktwal na makita. 130 00:06:04,350 --> 00:06:07,410 Ang isang pulutong ng mga oras sa tingin ko sa CS50 psets 131 00:06:07,410 --> 00:06:10,050 sila ay hindi talagang hinihikayat ka guys upang paghiwalayin ang 3 mga bagay. 132 00:06:10,050 --> 00:06:12,430 Makikita mo marahil mayroon kung saan ito malaki, mahaba ang file sa tuktok 133 00:06:12,430 --> 00:06:15,130 kang gumawa ng ilang mga SQL query at marahil gumawa ng ilang processing 134 00:06:15,130 --> 00:06:17,020 sa ang data na iyong nakuha mula sa database, 135 00:06:17,020 --> 00:06:19,370 at pagkatapos ay mayroon kang lahat ng iyong HTML sa ibaba. 136 00:06:19,370 --> 00:06:22,840 At maaari mong makita na bilang lumikha ka ng higit pa at higit pang mga pahina 137 00:06:22,840 --> 00:06:25,790 na kayo ay pagpunta sa may ilang mga code sa pag-uulit, at din, 138 00:06:25,790 --> 00:06:29,600 ang bagay ay ang iyong file ay makakakuha ng talagang malaki at mahaba 139 00:06:29,600 --> 00:06:32,370 at magiging mahirap gamitin upang pamahalaan. 140 00:06:32,370 --> 00:06:34,500 Ang dahilan kung bakit MVC ay kaya mahusay itinuturing 141 00:06:34,500 --> 00:06:36,120 ay para sa isang bilang ng mga kadahilanan. 142 00:06:36,120 --> 00:06:38,110 Ang unang bagay ay isang bagay na tinatawag na paghihiwalay ng alalahanin 143 00:06:38,110 --> 00:06:40,370 kung saan ay ang ideya na kapag mayroon kang - 144 00:06:40,370 --> 00:06:43,520 Perpekto ang 1 piraso ng code ay dapat gawin 1 bagay at gawin ito talagang mahusay, 145 00:06:43,520 --> 00:06:47,210 at hindi mo dapat pagsamahin ang mga piraso ng code na gawin disparate mga bagay. 146 00:06:47,210 --> 00:06:49,230 Halimbawa, tingnan ang code at code ng modelo, 147 00:06:49,230 --> 00:06:51,040 sila ay hindi talagang ay kailangang may kaugnayan. 148 00:06:51,040 --> 00:06:53,290 Hindi nila kailangang maging sa parehong file, kaya kapag maaari mong, ihiwalay ang mga ito out 149 00:06:53,290 --> 00:06:55,300 kaya napakadali upang mapanatili. 150 00:06:55,300 --> 00:06:57,130 >> Ang iba pang mga bagay ay ang code sa muling paggamit. 151 00:06:57,130 --> 00:06:59,770 Maaari mong mahanap ang iyong sarili sa pagsusulat sa parehong query sa SQL o paggawa 152 00:06:59,770 --> 00:07:03,060 katulad na mga query na maaaring lumilipad ang isip sa 1 function, 153 00:07:03,060 --> 00:07:05,440 at iyon ang ideya sa likod ng mga modelo at controllers, 154 00:07:05,440 --> 00:07:09,690 nagkakaproblema ito sa isang hiwalay na pag-andar na maaari mong muling gamitin sa iba't-ibang lugar sa iyong proyekto. 155 00:07:09,690 --> 00:07:12,420 At sa wakas, na nakatali sa drying ang iyong code, 156 00:07:12,420 --> 00:07:14,700 o hindi na paulit-ulit ang iyong sarili, huwag ulitin ang iyong sarili. 157 00:07:14,700 --> 00:07:18,090 Ito ay napaka maaaring maunawaan sa pag-develop. 158 00:07:18,090 --> 00:07:20,110 Sa tuwing mo, hindi mo gustong upang ulitin ang iyong sarili, dahil kung ulitin mo ang iyong sarili, 159 00:07:20,760 --> 00:07:23,400  ito ay mas mahal upang mapanatili. 160 00:07:23,400 --> 00:07:26,040 Kung nais mong baguhin ang 1 bagay, kailangan mong baguhin ito sa lahat ng dako, 161 00:07:26,040 --> 00:07:30,230 at na humahantong sa mga bug, at ito ay kasindak-sindak. 162 00:07:30,230 --> 00:07:32,010 >> Lahat ng karapatan. 163 00:07:32,010 --> 00:07:37,270 Sa lahat ng mga katanungan sa ngayon tungkol sa Kohana? 164 00:07:37,270 --> 00:07:39,200 Mahusay. 165 00:07:39,200 --> 00:07:42,300 Ngayon kami ay pagpunta sa sumisid sa live na coding session, 166 00:07:42,300 --> 00:07:48,050 at sana lahat ng bagay ay tumatakbo nang maayos. 167 00:07:57,200 --> 00:08:00,050 Ako ay pagpunta sa isa lamang bumuo ng website na ito 168 00:08:00,050 --> 00:08:03,910 sa isa sa aking mga remote na server, at na paraan kung paano ka guys maaari ring 169 00:08:03,910 --> 00:08:06,310 tingnan ang website at i-access sa website, 170 00:08:06,310 --> 00:08:10,990 at din ang kapaligiran ay mas mahusay na-configure kaysa sa aking remote machine, 171 00:08:10,990 --> 00:08:14,580 dahil ito ay tumatakbo sa Linux sa halip ng OS X. 172 00:08:14,580 --> 00:08:16,260 Literal na Kami ay pagpunta sa simulan. 173 00:08:16,260 --> 00:08:18,110 KohanaFramework.org. 174 00:08:18,110 --> 00:08:21,350 Pupunta ako upang i-download ang code mula sa website. 175 00:08:21,350 --> 00:08:24,610 Pupunta ako upang kopyahin ang address ng link, 176 00:08:24,610 --> 00:08:29,770 pumunta sa aking server, i-download ito, 177 00:08:29,770 --> 00:08:33,000 at pupuntahan ko i-extract ito. 178 00:08:38,330 --> 00:08:45,710 >> [Mag-aaral] Ano ang pinakamalaking maaari mong gawin ang teksto? 179 00:08:45,710 --> 00:08:47,330 [Brandon Liu] Iyan ba ang mas mainam? 180 00:08:47,330 --> 00:08:50,070 [Mag-aaral] Iyan ba ang maaaring gawin? >> [Brandon Liu] Oo, na fine. 181 00:08:50,070 --> 00:08:54,500 Download ko ng ZIP file at unzipped na sa isang direktoryo na tinatawag na Kohana, 182 00:08:54,500 --> 00:08:58,820 at kami ay pagpunta sa palitan ang pangalan na CS50-Kohana, 183 00:08:58,820 --> 00:09:01,140 at sabihin pumunta in 184 00:09:01,140 --> 00:09:03,610 Kahanga-hanga. 185 00:09:03,610 --> 00:09:06,870 Dito mo makikita ang isang bungkos ng iba't ibang mga file. 186 00:09:06,870 --> 00:09:10,140 Karamihan sa inyo ay maaaring balewalain - lubos hindi pagpunta sa pumunta sa pamamagitan ng bawat solong file na in dito 187 00:09:10,140 --> 00:09:13,130 dahil sa aming mga hadlang sa oras, 188 00:09:13,130 --> 00:09:16,310 ngunit sa pangkalahatan kapag nag-install ka Kohana, ang unang bagay na gagawin mo 189 00:09:16,310 --> 00:09:23,210 ay kang pumunta sa direktoryo, 190 00:09:23,210 --> 00:09:26,050 at makikita mo talaga gawin ang ilang mga pagsubok na kapaligiran at watnat 191 00:09:26,050 --> 00:09:28,640 upang siguraduhin na ang iyong kapaligiran ay wastong itatakda upang patakbuhin ang Kohana 192 00:09:28,640 --> 00:09:31,450 at tiyakin na ang lahat ng bagay ay ang lahat ng karapatan. 193 00:09:31,450 --> 00:09:35,510 Maaari mong makita ang pinaka-bagay na lumipas, ngunit sa pangkalahatan ay palagi kang makatagpo ng mga ito problema 1 194 00:09:35,510 --> 00:09:38,180 kung saan ito complains na ang ilang mga direktoryo ay hindi writable, 195 00:09:38,180 --> 00:09:40,410 at iyon ang dahilan sa ilang mga pahintulot. 196 00:09:40,410 --> 00:09:43,080 Hindi ko alam kung magkano ang iyong guys na natutunan ang tungkol sa mga pahintulot ng file sa CS50, 197 00:09:43,080 --> 00:09:47,920 ngunit kung gagawin mo web development, ikaw ay pagpunta upang tumakbo sa ang isyu na ito ng maraming. 198 00:09:47,920 --> 00:09:58,340 Pupunta ako upang gawin itong writable 199 00:09:58,340 --> 00:10:03,390 at sa tingin ko ay mayroon din ako sa - doon kami pumunta. 200 00:10:03,390 --> 00:10:07,040 >> Okay, kaya ngayon maaari mong makita ang lahat ng bagay lumipas, 201 00:10:07,040 --> 00:10:10,000 at ngayon sasabihin ito sa iyo na baguhin ang pangalan ng install.php file. 202 00:10:10,000 --> 00:10:15,630 Pupunta ako upang ilipat ang install.php file upang installed.php, 203 00:10:15,630 --> 00:10:19,610 at ngayon kung i-refresh ko, 204 00:10:19,610 --> 00:10:22,810 nagbibigay ito sa akin ang ilang error, at ito ay kung saan nagmumula ang pag-debug in 205 00:10:22,810 --> 00:10:25,610 Ito ay kung saan maaari mong makita kung ano ang aktwal na pagpunta sa mangyari. 206 00:10:25,610 --> 00:10:28,460 Bagay ay, sa pamamagitan ng default, Kohana Ipinagpapalagay na 207 00:10:28,460 --> 00:10:31,480 iyong proyekto ay nasa root directory ng iyong domain, 208 00:10:31,480 --> 00:10:35,920 kaya umaasa mong maging sa demo.brandonkliu.com. 209 00:10:35,920 --> 00:10:37,540 Mayroon kaming upang sabihin dito na ito ay nasa isang subfolder talaga. 210 00:10:37,540 --> 00:10:39,820 Ito ay sa isang subfolder na tinatawag CS50 Kohana. 211 00:10:39,820 --> 00:10:42,640 Bagay ay, ito ay misinterpreting CS50-Kohana 212 00:10:42,640 --> 00:10:45,680 bilang ibang bagay, na Ipapaliwanag ko sa iyo sa isang segundo. 213 00:10:45,680 --> 00:10:49,910 Ngunit dapat kong sabihin sa iyo na ang isang bagay na na inaasahan. 214 00:10:49,910 --> 00:10:53,700 Ano kami ay pagpunta sa gawin ay kami ay pagpunta sa pumunta sa folder na ito na tinatawag na bootstrap.php, 215 00:10:53,700 --> 00:10:59,260 kung saan ay ang configuration ng folder kung saan ng maraming iba't ibang mga bagay na naka-set up. 216 00:10:59,260 --> 00:11:01,570 Buksan ko na up. 217 00:11:01,570 --> 00:11:09,790 Pagkatapos siguro isa sa mga unang bagay na nanaisin kong gawin ay baguhin ang time zone. 218 00:11:09,790 --> 00:11:13,910 >> At pagkatapos ay sabihin makita. 219 00:11:13,910 --> 00:11:15,180 Aha! Kanan dito. 220 00:11:15,180 --> 00:11:18,690 May ng grupo ng mga iba't ibang mga kasabihan sa configuration sa dito, 221 00:11:18,690 --> 00:11:21,700 ngunit ang isa Naghahanap ako ay bagay ito na tinatawag na base URL, 222 00:11:21,700 --> 00:11:24,570 at sa pamamagitan ng default na nakukuha ko itakda ito upang Kohana, 223 00:11:24,570 --> 00:11:29,020 pero pupuntahan ko babaguhin na sa CS50-Kohana, 224 00:11:29,020 --> 00:11:32,880 at sa tingin ko na dapat itong ayusin. 225 00:11:32,880 --> 00:11:34,150 Oo, mahusay. 226 00:11:34,150 --> 00:11:39,530 Sa pamamagitan ng default, upang makita na ito ay gumagana, sinasabi nito, "Hello World." 227 00:11:39,530 --> 00:11:42,930 Saan mo na nanggaling? Paano mo makuha namin sa Hello World? 228 00:11:42,930 --> 00:11:47,640 Saan eksakto ay ang code na aktwal na sinulat iyon? 229 00:11:47,640 --> 00:11:50,240 Upang maunawaan na, makikita ba kitang ipakilala ito konsepto na tinatawag na routing. 230 00:11:50,240 --> 00:11:52,590 Pretty magkano ang lahat ng mga web Framework ay may konsepto na tinatawag na routing, 231 00:11:52,590 --> 00:11:57,230 kung saan ay ang piraso ng software na i-map sa isang tiyak na URL 232 00:11:57,230 --> 00:12:01,550 sa isang tiyak na piraso ng code sa loob ng iyong balangkas. 233 00:12:01,550 --> 00:12:07,510 Halimbawa, kung mayroon kang ilang mga URL at pumunta ka sa ilang mga URL tulad ng foo.com / blog / lahat 234 00:12:07,510 --> 00:12:11,170 pagkatapos ay kung ano ang balangkas ay pagpunta sa gawin - o hindi bababa sa kung ano Kohana ay pagpunta sa gawin - 235 00:12:11,170 --> 00:12:15,540 ay itong ibang mapupuntahan upang mahanap ang isang klase na tinatawag na controller blog, 236 00:12:15,540 --> 00:12:18,720 at ito ay pagpunta upang patakbuhin ang pag-andar na may pangalang pagkilos lahat. 237 00:12:18,720 --> 00:12:20,160 Alam ko ako ng pakikipag-usap tungkol sa klase at pag-andar, 238 00:12:20,160 --> 00:12:23,860 at alam ko mo guys na hindi sakop ng mga klase at mga function 239 00:12:23,860 --> 00:12:26,470 sa CS50 pa, ngunit sa ngayon, 240 00:12:26,470 --> 00:12:29,800 maaari mong isipin ang mga klase bilang isang pangkat lamang ng mga pag-andar, 241 00:12:29,800 --> 00:12:32,900 isang paraan ng pagpapangkat ng mga pag-andar nang sama-sama. 242 00:12:32,900 --> 00:12:37,690 Iyon lang talaga ang lahat ng kailangan mong malaman. 243 00:12:37,690 --> 00:12:43,120 >> Ngayon kung tinitingnan namin ang aming istraktura ng folder, 244 00:12:43,120 --> 00:12:47,110 sa loob ng folder ng application doon ay isa pang folder na tinatawag na mga klase, 245 00:12:47,110 --> 00:12:49,200 at ang iba pang mga folder ay tinatawag na Controller at Model. 246 00:12:49,200 --> 00:12:52,530 Kung tumingin ka sa loob ng Controller folder, 247 00:12:52,530 --> 00:12:56,330 makikita natin na mayroong isang file na tinatawag Maligayang pagdating, 248 00:12:56,330 --> 00:13:00,370 at maaari mong makita dito ay isang klase na tinatawag Controller Maligayang pagdating, 249 00:13:00,370 --> 00:13:02,340 at doon ay isang katangian na tinatawag Index Action, 250 00:13:02,340 --> 00:13:06,360 at kung ano ang ginagawa nito ay ito nagtatakda ng katawan ng iyong tugon sa Hello World. 251 00:13:06,360 --> 00:13:08,730 Iyon ay kung saan ang code ay nakasulat. 252 00:13:08,730 --> 00:13:11,610 Ang iba pang mga tanong, mahusay, ako ay hindi pumunta sa 253 00:13:11,610 --> 00:13:13,680 blah, blah, blah, / maligayang pagdating / index. 254 00:13:13,680 --> 00:13:16,250 Paano mo tapusin ko up dito? 255 00:13:16,250 --> 00:13:20,410 Well, na lamang dahil 256 00:13:20,410 --> 00:13:22,410 dito sa ibaba ng aming bootstrap file 257 00:13:22,410 --> 00:13:24,550 kung saan namin-set ang aming mga ruta 258 00:13:24,550 --> 00:13:26,570 maaari mong makita na itakda mga ito ng ilang mga default para sa iyo. 259 00:13:26,570 --> 00:13:28,990 Ang default na controller ay Maligayang pagdating. Ang default na pagkilos ay Index. 260 00:13:28,990 --> 00:13:31,600 Iyon ay kung bakit kapag inilalagay namin ang walang anuman sa doon awtomatiko itong nagpunta sa controller Maligayang pagdating 261 00:13:31,600 --> 00:13:33,940 at ang index ng Action. 262 00:13:33,940 --> 00:13:37,460 >> Lahat magkaroon ng kahulugan sa ngayon? 263 00:13:37,460 --> 00:13:40,850 Ngayon, maaari mong gawin nang higit pa kaysa pumunta lamang sa Controller 264 00:13:40,850 --> 00:13:43,670 at isang tiyak na aksyon. 265 00:13:43,670 --> 00:13:48,480 Maaari mo ring pumasa sa mga parameter sa controller. 266 00:13:48,480 --> 00:13:56,390 Tulad ng isang halimbawa, 267 00:13:56,390 --> 00:14:04,070 Pupunta ako sa magdagdag ng isa pang pagkilos sa ito controller upang ipakita sa iyo. 268 00:14:04,070 --> 00:14:09,130 Hayaan tawagan ni ang pagkilos na ito Echo, dahil ito ay pagpunta sa sabihin sa iyo ang kahit anong bigyan mo ito, 269 00:14:09,130 --> 00:14:17,510 at kaya talaga Pupunta ako sa grab 270 00:14:17,510 --> 00:14:20,960 isang parameter na pupuntahan ay ipapadala sa pamamagitan ko upang ang route ng programa, 271 00:14:20,960 --> 00:14:24,440 at bilang maaari mong makita dito, 272 00:14:24,440 --> 00:14:28,440 ang linyang ito dito mismo, maaari mong makita na 273 00:14:28,440 --> 00:14:31,270 ito talaga ay nangangahulugan na mayroon kang controller, at mayroon kang isang /, 274 00:14:31,270 --> 00:14:33,480 at mayroon kang aksyon, at mayroon kang isa pang /, 275 00:14:33,480 --> 00:14:39,140 at na pupuntahan maging mga parameter, at dahil mayroon kaming ang pangalang ID 276 00:14:39,140 --> 00:14:42,450 sa loob ng anggulo bracket, na nangangahulugan na aming pagbibigay ng pangalan ng parameter ID na ito. 277 00:14:42,450 --> 00:14:45,490 Mamaya sa aking controller code kung gusto kong i-grab ang isang hold ng na parameter, 278 00:14:45,490 --> 00:14:51,790 Maaari ko bang gamitin ang code na sinulat ko, hanapin ang parameter na may pangalang ID. 279 00:14:51,790 --> 00:14:59,290 Iyon ay kung ano ang aking ginawa dito, at ako pagpunta sa bumalik at sabihin, 280 00:14:59,290 --> 00:15:07,090 "Sinabi mo" na iyon. 281 00:15:07,090 --> 00:15:10,760 At kaya kung ngayon pumunta ako sa aming website, 282 00:15:10,760 --> 00:15:19,550 Pumunta ako sa cs50-kohana/welcome/echo/Helloooo-- 283 00:15:19,550 --> 00:15:21,420 oh, na tama. 284 00:15:21,420 --> 00:15:23,930 May 1 hakbang ko kaliwa out. 285 00:15:23,930 --> 00:15:27,020 Ito ay bahagi ng mga live na coding ideya. 286 00:15:27,020 --> 00:15:36,100 >> Narito ang 1 bagay. Ni makita Hayaan. 287 00:15:36,100 --> 00:15:38,870 Kaya normal sa pamamagitan ng default na may maraming mga mga application sa web 288 00:15:38,870 --> 00:15:42,820 mayroon kang na isama ito index.php bagay sa iyong URL, 289 00:15:42,820 --> 00:15:46,410 dahil ang ideya ay index.php ay uri ng entry point 290 00:15:46,410 --> 00:15:48,250 ng iyong application, ngunit siyempre, 291 00:15:48,250 --> 00:15:50,110 na uri ng mga nakakainis na magkaroon. 292 00:15:50,110 --> 00:15:53,790 Hindi mo nais na magkaroon index.php lilitaw sa iyong URL, 293 00:15:53,790 --> 00:15:56,080 at halos bawat web framework sa labas ng kahon 294 00:15:56,080 --> 00:15:58,440 May problemang ito index.php, 295 00:15:58,440 --> 00:16:03,370 at sa gayon mayroon kang gumawa ng ilang mga hakbang upang magagawang alisin ang mga iyon. 296 00:16:03,370 --> 00:16:07,540 At kaya sa kasong ito, 297 00:16:07,540 --> 00:16:11,450 kung ano kami ay pagpunta sa gawin ay kami ay pagpunta sa gumamit ng isang file na tinatawag na. htaccess, 298 00:16:11,450 --> 00:16:13,900 at ito ay isang bagay na tiyak sa Apache web server, 299 00:16:13,900 --> 00:16:16,290 at maaari itong gumawa ng mga bagay tulad ng pagsulat na muli ng URL 300 00:16:16,290 --> 00:16:19,350 at mga redirect URL at iba pa at iba pa, 301 00:16:19,350 --> 00:16:24,280 at Kohana ay sapat na magaling na magbigay ng isang template. htaccess file na maaari naming gamitin. 302 00:16:24,280 --> 00:16:28,300 >> Tulad ng iyong nakikita, mayroong isang file na may tinatawag na example.htaccess, 303 00:16:28,300 --> 00:16:33,410 at kami ay pagpunta sa kopyahin na sa. htaccess. 304 00:16:33,410 --> 00:16:36,950 Pupunta ako upang buksan ito at i-edit ito, 305 00:16:36,950 --> 00:16:40,840 at talaga ginagawa nito ng grupo ng mga iba't ibang mga bagay. 306 00:16:40,840 --> 00:16:45,320 Ang pangunahing linya baka gusto upang tumingin sa ay dito mismo. 307 00:16:45,320 --> 00:16:49,840 Ang ideya ay na ito Nagtatakda up ng isang panuntunan na nagsasabing, 308 00:16:49,840 --> 00:16:56,400 "Okay, kahit anong type ka sa, i-prepend index.php upang iyon." 309 00:16:56,400 --> 00:16:58,710 Maaari mong makita iyon. 310 00:16:58,710 --> 00:17:00,370 Ang. * Nakatayo para sa anumang bagay, tumugma sa anumang bagay, 311 00:17:00,370 --> 00:17:03,300 at pagkatapos ay ang ikalawang bahagi ay index.php / $ 0, 312 00:17:03,300 --> 00:17:07,410 at $ 0 ay tumutukoy sa kahit anong ay tumugma sa dati. 313 00:17:07,410 --> 00:17:09,500 Ba na magkaroon ng kahulugan? 314 00:17:09,500 --> 00:17:12,190 Ngunit ang talagang key bagay na gusto kong baguhin ay baguhin ito sa pagsulat na muli base, 315 00:17:12,190 --> 00:17:14,300 kung saan ay ang URL base. 316 00:17:14,300 --> 00:17:17,780 Ito uri ng mga Ipinagpapalagay kung saan nagtatrabaho ka mula sa. 317 00:17:17,780 --> 00:17:22,560 Pupunta ako sa magdagdag CS50 Kohana iyon, 318 00:17:22,560 --> 00:17:26,530 at na paraan ngayon kung alisin ko ang index.php, 319 00:17:26,530 --> 00:17:32,110 ito ay gagana, at pupuntahan ko magdagdag ng ilang mga numero 320 00:17:32,110 --> 00:17:36,380 upang ipakita sa iyo na ito sa katunayan ginawang trabaho. 321 00:17:36,380 --> 00:17:38,130 Magaling. 322 00:17:38,130 --> 00:17:40,260 >> Ang anumang mga katanungan sa ngayon? 323 00:17:40,260 --> 00:17:42,300 [Mag-aaral] Paano ito malaman upang gawin ang mga 123? 324 00:17:42,300 --> 00:17:44,120 Iyan ba ay argumento? 325 00:17:44,120 --> 00:17:46,560 Mismong. Maaari mong isipin na ito tulad lamang ng isang argumento. 326 00:17:46,560 --> 00:17:52,410 Ngunit ang kakaiba bagay, bagaman, ay na ang paraan ng Kohana ginagawa nito 327 00:17:52,410 --> 00:17:54,910 Hindi nila gagawin ito nang eksakto tulad ng isang argumento. 328 00:17:54,910 --> 00:17:56,930 Mayroon kang i-grab ito tulad nito. 329 00:17:56,930 --> 00:18:01,030 Mayroon kang i-grab ang mga kahilingan sa bagay at hilingin ang parameter na may pangalang ID, 330 00:18:01,030 --> 00:18:03,240 at na pangalan ID ay mula na bootstrap file 331 00:18:03,240 --> 00:18:06,990 na nagpakita ako nang mas maaga, at ang pangalan ng ID noon ay sa mga anggulo bracket, 332 00:18:06,990 --> 00:18:11,580 at iyon ang kung paano mo grab ang mga parameter. 333 00:18:11,580 --> 00:18:14,010 Kahanga-hanga. 334 00:18:14,010 --> 00:18:17,550 Anumang iba pang mga katanungan? 335 00:18:17,550 --> 00:18:20,500 Tulad ng sinabi ko, controllers, pangasiwaan nila application logic, 336 00:18:20,500 --> 00:18:22,980 kaya na 1 halimbawa kung saan maaari mong makita that's - 337 00:18:22,980 --> 00:18:24,830 masyado nang basic, ngunit ito ay pa rin application logic, 338 00:18:24,830 --> 00:18:27,980 ang ideya ng daklot ang parameter at ang paglikha ng bagong string 339 00:18:27,980 --> 00:18:31,920 na nagsasabing, "Sinabi mo blah," at pagkatapos pagsigam na pabalik sa iyo. 340 00:18:31,920 --> 00:18:34,030 At sa pangkalahatan ay kung ano ang ginagawa mo ay kang lumikha ng iba't ibang mga controllers. 341 00:18:34,030 --> 00:18:36,450 Kang lumikha ng hiwalay na controllers para sa iba't ibang mga bahagi ng iyong website. 342 00:18:36,450 --> 00:18:38,160 >> Ngayon kami ay pagpunta sa gumawa ng isang napaka-simpleng website, 343 00:18:38,160 --> 00:18:40,420 at ito ay pagpunta sa maging isang napaka-basic na blog. 344 00:18:40,420 --> 00:18:43,780 Kami ay pagpunta upang gumawa ng bagong controller para lamang sa ang mga post sa isang blog. 345 00:18:43,780 --> 00:18:47,060 Ngunit pagkatapos ay kung ako ay upang magdagdag din ng mga komento sa mga post ng blog, 346 00:18:47,060 --> 00:18:50,140 pagkatapos Gusto ko nais marahil upang gumawa ng bagong controller para sa mga komento. 347 00:18:50,140 --> 00:18:53,380 Kung Nais kong magdagdag ng mga gumagamit, marahil Gusto ko magdagdag ng bagong controller para sa mga gumagamit na iyon, 348 00:18:53,380 --> 00:18:57,000 at sa pangkalahatan, ang ideya ay na sa tuwing mayroon ka ng isang bagong modelo, 349 00:18:57,000 --> 00:18:59,630 isang bagong data sa bagay na kayo ay pagharap sa, 350 00:18:59,630 --> 00:19:02,970 mayroon kang isang solong controller para sa data na iyon sa bagay. 351 00:19:02,970 --> 00:19:04,370 Ngayon kami ay lamang pagpunta upang gumana sa 1 data sa bagay, 352 00:19:04,370 --> 00:19:06,250 at na pupuntahan maging post, 353 00:19:06,250 --> 00:19:08,710 at din maaari mong tingin ng mga bagay na data bilang naaayon sa mga talahanayan. 354 00:19:08,710 --> 00:19:12,160 Sa pangkalahatan ng bawat talahanayan ay tumutugma sa 1 uri ng data object, 355 00:19:12,160 --> 00:19:15,160 kaya ang post na talahanayan ay magkakaroon ng 1 modelo post, 356 00:19:15,160 --> 00:19:18,230 na kung saan ay magkakaroon ng 1 post controller naaayon sa na, 357 00:19:18,230 --> 00:19:22,190 at ang parehong para sa mga komento, ang parehong para sa mga gumagamit, at iba pa at iba pa. 358 00:19:22,190 --> 00:19:24,070 At iyon ang isang pangkalahatang pamantayan. 359 00:19:24,070 --> 00:19:27,460 Mayroong pagpunta sa maging espesyal na mga kaso kung saan maaari kang mag-iba mula sa na, 360 00:19:27,460 --> 00:19:29,300 ngunit 90% ng oras na kung ano ang iyong pagpunta sa ginagawa, 361 00:19:29,300 --> 00:19:32,810 at kukunin ko na ipakita sa iyo na kung ano ang pagpunta naming ginagawa ngayon. 362 00:19:32,810 --> 00:19:35,490 1 pang konsepto bago namin sumisid pabalik sa code, 363 00:19:35,490 --> 00:19:37,710 sa ideyang ito ng pamanggit pagmamapa bagay. 364 00:19:37,710 --> 00:19:41,200 >> Mo guys pa nagagawa ang isang web-unlad pset, 365 00:19:41,200 --> 00:19:43,820 at nakita mo na gumawa ka ng isang SQL query, 366 00:19:43,820 --> 00:19:46,510 at kahit anong ito ay nagbalik sa iyo ang mga hilera. 367 00:19:46,510 --> 00:19:50,040 Makakakuha ka ng mga hilera, at sa iyo index ang mga ito sa pamamagitan ng ilang mga pangalan, 368 00:19:50,040 --> 00:19:55,480 ang pangalan ng haligi at ng talahanayan, 369 00:19:55,480 --> 00:19:57,630 at iyon ang kung paano gumagana sa iyo ng ito, 370 00:19:57,630 --> 00:19:59,290 at maaari itong maging isang bit pahirap. 371 00:19:59,290 --> 00:20:01,810 Ngunit tangi sa roon, kung mayroon kang mga relasyon sa loob ng iyong database, 372 00:20:01,810 --> 00:20:05,280 tulad halimbawa kung mayroon akong mga komento at mga post, 373 00:20:05,280 --> 00:20:11,240 pagkatapos siguro gusto kong i-grab ang magulang post ng isang komento. 374 00:20:11,240 --> 00:20:14,350 Kung gagamitin ko lang ang mga hilera sa SQL, pagkatapos ang lahat ng maaari kong makuha ang ID 375 00:20:14,350 --> 00:20:19,310 ng mga magulang ng post at hindi ang aktwal na post mismo. 376 00:20:19,310 --> 00:20:21,680 Ngunit kapag kami ay coding, kung ano talaga namin nais ay upang aktwal na-grab 377 00:20:21,680 --> 00:20:23,550  mag-post ng mga magulang mismo kung minsan. 378 00:20:23,550 --> 00:20:25,730 Ano sa bagay na pamanggit pagma-map ang ginagawa ay 379 00:20:25,730 --> 00:20:29,480 tumatagal ang mga resulta ng query ng database 380 00:20:29,480 --> 00:20:32,420 at naglalagay ito sa mga bagay para sa iyo, na kung saan ay magkano nicer upang gumana sa 381 00:20:32,420 --> 00:20:34,770 kaysa plain array at mga hilera. 382 00:20:34,770 --> 00:20:37,550 >> Halimbawa, ngayon kapag mayroon akong isang komento marahil, 383 00:20:37,550 --> 00:20:40,900 at gusto kong i-grab magulang post nito, 384 00:20:40,900 --> 00:20:43,440 at marahil ko magkomento arrow post, 385 00:20:43,440 --> 00:20:45,230 pagkatapos ito ay aktwal na magbigay sa akin ang post na ito sa bagay na 386 00:20:45,230 --> 00:20:47,940 naaayon sa aktwal na post magulang, ang ilang mga hindi lamang ang ID, 387 00:20:47,940 --> 00:20:52,210 kung saan Gusto ko kung hindi man ay mayroon upang gamitin at gumawa ng isa pang SQL query sa grab ang post na ito, 388 00:20:52,210 --> 00:20:57,430 na kung saan ay masalimuot at hindi kailangan. 389 00:20:57,430 --> 00:21:01,840 At tangi sa roon, sa pamamagitan ng pagma-mapa ang lahat ng mga hilera ng data sa mga bagay, 390 00:21:01,840 --> 00:21:03,760 maaari mo ring ilakip ang higit pang mga pag-andar sa mga bagay, 391 00:21:03,760 --> 00:21:09,700 kaya halimbawa, usapan ako tungkol sa kung paano mga klase ay mahalagang mga pagpapangkat ng mga pag-andar. 392 00:21:09,700 --> 00:21:11,620 Maaari mong isipin na ito tulad na. 393 00:21:11,620 --> 00:21:15,290 Halimbawa, siguro Mayroon akong ang post na ito sa bagay, 394 00:21:15,290 --> 00:21:17,830 at marahil Gusto kong magkaroon ng ilang mga uri ng mga function na naka-attach sa ito 395 00:21:17,830 --> 00:21:20,300 na nagsasabi talaga sa akin ay kamakailan-post? 396 00:21:20,300 --> 00:21:23,570 Ay ito na nai-post sa loob ng nakaraang linggo, tama o mali? 397 00:21:23,570 --> 00:21:27,320 At iyon ang isang function maaari kong i-attach sa bagay na iyon, 398 00:21:27,320 --> 00:21:31,300 at ito ay talagang maginhawa upang magkaroon ito sa parehong lugar, 399 00:21:31,300 --> 00:21:33,820 at mayroong isang host ng iba't ibang mga pag-andar maaari kang lumikha 400 00:21:33,820 --> 00:21:37,990 para sa mga bagay na ito, at ito ay talagang maganda para makapag-ilakip ito sa isang klase, 401 00:21:37,990 --> 00:21:41,700 sa isang bagay, samantalang kung nagkaproblema ka lamang hilera na nanggagaling mula sa iyong database, 402 00:21:41,700 --> 00:21:43,790 pagkatapos ay hindi ka talaga maaaring maglakip ng anumang pagpapaandar sa na. 403 00:21:43,790 --> 00:21:47,850 Ito ay literal lamang ng data. 404 00:21:47,850 --> 00:21:50,550 Ang anumang mga katanungan tungkol na sa lahat? 405 00:21:50,550 --> 00:21:52,710 ORMs napaka-karaniwang mga web development, 406 00:21:52,710 --> 00:21:56,330 at mayroong maraming iba't ibang mga uri ng ORMs, 407 00:21:56,330 --> 00:21:58,450 at Kohana ay may sarili nitong ORM. 408 00:21:58,450 --> 00:22:05,050 Ito ay napaka basic, ngunit makakakuha ka ng isang lasa ng kung ano ang mukhang. 409 00:22:05,050 --> 00:22:08,780 >> Lumikha ng isang modelo para sa aming mga post sa blog Hayaan, 410 00:22:08,780 --> 00:22:12,350 at ang unang bagay na malinaw naman kailangan naming gawin ay upang lumikha ng isang aktwal na talahanayan 411 00:22:12,350 --> 00:22:16,680 sa loob ng aming database upang aktwal na mag-imbak ng aming data para sa mga post. 412 00:22:16,680 --> 00:22:19,260 Ang unang bagay na ako pagpunta sa gawin ay pumunta sa phpMyAdmin. 413 00:22:19,260 --> 00:22:21,410 Nakarating na guys ginamit phpMyAdmin bago? 414 00:22:21,410 --> 00:22:23,400 Okay, kasindak-sindak, kaya ka guys na alam kung ano iyon ay, 415 00:22:23,400 --> 00:22:32,200 at Pupunta ako sa lumikha ng isang bagong talahanayan na tinatawag na Kohana Post, 416 00:22:32,200 --> 00:22:37,820 at ito ay pagpunta sa maging talagang simple. 417 00:22:37,820 --> 00:22:40,190 Kukuha ako upang muling mag-log in 418 00:23:02,620 --> 00:23:04,640 Lahat kami ay pagpunta sa gawin ngayon ay mayroon ng isang may-akda at isang katawan, 419 00:23:04,640 --> 00:23:11,930 panatilihin lamang itong simple. 420 00:23:11,930 --> 00:23:15,620 Pupunta ako upang lumikha ng talahanayan na, 421 00:23:15,620 --> 00:23:19,620 at ngayon ay may lamang kami ng isang talahanayan na kumakatawan sa aming mga post 422 00:23:19,620 --> 00:23:23,370 may 2 field para sa aming mga may-akda at ang aming katawan. 423 00:23:23,370 --> 00:23:26,290 Ang iba pang mga bagay na ako pagpunta sa gawin ngayon ay 424 00:23:26,290 --> 00:23:29,820 i-configure ang aking mga web application kaya alam nito kung paano upang kumonekta sa database, 425 00:23:29,820 --> 00:23:31,950 at ito, muli, ay isang bagay na kailangan mong gawin sa lahat ng mga web application. 426 00:23:31,950 --> 00:23:34,790 Mayroon kang upang sabihin dito na ang user name at ang password 427 00:23:34,790 --> 00:23:36,990 at ang pangalan ng database at iba pa at iba pa 428 00:23:36,990 --> 00:23:40,000 upang malaman kung paano upang aktwal na kumonekta sa iyong database. 429 00:23:40,000 --> 00:23:58,710 >> Sa Kohana, mayroon kaming isang bagay na tinatawag na isang module database, 430 00:23:58,710 --> 00:24:02,690 at sa folder ng configuration mayroon kaming folder na ito na tinatawag na Database, 431 00:24:02,690 --> 00:24:07,330 at bilang maaari mong makita, mayroong isang bungkos ng mga setting mayroon kang magtakda dito 432 00:24:07,330 --> 00:24:09,860 upang sabihin dito kung ano ang mga user name at ang password 433 00:24:09,860 --> 00:24:13,110 para sa mga database ng sa gayon ay maaari ko talagang kumonekta doon. 434 00:24:13,110 --> 00:24:15,010 At dahil hindi ko nais ka guys upang aktwal na malaman 435 00:24:15,010 --> 00:24:17,190 ang user name at password ng aking database, 436 00:24:17,190 --> 00:24:23,840 Mayroon akong isang file kung saan itinakda ko na ang lahat ng ito up, at ako pagpunta sa kopyahin at ilagay ito sa paglipas ng. 437 00:24:33,080 --> 00:24:36,870 Kahanga-hanga. 438 00:24:36,870 --> 00:24:39,880 Okay. Sa tingin ko na ang lahat ng configuration kailangan kong gawin, 439 00:24:39,880 --> 00:24:41,070 ngunit sabihin makita. 440 00:24:41,070 --> 00:24:43,720 Patuloy kaming magsusumikap sa loob nito, at kung may isang bagay nag-crash, 441 00:24:43,720 --> 00:24:47,490 pagkatapos ay gagamitin namin ayusin ito. 442 00:24:47,490 --> 00:24:51,830 Ano pupuntahan ko magawa Ngayon ay Pupunta ako sa lumikha ng isang bagong controller. 443 00:24:51,830 --> 00:24:53,190 O kaya naman talaga, paumanhin. 444 00:24:53,190 --> 00:24:55,080 Una Mayroon akong lumikha ng isang bagong modelo. 445 00:24:55,080 --> 00:25:01,620 Kukunin ko lumikha ng isang bagong modelo na tinatawag na Post.php, 446 00:25:01,620 --> 00:25:12,440 at kung ano kami ay pagpunta sa gawin ay kami ay pagpunta sa tumawag ito klase Model_Post. 447 00:25:12,440 --> 00:25:15,390 Maging sa, ang ilang mga syntax-highlight 448 00:25:15,390 --> 00:25:19,750 at kaya kapag sinabi ko, "ay umaabot ORM," na talaga 449 00:25:19,750 --> 00:25:21,210 ilang higit pang mga object-oriented programming, 450 00:25:21,210 --> 00:25:23,340 na sa kasamaang-palad ka guys hindi pa natutunan sa CS50, 451 00:25:23,340 --> 00:25:25,290 subalit ito ay medyo madali upang kuhanin. 452 00:25:25,290 --> 00:25:27,950 Nagbibigay ito sa akin ang lahat ng ito labis na pag-andar na nauuna sa ito ORM package, 453 00:25:27,950 --> 00:25:31,120 at kaya nakukuha ko ng grupo ng mga dagdag na pag-andar at watnat nang libre, 454 00:25:31,120 --> 00:25:34,810 kung saan makikita mo ang isang bit ng sa isang segundo. 455 00:25:34,810 --> 00:25:37,670 >> Sa ngayon talaga ang lahat ng kailangan kong gawin ay lumikha class na ito. 456 00:25:37,670 --> 00:25:39,160 Hindi ko na kailangang gumawa ng anumang mga pag-andar o anumang bagay, 457 00:25:39,160 --> 00:25:41,770 ngunit Lumikha ako ng isang klase na kumakatawan sa talahanayan, 458 00:25:41,770 --> 00:25:44,140 at dahil pinahaba ko na ito ORM klase, 459 00:25:44,140 --> 00:25:51,080 Nakakuha ako ng grupo ng mga bagay para sa libre, kaya sa ngayon hindi mo kailangang magtakda ng kahit ano nang higit pa up. 460 00:25:51,080 --> 00:25:53,530 At ngayon kung ano pupuntahan ko lang gawin ay Pupunta ako sa lumikha ng isang bagong controller, 461 00:25:53,530 --> 00:25:58,480 kung saan ako pupunta para pangalanan blog.php, 462 00:25:58,480 --> 00:26:04,350 at ako pagpunta sa kopyahin sa ibabaw ng controller Maligayang pagdating 463 00:26:04,350 --> 00:26:11,950 kaya hindi ko na kailangang mag-type muli ang ilang mga bagay-bagay, 464 00:26:11,950 --> 00:26:20,720 at ngayon Kailangan ko bang palitan ang pangalan na ito. 465 00:26:20,720 --> 00:26:24,710 Ano pupuntahan ko gawin upang subukan upang tiyakin na ang lahat ng bagay ay gumagana out Ngayon, 466 00:26:24,710 --> 00:26:27,820 Pupunta ako sa grab ang unang post mula sa aking database 467 00:26:27,820 --> 00:26:32,680 at i-print ang katawan ng post sa screen. 468 00:26:32,680 --> 00:26:37,920 Upang gawin na kung ano pupuntahan ko gawin muna ay Pupunta ako upang i-save ang mga post 469 00:26:37,920 --> 00:26:48,770 sa isang variable kaya kung ano kami ay pagpunta sa gawin ay - 470 00:26:48,770 --> 00:26:52,090 sa Kohana kung ano ang ginagawa mo ay ang pag-grab ang post na ito sa bagay na 471 00:26:52,090 --> 00:26:55,380 ito ay uri ng pahirap, ngunit kailangan mong gawin ito bagay na tinatawag na ORM :: factory, 472 00:26:55,380 --> 00:26:57,750 at pagkatapos ay pumasa ka sa pangalan ng modelo na gusto mo, 473 00:26:57,750 --> 00:27:00,490 at ibinabalik ito ang ORM bagay na kumakatawan na modelo. 474 00:27:00,490 --> 00:27:04,860 At pagkatapos, tulad ng sinabi ko, kapag pahabain namin ang ORM bagay, 475 00:27:04,860 --> 00:27:07,320 makuha namin ang lahat ng mga pamamaraan na ito para sa libre, kaya halimbawa, 476 00:27:07,320 --> 00:27:09,200 makuha namin ang bagong function na tinatawag na "hanapin ang lahat," 477 00:27:09,200 --> 00:27:12,160 na awtomatikong nagbabalik bawat solong post sa database, 478 00:27:12,160 --> 00:27:14,850 na kung saan ay medyo maginhawa. 479 00:27:14,850 --> 00:27:17,480 >> At ngayon sa katawan Pupunta ako upang bumalik 480 00:27:17,480 --> 00:27:24,860 ang unang post at bumalik ng katawan nito. 481 00:27:24,860 --> 00:27:27,930 At siyempre, kailangan kong lumikha ng isang post, 482 00:27:27,930 --> 00:27:31,880 kaya magpasok ng isang bagong post ipaalam. 483 00:27:31,880 --> 00:27:37,870 Sasabihin kong, "Brandon, ang aking pinakaunang post na ito." 484 00:27:37,870 --> 00:27:40,010 Kahanga-hanga. 485 00:27:40,010 --> 00:27:45,910 At ngayon kami ay pagpunta upang pumunta sa mga blog 486 00:27:45,910 --> 00:27:50,960 at kung ang lahat na rin gumagana - oh, ito ay muli sa ilang ibang mga pipi pahintulot file bagay. 487 00:27:50,960 --> 00:27:56,090 Pindutin nang matagal sa 1 segundo. Ito ay uri ng walang katotohanan. 488 00:28:06,700 --> 00:28:08,490 May pumunta namin. Okay. 489 00:28:08,490 --> 00:28:10,040 Naayos ko na ang problema pahintulot. 490 00:28:10,040 --> 00:28:12,040 Ito ay sinusubukang lumikha ng ilang mga file at ang ilan ng log, 491 00:28:12,040 --> 00:28:15,400 at ang mga pahintulot, muli, ay hindi maayos na set, kaya ginawa ko ito 492 00:28:15,400 --> 00:28:18,320 kaya mga file na iyon ay writable at executable 493 00:28:18,320 --> 00:28:21,090 kaya talagang ito ay maaaring mag-log sa mga bagay. 494 00:28:21,090 --> 00:28:24,220 Ngayon ito ay nagbibigay sa akin ng isa pang pagbubukod na nagsasabi, "Hindi nahanap ang klase ORM," 495 00:28:24,220 --> 00:28:26,960 at iyon ay dahil Nakalimutan ko ang isa pang hakbang. 496 00:28:26,960 --> 00:28:37,010 Iyan ay masyadong masama. 497 00:28:37,010 --> 00:28:40,270 Sa file bootstrap folder, mayroong mga module na ito dito, 498 00:28:40,270 --> 00:28:42,480 kung saan maaari mong piliing paganahin o hindi paganahin. 499 00:28:42,480 --> 00:28:44,340 Ito ang mga ng grupo ng mga iba't ibang mga tampok na maaari mong piliin na gamitin ang 500 00:28:44,340 --> 00:28:46,180 sa loob Kohana, na kung saan ay isang uri ng magaling. 501 00:28:46,180 --> 00:28:49,090 >> Halimbawa, mayroon sila ng isang module na pagpapatotoo 502 00:28:49,090 --> 00:28:51,170 na maaari mong gamitin para sa pagpapatunay ng mga gumagamit. 503 00:28:51,170 --> 00:28:53,390 Ang mga ito ay isang pag-cache module kung gusto mong ipatupad 504 00:28:53,390 --> 00:28:57,870 isang uri ng pag-cache likod ng pagtatapos upang gawing mas mabilis at watnat ang application trabaho. 505 00:28:57,870 --> 00:29:02,140 Kailangan namin upang paganahin ang database at ang mga module ORM, 506 00:29:02,140 --> 00:29:04,280 dahil tulad ng sinabi ko, ginagamit namin ang database, malinaw naman, 507 00:29:04,280 --> 00:29:08,200 at kailangan din namin upang paganahin ang module ORM, 508 00:29:08,200 --> 00:29:12,220 dahil gusto naming magkaroon ng dagdag na pag-andar, na kung saan ay mabait sa mayroon. 509 00:29:12,220 --> 00:29:14,240 Lahat ng kailangan kong gawin ay uncomment mga 2 linya, 510 00:29:14,240 --> 00:29:18,760 at ngayon kung i-refresh ko, ito ay nagbigay sa akin ng isa pang error. 511 00:29:18,760 --> 00:29:22,100 Sinasabi nito, "Hindi nahanap ang Class Model_Post." 512 00:29:22,100 --> 00:29:30,210 Ngayon ito ay isang mahusay na problema na magkaroon. 513 00:29:30,210 --> 00:29:37,660 Ni makita Hayaan. 514 00:29:37,660 --> 00:29:42,200 Gawin itong pampubliko. 515 00:29:42,200 --> 00:29:46,450 Hindi. I-hold on. 516 00:30:11,610 --> 00:30:13,160 Oh, mahal. 517 00:30:13,160 --> 00:30:18,590 Hindi ko alam kung bakit hindi ito magagawang makita na. 518 00:30:18,590 --> 00:30:21,030 Iyan ay talagang kakaiba. 519 00:30:21,030 --> 00:30:23,820 Mayroon akong class na ito dito mismo. 520 00:30:23,820 --> 00:30:28,650 Hulaan ko na maaaring mayroon ako upang - oh. 521 00:30:28,650 --> 00:30:32,010 Ako kaya pipi. Nakalimutan ko bang magdagdag ng tag PHP. 522 00:30:32,010 --> 00:30:34,670 Iyon ang dahilan kung bakit. 523 00:30:34,670 --> 00:30:41,260 Ngayon Mayroon akong upang i-undo na 1 pagbabago ko lang ginawa. 524 00:30:41,260 --> 00:30:44,270 >> Okay. May pumunta namin. 525 00:30:44,270 --> 00:30:47,500 Iyon ay talagang walang isip. Hindi ko magkaroon ng isang pambungad na tag na PHP. 526 00:30:47,500 --> 00:30:49,900 Ngunit bilang maaari mong makita, ngayon ito ay gumagana ng maayos, tama? 527 00:30:49,900 --> 00:30:51,240 Mayroon kaming 1 post. 528 00:30:51,240 --> 00:30:54,730 Grabbed namin ang unang post, at ngayon ay naka-print na namin ang katawan nito. 529 00:30:54,730 --> 00:30:58,010 Mahusay. Hindi kapani-paniwala. 530 00:30:58,010 --> 00:31:01,470 Ang anumang mga katanungan sa ngayon? 531 00:31:01,470 --> 00:31:04,100 Nope? Ang anumang mga katanungan? 532 00:31:04,100 --> 00:31:08,340 Okay, sa gayon nilikha lamang namin ang modelo post, napaka basic, 533 00:31:08,340 --> 00:31:10,930 at kami ay pagpunta sa magdagdag ng ilang mga pag-andar sa susunod. 534 00:31:10,930 --> 00:31:13,600 Maaari naming idagdag validations at pag-filter. 535 00:31:13,600 --> 00:31:15,650 Validations ay isa sa mga bagay 536 00:31:15,650 --> 00:31:18,150 na Framework na malutas ang para sa iyo talaga ito, talagang mahusay, 537 00:31:18,150 --> 00:31:21,310 at hindi ko sa tingin mo ay nagkaroon ng guys na gawin ito para sa iyong CS50 pset, 538 00:31:21,310 --> 00:31:24,000 ngunit kung gagawin mo web development para sa iyong huling proyekto, 539 00:31:24,000 --> 00:31:26,280 malamang ka ng pagpunta sa nais na gawin ang ilang mga uri ng pagpapatunay, 540 00:31:26,280 --> 00:31:28,290 hindi pagkakaroon ng tulad ng blangko ang mga user name, 541 00:31:28,290 --> 00:31:31,950 siguro nagkakaroon ng isang password na may hindi bababa sa ilang mga haba, mga bagay tulad na. 542 00:31:31,950 --> 00:31:34,750 At ito ay talagang mahirap upang ipatupad ang mga bagay na ito sa pamamagitan ng ating sarili, 543 00:31:34,750 --> 00:31:37,390 at halos bawat solong web framework gumagana ito para sa iyo 544 00:31:37,390 --> 00:31:41,140 at nagpapahintulot sa iyo na gawin ito sa isang napaka-malinis na paraan. 545 00:31:41,140 --> 00:31:44,340 At ang modelo ay kung saan mo karaniwang ipahayag ang mga panuntunan sa pagpapatunay, 546 00:31:44,340 --> 00:31:48,790 dahil na pagpapatunay kung ang isang modelo ay may-bisa o hindi. 547 00:31:48,790 --> 00:31:51,350 >> Ngunit para sa ngayon, ipinapadala namin ng pagpunta sa ilagay na sa ngayon, 548 00:31:51,350 --> 00:31:53,520 at sa ngayon ay pagpunta naming gumawa sa isa pang bahagi, 549 00:31:53,520 --> 00:31:55,400 at kami ay pagpunta sa subukan at gumawa ng isang bagong view 550 00:31:55,400 --> 00:31:59,580 na naglilista ng lahat ng mga post. 551 00:31:59,580 --> 00:32:02,490 Ang mga hakbang na kasangkot sa pagsasagawa ng isang bagong aksyon para sa paglilista ng lahat ng mga post 552 00:32:02,490 --> 00:32:04,810 ay upang grab isang listahan ng lahat ng mga post 553 00:32:04,810 --> 00:32:11,990 at pagkatapos ay i-render ang listahan ng lahat ng mga post sa pamamagitan ng isang view. 554 00:32:11,990 --> 00:32:16,420 Kanan dito, sa kabutihang-palad sapat, na grabbed namin ang lahat ng mga post 555 00:32:16,420 --> 00:32:20,310 gamit ang unang linya, ang hanapin ang lahat ng pag-andar, 556 00:32:20,310 --> 00:32:22,520 at ngayon kung ano kami ay pagpunta sa gawin ay sa ngayon 557 00:32:22,520 --> 00:32:25,350 Na ako ay direkta sa pagtatakda ng katawan ng tugon 558 00:32:25,350 --> 00:32:29,090 sa pamamagitan ng pagpasa sa string, ngunit ngayon ay nais ko bang gamitin ang isang view, 559 00:32:29,090 --> 00:32:31,870 at ang pagkakaiba sa pagitan ng tanawin at ginagawa ito lamang 560 00:32:31,870 --> 00:32:35,330 ay may tanawin ko maaaring magkaroon ng gandang, malaki template na HTML, 561 00:32:35,330 --> 00:32:37,710 at kung ano ang maaari kong gawin ay pumasa ito sa ilang mga variable 562 00:32:37,710 --> 00:32:42,200 at pagkatapos ay awtomatikong panahanan ng mga tao sa view ng template nito 563 00:32:42,200 --> 00:32:44,690 paggamit ng mga variable. 564 00:32:44,690 --> 00:32:50,780 Ano kukunin ko na gawin ay kukunin ko na lumikha ng isang bagong view, 565 00:32:50,780 --> 00:32:55,940 at kukunin ko na pangalanan ang view ng isang bagay tulad ng "blog / index," 566 00:32:55,940 --> 00:33:08,480 at pupuntahan ko talaga isailalim ito - oh, ano ang aking pagsusulat? 567 00:33:08,480 --> 00:33:12,910 Ang aking utak ay sa ibang lugar. 568 00:33:12,910 --> 00:33:16,600 Pupunta ako sa isailalim ang mga post na variable sa view, 569 00:33:16,600 --> 00:33:19,950 kaya na paraan ang may access sa post na ito variable sa view. 570 00:33:19,950 --> 00:33:26,140 >> At kaya ngayon ay kailangan ko upang lumikha ng view na ito, 571 00:33:26,140 --> 00:33:28,500 kaya dito mayroon kaming folder na ito na tinatawag na "Views," 572 00:33:28,500 --> 00:33:32,150 at una sa lahat, pupuntahan ko upang lumikha ng isang bagong folder sa ilalim na tinatawag na "Blog." 573 00:33:32,150 --> 00:33:35,810 Ito ay maganda. Sa ganoong paraan maaari kaming magkaroon ng magandang hierarchy para sa aming mga tanawin. 574 00:33:35,810 --> 00:33:43,910 At pagkatapos ay ako pupunta upang lumikha ng isa pang file sa doon na tinatawag na "index.php." 575 00:33:43,910 --> 00:33:45,780 Kahanga-hanga. 576 00:33:45,780 --> 00:33:52,930 Talaga, magkaroon ng parehong mga ito dito ipaalam. 577 00:33:52,930 --> 00:33:56,760 Paggawa ng isang view ng file ay marahil ang pinakasimpleng bahagi ng lahat ng ito, 578 00:33:56,760 --> 00:33:59,090 at ang mga ito ay marahil bagay na ikaw ay isa nang alam. 579 00:33:59,090 --> 00:34:01,240 Kami ay pagpunta sa gawin talagang simple ang isang bagay, 580 00:34:01,240 --> 00:34:05,360 simulan na nagsasabi, "Aking listahan ng mga post sa blog." 581 00:34:05,360 --> 00:34:14,860 Pagkatapos ay maaari naming pumunta sa pamamagitan ng, 582 00:34:14,860 --> 00:34:17,920 at maaari naming umulit sa pamamagitan ng mga post array, 583 00:34:17,920 --> 00:34:21,760 grab bawat solong post at sabihin ang isang bagay tulad ng - 584 00:34:21,760 --> 00:34:25,290 siguro magdagdag ng isang linya 585 00:34:25,290 --> 00:34:42,460 at pagkatapos ay i-print ang may-akda at ang katawan. 586 00:34:42,460 --> 00:34:44,480 Iyon magkaroon ng kahulugan sa ngayon? 587 00:34:44,480 --> 00:34:50,870 At ni makita kung ito gumagana ipaalam. 588 00:34:50,870 --> 00:34:53,489 Walang bagay ang nangyari. 589 00:34:53,489 --> 00:34:55,090 Nagtataka ko kung bakit. 590 00:34:55,090 --> 00:34:58,760 Oh, Naiwan ako 1 na hakbang. Bihirang-ulok ng akin. 591 00:34:58,760 --> 00:35:01,640 Lumikha ako ng view, ngunit hindi ako nag-set ang view bilang tugon, 592 00:35:01,640 --> 00:35:03,190 kaya kailangan mo lang gawin 1 pang bagay. 593 00:35:03,190 --> 00:35:12,610 Mayroon kang gawin "ang tugon na ito body" at itakda ito upang maging ang view. 594 00:35:12,610 --> 00:35:14,760 May pumunta namin. 595 00:35:14,760 --> 00:35:17,200 Mayroon kaming ang aming mga heading, at pagkatapos ay mayroon kaming isang post, 596 00:35:17,200 --> 00:35:20,500 at para lamang sa mga kicks magpasok ng isa pang post, sabihin 597 00:35:20,500 --> 00:35:23,390 upang maaari naming makita ang listahan. 598 00:35:31,800 --> 00:35:36,650 At ipasok ang mga 2 mga post, 599 00:35:36,650 --> 00:35:39,500 at ngayon kung i-refresh ang pahina, 600 00:35:39,500 --> 00:35:42,060 makita namin ang lahat ng mga post na ito dito. 601 00:35:42,060 --> 00:35:44,250 >> Na gumawa ba ng kahulugan sa ngayon? 602 00:35:44,250 --> 00:35:46,400 Oo, isang katanungan? Oh, okay. 603 00:35:46,400 --> 00:35:51,440 Tulad ng iyong nakikita, ang nagawa naming upang paghiwalayin ang lahat ng mga code out 604 00:35:51,440 --> 00:35:53,920 sa iba't ibang mga seksyon, at pagkatapos ay maaari mong makita ito ay pinaka-malinaw na kasama ang code view. 605 00:35:53,920 --> 00:35:57,810 Dito ang file na ito na kumakatawan sa view, 606 00:35:57,810 --> 00:36:01,220 pinahahalagahan lamang ito tungkol sa kumakatawan sa data, pagpapakita ng data. 607 00:36:01,220 --> 00:36:04,310 Ito ay makakakuha ng pumasa sa isang uri ng data, at ang lahat ng ginagawa nito ay magpapakita lamang ito sa iyo. 608 00:36:04,310 --> 00:36:07,660 Sa lahat ng iba pang mga bahagi ng iyong code, hindi mo na kailangang mag-alala tungkol sa alinman sa mga iyon, 609 00:36:07,660 --> 00:36:10,480 at katulad, ang iyong pagtingin code ay hindi kailangang mag-alala tungkol sa anumang bagay 610 00:36:10,480 --> 00:36:13,390 paano i-access ang database at iba pa at iba pa, 611 00:36:13,390 --> 00:36:19,950 na kung saan ay talagang mahusay at gumagawa ng iyong code nang higit pa maintainable marami. 612 00:36:19,950 --> 00:36:23,390 Tulad ng sinabi ko, mga tanawin, handa dynamic na in na sila 613 00:36:23,390 --> 00:36:27,080 ito ay ang 1 file, ngunit nais ito ay bubuo ng iba't ibang mga view 614 00:36:27,080 --> 00:36:29,940 batay sa mga variable na aktwal mong pumasa sa, 615 00:36:29,940 --> 00:36:32,370 at tangi sa roon, mayroong maraming iba't ibang mga pag-andar lingkod 616 00:36:32,370 --> 00:36:34,230 na maaari mong gamitin upang makatulong sa iyo na isulat ang iyong code mas mabilis, 617 00:36:34,230 --> 00:36:36,320 kung saan kukunin ko na maipakita sa iyo sa isang segundo lamang. 618 00:36:36,320 --> 00:36:38,050 Oo. 619 00:36:38,050 --> 00:36:42,490 >> [Mag-aaral] Kaya $ 0 ay isang controller, tama? 620 00:36:42,490 --> 00:36:44,000 Iyon ikalawang bagay. 621 00:36:44,000 --> 00:36:46,090 Ang tanong ay ay $ 0 isang controller? 622 00:36:46,090 --> 00:36:48,610 0 $ ay isang variable na nilikha ko dito mismo. 623 00:36:48,610 --> 00:36:51,320 Nilikha ang unang ako ng view. Itinalaga ko ito sa ilang mga variable. 624 00:36:51,320 --> 00:36:54,960 Pagkatapos ay pumasa sa ko ito sa ito function, itakda ito bilang katawan ng tugon. 625 00:36:54,960 --> 00:36:57,260 Ba na magkaroon ng kahulugan? 626 00:36:57,260 --> 00:37:02,200 [Mag-aaral] Kaya ay tanaw :: pabrika, ay tanawin tulad ng isang klase 627 00:37:02,200 --> 00:37:06,610 o isang library [hindi marinig] pabrika ng function? 628 00:37:06,610 --> 00:37:10,640 Ang tanong ay tungkol sa pagtingin :: factory function, 629 00:37:10,640 --> 00:37:14,020 at isa lamang ito ng ilang higit object-oriented programming talaga. 630 00:37:14,020 --> 00:37:18,000 Tingnan ang klase view, at mayroon itong isang pamamaraan na tinatawag na "Pabrika," 631 00:37:18,000 --> 00:37:24,170 at iyon ang isang paraan upang grab ang mga bagay na may pangalan na "blog / index." 632 00:37:24,170 --> 00:37:27,140 At na ang ilang higit pang mga object-oriented programming bagay-bagay 633 00:37:27,140 --> 00:37:33,010 na hindi ako pagpunta sa pumunta sa dito masyadong maraming. 634 00:37:33,010 --> 00:37:36,400 Ngayon malinaw naman, gusto naming lumikha ng mga bagong post, 635 00:37:36,400 --> 00:37:38,790 ngunit hindi namin nais na magkaroon upang gawin ito sa pamamagitan ng isang database, 636 00:37:38,790 --> 00:37:41,280 kaya kami ay pagpunta upang lumikha ng isang bagong aksyon para sa paglikha ng isang bagong post, 637 00:37:41,280 --> 00:37:43,050 at doon ay isang pulutong ng mga bagay-bagay na mayroon kami na gawin. 638 00:37:43,050 --> 00:37:45,910 >> Ang unang bagay na kami ay pagpunta sa gawin - pagharap sa isang bagay ng mga bagay na ito ng isa-isa ipaalam. 639 00:37:45,910 --> 00:37:48,320 Ang unang bagay na gagawin namin ay mayroon kaming upang lumikha ng isang form 640 00:37:48,320 --> 00:37:54,460 para sa pagpasok ng isang bagong post, 641 00:37:54,460 --> 00:37:57,360 ngunit ako pupunta din upang idagdag muna ang isang bagong aksyon, 642 00:37:57,360 --> 00:38:01,050 kaya ang pagdadagdag ng isang bagong aksyon ay kasing dali ng 643 00:38:01,050 --> 00:38:03,490 pagdagdag ng isang bagong pag-andar sa iyong controller, 644 00:38:03,490 --> 00:38:13,710 at sa ngayon pupuntahan ko gawin ang isang bagay napaka basic, 645 00:38:13,710 --> 00:38:20,850 grab lamang ang view na ito at i-post ito, ipapakita lamang ito para sa iyo. 646 00:38:20,850 --> 00:38:26,220 At pagkatapos ngayon ako pupunta upang lumikha ng isang bagong view ng file, 647 00:38:26,220 --> 00:38:33,690 at ako ng pagpunta sa simulan ang pagsusulat ng ilang mga bagay-bagay. 648 00:38:33,690 --> 00:38:36,540 Ano ang maganda tungkol sa Kohana ay na nagbibigay sila ng isang maraming iba't ibang mga pag-andar lingkod 649 00:38:36,540 --> 00:38:38,790 para sa iyo na magsulat ng view ng code nang mas madali, 650 00:38:38,790 --> 00:38:41,970 at ng 1 ng mga lingkod-andar o lingkod module 651 00:38:41,970 --> 00:38:45,860 ay sa paligid ng pagsusulat ng mga form. 652 00:38:45,860 --> 00:38:49,460 Para sa pagsusulat ng mga form, hindi ko talaga mayroon upang direktang sumulat ng anumang HTML sarili ko. 653 00:38:49,460 --> 00:38:51,100 Ikaw guys nagsulat ng mga form ng HTML. 654 00:38:51,100 --> 00:38:54,850 Alam mo kung paano ito ay maaaring maging talagang, talagang masakit at masalimuot na magsulat ng mga form. 655 00:38:54,850 --> 00:38:59,970 Ito ay hindi masaya, kaya sa kabutihang-palad, 656 00:38:59,970 --> 00:39:04,860 maaari naming talaga magsulat ng isang form gamit ang Kohana ni 657 00:39:04,860 --> 00:39:11,190 bumuo lingkod function upang gawin ito para sa amin. 658 00:39:11,190 --> 00:39:17,340 Kami ay pagpunta sa isa lamang magkaroon ng mga patlang para sa bawat solong bagay na mayroon kami, 659 00:39:17,340 --> 00:39:23,160 kaya isa para sa mga may-akda at isa para sa mga katawan. 660 00:39:23,160 --> 00:39:27,090 Kami ay pagpunta sa may isang label, at kami ay pagpunta sa magkaroon ng isang pag-input. 661 00:39:37,450 --> 00:39:41,360 >> At pagkatapos ay sa wakas, kami ay pagpunta sa magkaroon ng isang pagsusumite. 662 00:39:49,350 --> 00:39:52,230 At bilang maaari mong makita, ito ay mas mas malinis na magsulat 663 00:39:52,230 --> 00:39:58,150 kaysa sa lahat na walang kaayusan ng HTML, na kung saan ay uri ng magaling. 664 00:39:58,150 --> 00:40:00,930 Ipinagkaloob, mayroong iba pang mga Framework web page na mayroong ito kahit na mas malinis kaysa doon, 665 00:40:00,930 --> 00:40:04,440 ngunit hindi bababa sa ito ay mas mahusay kaysa sa pagsusulat sa HTML sa iyong sarili. 666 00:40:09,400 --> 00:40:11,130 Kahanga-hanga, kaya ito ay kung ano ang nakikita mo. 667 00:40:11,130 --> 00:40:13,530 Iyon uri ng marumi, 668 00:40:13,530 --> 00:40:19,720 kaya ako pupunta upang magdagdag ng isang line break doon 669 00:40:19,720 --> 00:40:21,180 upang gawing na tumingin ng kaunti nicer. 670 00:40:21,180 --> 00:40:23,330 Well, siyempre, tinitingnan nito pa rin talaga ito, ganap na hindi maayos, ngunit lamang namin nakatuon ka 671 00:40:23,330 --> 00:40:26,050 sa ang pag-andar para sa ngayon at hindi sa aesthetics. 672 00:40:26,050 --> 00:40:28,010 Walang oras na magawa ang lahat. 673 00:40:28,010 --> 00:40:30,600 At bilang maaari mong makita, ngayon ay mayroon kaming isang napaka-basic na form, 674 00:40:30,600 --> 00:40:32,080 na kung saan ay uri ng magaling. 675 00:40:32,080 --> 00:40:36,730 Ang code Gusto ko sabihin ay mas malinis kaysa sinusubukang magsulat ng isang HTML form ang iyong sarili, 676 00:40:36,730 --> 00:40:40,290 kaya na magaling. 677 00:40:40,290 --> 00:40:42,030 Ano ang susunod? 678 00:40:42,030 --> 00:40:49,260 Ngayon kailangan namin upang gawin ang mga bagay na may aksyon. 679 00:40:49,260 --> 00:40:51,240 Karaniwan kapag sinulat mo sa mga form ng HTML, 680 00:40:51,240 --> 00:40:54,070 mayroon kang upang sabihin dito kung saan ito ng pagpunta sa isumite ang form na ito upang. 681 00:40:54,070 --> 00:40:56,050 Sa pamamagitan ng default sa karamihan ng mga Framework web, 682 00:40:56,050 --> 00:40:58,200 ito na isinusumite sa eksaktong parehong URL, kaya ang mga bagay ay, 683 00:40:58,200 --> 00:41:01,310 kung magpadala sa iyo ng isang kahilingan upang get / blog / bago, 684 00:41:01,310 --> 00:41:03,240 Dapat itong ipakita sa iyo ang form, 685 00:41:03,240 --> 00:41:06,810 ngunit kung magpadala sa iyo ng isang kahilingan sa post na ito sa / blog / bagong may data, 686 00:41:06,810 --> 00:41:10,000 dapat itong aktwal na subukan upang i-save ang post na 687 00:41:10,000 --> 00:41:13,300 at gawin ang isang bagay na may ito. 688 00:41:20,630 --> 00:41:22,180 >> Ano kami ay pagpunta sa gawin ay 689 00:41:22,180 --> 00:41:25,320 isa lamang ang mayroon kami upang gawin upang masuri kung ito ay isang kahilingan sa post na ito o ng isang kahilingan get 690 00:41:25,320 --> 00:41:29,350 ay ang suriin kung ano ang mga variable post na maaari mong itakda. 691 00:41:29,350 --> 00:41:34,560 At kung ang post na variable ay naka-set, at pagkatapos ay ipinapadala namin ng pagpunta sa subukan at lumikha ng isang bagong post. 692 00:41:34,560 --> 00:41:38,440 Muli, gawin lang namin ito, 693 00:41:38,440 --> 00:41:41,090 at na lumilikha ng isang bagong post, at literal na kami ng pagpunta sa 694 00:41:41,090 --> 00:41:51,150 itakda ang mga patlang nito na tulad nito, 695 00:41:51,150 --> 00:41:55,640 at pagkatapos kami ay pagpunta sa i-save ito. 696 00:41:55,640 --> 00:41:59,200 At pagkatapos ay ako pupunta upang i-redirect 697 00:41:59,200 --> 00:42:07,660 sa pahina ng index sa gayon ay maaari nilang makita muli ang aming listahan ng mga post. 698 00:42:07,660 --> 00:42:09,620 Subukan na Hayaan. 699 00:42:09,620 --> 00:42:15,160 Sasabihin kong, "Brandon," 700 00:42:15,160 --> 00:42:18,140 at pagkatapos ay isumite ang post na ito, at kung ang lahat ay tumatakbo nang maayos, 701 00:42:18,140 --> 00:42:21,390 bilang maaari mong makita, ito redirect ako sa pahina ng index, 702 00:42:21,390 --> 00:42:24,140 at kung mag-scroll ko hanggang sa ibaba, mayroon kaming isang bagong ipinasok na post. 703 00:42:24,140 --> 00:42:26,430 Yay! 704 00:42:26,430 --> 00:42:28,430 Oo, pinag-uusapan. 705 00:42:28,430 --> 00:42:31,760 >> [Mag-aaral] Paano kung si na iyong ipinasok sa eksaktong parehong bagay 706 00:42:31,760 --> 00:42:33,380 na iyong ipinasok bago? 707 00:42:33,380 --> 00:42:36,950 Suriin ba ito upang matiyak na hindi mo pa nadoble 708 00:42:36,950 --> 00:42:38,810 ang parehong pagsusumite? 709 00:42:38,810 --> 00:42:41,660 Mag-default, hindi, dahil sa pamamagitan ng default - 710 00:42:41,660 --> 00:42:46,470 Paumanhin, ang tanong ay kung ang iyong ipinasok sa eksaktong parehong data sa form 711 00:42:46,470 --> 00:42:50,180 at isumite ang na, ito ay daan sa iyo upang magpasok ng isang dobleng mga bagay, 712 00:42:50,180 --> 00:42:52,550 isang duplicate entry, mahalagang? 713 00:42:52,550 --> 00:42:54,070 Sa ngayon, oo, ito ay magpapahintulot sa inyo na gawin iyon, 714 00:42:54,070 --> 00:42:58,860 dahil sa mga database ng ito ay ganap na ganap wastong upang magkaroon ng ganap na duplicate na mga hilera, 715 00:42:58,860 --> 00:43:02,260 ngunit kung iyon ang isang alalahanin, pagkatapos ay maaari kang magdagdag ng validations, halimbawa, 716 00:43:02,260 --> 00:43:06,430 upang matiyak na kung ito ang parehong eksaktong bilang isang bagay na ay umiiral na, 717 00:43:06,430 --> 00:43:08,720 pagkatapos ay sabihin na ito ay isang di-wastong bagay, 718 00:43:08,720 --> 00:43:11,200 at pagkatapos ay maaari mo ring tukuyin ang iyong mensahe ng error 719 00:43:11,200 --> 00:43:14,390 at sabihing, "Hindi wastong dahil ito ay umiiral na" o isang bagay tulad na. 720 00:43:14,390 --> 00:43:22,420 Ngunit sa kasong ito, maaari ba akong lumikha lamang ng isang bagay duplicate. 721 00:43:22,420 --> 00:43:26,010 Ngayon subukan ipaalam at magdagdag ng ilang mga validations. 722 00:43:26,010 --> 00:43:30,400 Ang problema sa karapatang ito ngayon ay na 723 00:43:30,400 --> 00:43:34,220 Kaya kong literal na magsumite ng isang ganap na blangko ang post na ito. 724 00:43:34,220 --> 00:43:37,500 Maaari ko bang i-click ang pindutan na ito sa ngayon, at doon kami pumunta. 725 00:43:37,500 --> 00:43:40,290 Hindi mo maaaring talagang makita ito, ngunit dagdag na line na ito dito 726 00:43:40,290 --> 00:43:43,830 ay nagpapahiwatig na ako Literal na magkaroon ng isang bagong post. 727 00:43:43,830 --> 00:43:46,050 Ito lamang ay may isang blangko ang may-akda at isang blangko ang katawan, 728 00:43:46,050 --> 00:43:48,630 at hindi namin nais na payagan ang mga tao upang gawin iyon. 729 00:43:48,630 --> 00:43:52,550 Ito ay kung saan ay pagpapatunay in 730 00:43:52,550 --> 00:43:57,540 >> Ang maaari kong pumunta sa aking modelo sa bagay, 731 00:43:57,540 --> 00:43:59,530 at ngayon ang maaari kong magdagdag ng bagong pag-andar na tumutukoy 732 00:43:59,530 --> 00:44:02,000 ano ang pagpapatotoo ng panuntunan ang dapat kong idagdag sa modelong ito 733 00:44:02,000 --> 00:44:06,840 upang matiyak na ito ay may-bisa o upang tukuyin kung ano ang ibig sabihin na maging isang wastong post na ito? 734 00:44:06,840 --> 00:44:10,210 At gusto kong sabihin ito ay lamang ng isang wastong post na kung kapwa may-akda at katawan 735 00:44:10,210 --> 00:44:15,150 ay hindi blangko, at ito ay kung paano ito gawin sa Kohana. 736 00:44:15,150 --> 00:44:18,750 Lumilikha ka ng bagong pag-andar na tinatawag na "Mga Panuntunan," 737 00:44:18,750 --> 00:44:20,210 at pagkatapos ay bumalik ka talaga isang nag-uugnay array 738 00:44:20,210 --> 00:44:24,230 na tumutukoy sa mga panuntunan ng pagpapatunay para sa bagay na ito. 739 00:44:24,230 --> 00:44:27,530 Kami ay pagpunta upang ibalik ang array, at pagkatapos ay kung ano kami ay pagpunta sa gawin ay 740 00:44:27,530 --> 00:44:32,820 sabihin ang "may-akda," ito ang papunta sa isang array, 741 00:44:32,820 --> 00:44:37,720 kung saan ang papunta sa isa pang array na tinatawag na "hindi walang laman." 742 00:44:37,720 --> 00:44:41,480 At pagkatapos ay ako pupunta magsabi ng "katawan." 743 00:44:50,980 --> 00:44:54,120 Okay, at ang syntax para sa ito at istraktura para sa 744 00:44:54,120 --> 00:44:56,530 maaaring tumingin ng kaunti pahirap at medyo kumplikado. 745 00:44:56,530 --> 00:44:59,330 Kung binabasa mo ang dokumentasyon, ito ay medyo tapat upang malaman kung, 746 00:44:59,330 --> 00:45:02,500 Ngunit mahalagang ito ay kung ano ang kailangan mong gawin upang tukuyin 747 00:45:02,500 --> 00:45:04,130 ilang mga panuntunan sa pagpapatunay, at mayroong maraming iba't ibang mga panuntunan 748 00:45:04,130 --> 00:45:06,810 na Kohana ay magbibigay sa iyo ng libre, tulad ng maaari kang magdagdag ng mga panuntunan upang sabihin 749 00:45:06,810 --> 00:45:08,410 Dapat ito ay hindi bababa sa ito sa haba. 750 00:45:08,410 --> 00:45:11,800 Siguro ito ay dapat na numeric. Siguro ito ay dapat na alpha numeric. 751 00:45:11,800 --> 00:45:14,410 Siguro ito ay dapat na hindi hihigit sa haba ito, kaya sa at iba pa. 752 00:45:14,410 --> 00:45:17,730 May ng maraming iba't ibang mga panuntunan na nagbibigay Kohana para sa iyo, 753 00:45:17,730 --> 00:45:19,610 at maaari kang pumunta sa kanilang website, tingnan ang dokumentasyon, 754 00:45:19,610 --> 00:45:23,150 at maaari mong makita ang lahat ng iba't ibang mga bagay na maaari mong gawin. 755 00:45:23,150 --> 00:45:25,650 >> Ngunit ito ay ang lahat ng kailangan kong gawin, 756 00:45:25,650 --> 00:45:30,490 at ngayon sabihin makita kung ano ang mangyayari 757 00:45:30,490 --> 00:45:34,060 kung magsumite ako ng blangkong post. 758 00:45:34,060 --> 00:45:36,960 Ano ang mangyayari? Oh, walang, nakakatanggap ako ng error. 759 00:45:36,960 --> 00:45:39,440 Nakakuha ako ng pagbubukod sa pagpapatunay. 760 00:45:39,440 --> 00:45:41,070 Well, ito ay mabuti. 761 00:45:41,070 --> 00:45:43,200 Sinabi Nag sa akin na ang aking modelo ay hindi wasto, 762 00:45:43,200 --> 00:45:45,780 ngunit hindi ko nais upang ipakita ng pagbubukod 763 00:45:45,780 --> 00:45:48,720 sa aking mga user kapag sinubukan nila upang magsumite ng di-wastong isang bagay, i-right? 764 00:45:48,720 --> 00:45:51,560 Gusto kong bigyan sila ng isang uri ng friendlier mensahe ng error 765 00:45:51,560 --> 00:45:53,610 kapag ang isang bagay napupunta mali. 766 00:45:53,610 --> 00:46:01,830 Ano kami ay pagpunta sa gawin ay kami ay pagpunta sa 767 00:46:01,830 --> 00:46:04,490 balutin ang lahat sa isang try catch loop. 768 00:46:04,490 --> 00:46:06,750 Talaga, tingin ko ito ang din ng isang bagay na hindi mo pa natutunan 769 00:46:06,750 --> 00:46:10,820 sa CS50, dahil C, ang programming language C, 770 00:46:10,820 --> 00:46:14,000 Walang mga pagbubukod, ngunit halos bawat solong iba pang mga wika 771 00:46:14,000 --> 00:46:16,700 May mga eksepsiyon, kaya talaga ito, talagang sa madaling sabi, 772 00:46:16,700 --> 00:46:19,430 isang pagbubukod ay isang bagay na ang isang piraso ng code maaari 773 00:46:19,430 --> 00:46:21,430 magtapon ng pagbubukod kapag ang isang bagay napupunta mali, 774 00:46:21,430 --> 00:46:23,410 ngunit pagkatapos ay marahil ilang iba pang mga piraso ng code mas mataas up 775 00:46:23,410 --> 00:46:25,810 maaabutan pagbubukod na iyon at gawin ang isang bagay na may ito. 776 00:46:25,810 --> 00:46:27,710 >> Halimbawa, sa kasong ito, 777 00:46:27,710 --> 00:46:29,940 ang piraso ng code na sinusubukang i-save ang isang modelo, 778 00:46:29,940 --> 00:46:33,170 ito na napatunayan ang modelo, at kung sinasabi nito, "Okay, ang model na ito ay hindi wasto," 779 00:46:33,170 --> 00:46:36,150 ito ang nangyayari upang ihagis ng pagbubukod, at ito ay uri ng katumbas ng 780 00:46:36,150 --> 00:46:39,870 sa C maaari mong magbalik ng -1 o isang bagay tulad na. 781 00:46:39,870 --> 00:46:42,320 At pagkatapos ay para sa akin, ito function, ang aking code 782 00:46:42,320 --> 00:46:46,310 sa mas mataas na antas, ang maaari kong subukan at mahuli pagbubukod na 783 00:46:46,310 --> 00:46:49,330 at isa lamang sabihing, "Okay, kung mahuli ko ang mga pagbubukod, kung ano ako pagpunta sa gawin?" 784 00:46:49,330 --> 00:46:51,570 O maaari ba akong pumili ng hindi upang mahuli ang pagbubukod na iyon at ipaalam sa mas mataas na up sa isang tao 785 00:46:51,570 --> 00:46:54,400 sumakay ng pagbubukod, o kung walang saysay na tao catches ito, 786 00:46:54,400 --> 00:46:56,820 pagkatapos ay ang buong programa nag-crash at sabi, 787 00:46:56,820 --> 00:46:59,170 "May nangyaring mali, at hindi ko maaaring panghawakan ito." 788 00:46:59,170 --> 00:47:04,490 >> Ngunit ano ang ginagawa namin ay mo balutin ng isang piraso ng code sa isang try block, 789 00:47:04,490 --> 00:47:09,030 at pagkatapos ay idagdag mo din ng isang bagay na tinatawag na isang catch block, 790 00:47:09,030 --> 00:47:17,300 kung saan ay ang uri ng code na subukan at mahuli ang mga pagbubukod na maaaring mangyari. 791 00:47:17,300 --> 00:47:20,430 At kaya kung mahuli ko ang partikular na pagbubukod 792 00:47:20,430 --> 00:47:23,110 o pagbubukod pagpapawalang-bisa, pagkatapos ay kung ano ako ng pagpunta sa gawin ay 793 00:47:23,110 --> 00:47:31,210 Pupunta ako upang itakda ang mga error - sa tingin ko na kung paano ko ito gagawin - 794 00:47:31,210 --> 00:47:35,370 at pupuntahan ko upang i-set ang mga error sa ilang mga bagay. 795 00:47:35,370 --> 00:47:40,920 At pagkatapos ay kung ano pupuntahan ko lang gawin ay kung ito ay umabot sa pagbubukod na ito, 796 00:47:40,920 --> 00:47:43,090 hindi ito pagpunta upang i-redirect, at kung hindi nito redirect, 797 00:47:43,090 --> 00:47:46,160 ito ay pagpunta sa dumating out sa kung blog 798 00:47:46,160 --> 00:47:49,920 at pindutin ang bagong blog na ito /, na kung saan ay nais gusto kong gawin. 799 00:47:49,920 --> 00:47:53,190 Kung mayroong isang error, pagkatapos Gusto kong bumalik sa form na 800 00:47:53,190 --> 00:47:55,100 at magpakita ng mga error. 801 00:47:55,100 --> 00:48:00,780 Ngayon kung ano ang gusto kong gawin ay gusto kong pumasa sa mga error 802 00:48:00,780 --> 00:48:07,010 sa view. 803 00:48:07,010 --> 00:48:10,360 Okay, sa tingin ko Mayroon akong view dito mismo, 804 00:48:10,360 --> 00:48:14,660 at talaga gusto kong ipakita ang mga error kung umiiral ang mga ito. 805 00:48:14,660 --> 00:48:19,740 Bago kong isulat ang HTML para sa na, ako pagpunta sa talagang mabilis 806 00:48:19,740 --> 00:48:21,720 ipakita sa iyo kung ano ang istraktura ng mga error na ito nais na variable na tingin, 807 00:48:21,720 --> 00:48:23,080 at ito ay isang mahusay na kasanayan sa pangkalahatan. 808 00:48:23,080 --> 00:48:25,070 Ang isang pulutong ng beses na makakuha ka ng isang bagay pabalik mula sa ilang mga paraan, 809 00:48:25,070 --> 00:48:27,250 ang ilang mga pag-andar sa web framework, 810 00:48:27,250 --> 00:48:29,410 at hindi mo alam kung ano ang hitsura ng variable tulad ng, 811 00:48:29,410 --> 00:48:31,210 kaya hindi mo alam kung paano gumagana sa mga ito. 812 00:48:31,210 --> 00:48:37,790 Pupunta ako sa gumamit ng isang pamamaraan sa pag-print r sa isa lamang i-print ito. 813 00:48:37,790 --> 00:48:41,100 >> At bilang maaari mong makita, sinasabi nito sa akin ito ay isang associate array, 814 00:48:41,100 --> 00:48:44,880 at mayroon kang isang susi, may-akda, mga punto upang ang string na ito, 815 00:48:44,880 --> 00:48:47,050 may-akda ay hindi dapat walang laman, at isa pang key, katawan, 816 00:48:47,050 --> 00:48:49,680 mga punto sa isa pang string, katawan ay hindi dapat walang laman. 817 00:48:49,680 --> 00:48:52,130 Ako ay tulad, okay, cool. 818 00:48:52,130 --> 00:48:56,230 Pagkatapos ay maaari kong umulit sa pamamagitan ng array at i-print ang bawat solong mensahe. 819 00:48:56,230 --> 00:49:02,150 Ito ay isa lamang tulad ng isang nag-uugnay array na may isang bungkos ng mga mensahe. 820 00:49:02,150 --> 00:49:13,500 Ano pupuntahan ko lang gawin ay "kung error," 821 00:49:13,500 --> 00:49:17,140 at ako pupunta upang lumikha ng isang unordered listahan, 822 00:49:17,140 --> 00:49:20,860 at pupuntahan ko umulit sa pamamagitan ng lahat ng mga error. 823 00:49:33,730 --> 00:49:38,710 At ito, at ngayon ako pagpunta sa subukan ang pagsusumite ng ito muli, 824 00:49:38,710 --> 00:49:41,200 at sabihin makita kung ano ang nakukuha namin. 825 00:49:41,200 --> 00:49:45,370 Ngayon makuha namin ito magaling listahan ng mga error, 826 00:49:45,370 --> 00:49:48,630 at ito ay pa rin medyo mainit ang ulo, ngunit ito nang walang alinlangan maaaring ma-format upang tumingin maganda, 827 00:49:48,630 --> 00:49:51,620 ngunit ang pangunahing ideya ay lamang sa loob ng ilang mga linya ng code, 828 00:49:51,620 --> 00:49:53,720 nagawa naming patunayan ang aming mga modelo, 829 00:49:53,720 --> 00:49:56,510 tiyakin na ang ilang mga patlang ay hindi walang laman, 830 00:49:56,510 --> 00:49:59,740 at kung may nangyaring mali, pagkatapos ay bumalik sa isang uri ng error na mensahe 831 00:49:59,740 --> 00:50:01,760 Kaya kong pagkatapos ay ipakita pabalik sa user. 832 00:50:01,760 --> 00:50:03,910 Maaari mo ring ipasadya ang iyong pagpapatunay 833 00:50:03,910 --> 00:50:07,590 sa gayon ay maaari mong aktwal na magkaroon ng isang mensahe ng error 834 00:50:07,590 --> 00:50:09,620 na mas tukoy sa iyong application o isang bagay tulad na. 835 00:50:09,620 --> 00:50:14,600 Ang lahat ng iyon ay sa pangkalahatan ay nako-customize na. 836 00:50:14,600 --> 00:50:17,150 >> Sa kasamaang palad, kami ay nauubusan ng oras, 837 00:50:17,150 --> 00:50:20,040 kaya pupuntahan ko mayroon upang i-cut-off ang live na coding session dito. 838 00:50:20,040 --> 00:50:22,980 Mayroong isang bungkos ng iba pang mga tampok na gusto ko upang ipakita para sa iyo 839 00:50:22,980 --> 00:50:25,650 sa halimbawang ito. 840 00:50:25,650 --> 00:50:27,620 Halimbawa, maaari kang magdagdag ng mga template sa iyong site, 841 00:50:27,620 --> 00:50:31,110 kaya siguro mayroong isang uri ng HTML code na gusto mong ilapat 842 00:50:31,110 --> 00:50:35,190 sa bawat solong pahina sa iyong site, at sa halip ng pag-paste na 843 00:50:35,190 --> 00:50:40,630 sa bawat solong view ng file na mayroon ka, na kung saan malinaw naman ay magiging isang masamang kaugalian, 844 00:50:40,630 --> 00:50:43,020 Maaari mo talaga tukuyin ang mga template na ito, 845 00:50:43,020 --> 00:50:46,660 at pagkatapos ay sa iyong controller sabihing, "Okay, ako gamit ang template na ito." 846 00:50:46,660 --> 00:50:50,130 "Nakarating na sa lahat ng aking mga tanawin gamitin ang template na ito." 847 00:50:50,130 --> 00:50:52,470 At ang isa huling bagay na gusto ko upang ipakita sa iyo pati na rin 848 00:50:52,470 --> 00:50:57,800 na hindi kami magkaroon ng panahon para sa ay scripting cross-site, 849 00:50:57,800 --> 00:51:01,430 at isa lamang sa tingin ko mo guys na marahil nakikita sa CS50 - 850 00:51:01,430 --> 00:51:03,770 Sa tingin ko marahil usapan David Malan tungkol sa kung paano maaari mong karaniwang mag-iniksyon 851 00:51:03,770 --> 00:51:08,040 JavaScript code sa - na-usapan mo tungkol dito? 852 00:51:08,040 --> 00:51:10,220 Siguro? Siguro hindi? 853 00:51:10,220 --> 00:51:12,670 >> Ngunit ng maraming beses na maaari mong mag-iniksyon ng nakahahamak na JavaScript code 854 00:51:12,670 --> 00:51:15,630 sa database ng isang tao, at kung hindi sila makatakas na maayos, 855 00:51:15,630 --> 00:51:18,280 pagkatapos ay kapag ipakita nila ang data na iyon pabalik sa gumagamit, 856 00:51:18,280 --> 00:51:21,310 pagkatapos ay maaari itong tumakbo ang ilang mga uri ng mga random na JavaScript code ay hindi mo nais na mangyayari, 857 00:51:21,310 --> 00:51:23,050 at ako ay pagpunta upang ipakita kung paano mo gusto gawin iyon sa loob Kohana. 858 00:51:23,050 --> 00:51:25,380 Ito ay talagang talaga ito, talagang madali. 859 00:51:25,380 --> 00:51:31,920 Maaari kong gawin ito sa ngayon sa loob ng 2 segundo literal. 860 00:51:31,920 --> 00:51:34,560 Ang kailangan mo lang gawin ay isa lamang balutin mga bagay na ito 861 00:51:34,560 --> 00:51:46,920 sa bagay na ito na tinatawag na entity sa HTML. 862 00:51:46,920 --> 00:51:51,180 At iyon ay awtomatikong escape nang maayos ang lahat ng mga character 863 00:51:51,180 --> 00:51:54,730 at tiyakin na hindi mo makuha ang problemang ito. 864 00:51:54,730 --> 00:51:57,220 [Mag-aaral] na-spell mo ang unang pagsubok nang hindi tama. 865 00:51:57,220 --> 00:52:01,030 [Brandon Liu] Oh, oops. 866 00:52:01,030 --> 00:52:06,420 >> Okay, na ang lahat ay nagkaroon ako ibahagi sa iyo para sa araw na ito. 867 00:52:06,420 --> 00:52:09,930 Ang mga slide ay pagpunta sa-post, ngunit ang mga ito ay sa pangkalahatan 868 00:52:09,930 --> 00:52:13,900 ang tanging mapagkukunan ay dapat talagang kailangan mo upang makapagsimula sa Kohana. 869 00:52:13,900 --> 00:52:16,770 Maaari kang pumunta sa website. Ang mga ito ay isang gabay sa gumagamit, at sila ay mayroon din ng isang API explorer. 870 00:52:16,770 --> 00:52:20,630 Maaari naming galugarin ang lahat ng iba't ibang mga pag-andar at lingkod-andar mayroon sila para sa iyo. 871 00:52:20,630 --> 00:52:22,070 Sa pangkalahatan ay mayroon silang sapat na impormasyon sa website 872 00:52:22,070 --> 00:52:25,310 na maaari mong gamitin upang makapagsimula at makakuha ng pagpunta sa Kohana. 873 00:52:25,310 --> 00:52:30,840 May mga hindi na maraming mga tutorial, sa palagay ko, para sa Kohana, sa labas ng 874 00:52:30,840 --> 00:52:33,880 kung ano ang mayroon sila sa website dito, kaya ito ay marahil ang iyong pinakamahusay na mapagpipilian. 875 00:52:33,880 --> 00:52:35,600 Ngunit kung gusto mong pumunta sa web framework 876 00:52:35,600 --> 00:52:37,120 at hindi mo nais na magkaroon sa pick up ng isang bagong wika, 877 00:52:37,120 --> 00:52:39,780 at gusto mo ang isang bagay na medyo magaan ang timbang at may isang madaling kurba sa pagkatuto, 878 00:52:39,780 --> 00:52:41,570 Imumungkahi ko talagang Kohana. 879 00:52:41,570 --> 00:52:44,040 Iyon ay marahil ang pinakamahusay na nag-aalok para sa iyon. 880 00:52:44,040 --> 00:52:46,830 Ang nakakatawa bagay, bagaman, ay kung kami ay gumagamit ng Ruby sa daang-bakal, 881 00:52:46,830 --> 00:52:48,550 sana Ginagaya namin kung ano ang ginawa namin lamang 882 00:52:48,550 --> 00:52:51,430 at marahil higit pa sa ilalim ng 3 minuto. 883 00:52:51,430 --> 00:52:54,710 Walang magbiro, ngunit pag-aaral ng Ruby sa daang-bakal tumatagal ng maraming mas mahaba 884 00:52:54,710 --> 00:52:56,780 kaysa sa nais itong tumagal upang matuto nang Kohana. 885 00:52:56,780 --> 00:52:58,840 Ito ay isa lamang ang iyong mga pagpipilian sa kung ano ang gusto mong piliin na matuto, 886 00:52:58,840 --> 00:53:01,260 ngunit kung nais mong makakuha ng umaandar na mabilis, 887 00:53:01,260 --> 00:53:03,870 Kohana ay talagang isang napaka mahusay na pagpili. 888 00:53:03,870 --> 00:53:06,730 >> Anumang huling katanungan bago kami magtapos? Oo. 889 00:53:06,730 --> 00:53:08,020 [Mag-aaral] Paano mo ire namin na isama na 890 00:53:08,020 --> 00:53:13,120 sa isang CSS framework tulad ng gumagamit ka kapag ikaw ay nagtuturo? 891 00:53:13,120 --> 00:53:16,700 Ang tanong ay kung paano nais na isama namin na may CSS framework? 892 00:53:16,700 --> 00:53:18,740 Ano ang gusto namin marahil gawin ay gusto marahil kami isama 893 00:53:18,740 --> 00:53:21,090 isang bagong folder kung saan nais naming dump lahat ng aming mga CSS file, 894 00:53:21,090 --> 00:53:23,010 at pagkatapos ay nais naming ring magdagdag ng isang bagong template. 895 00:53:23,010 --> 00:53:26,090 Sa ang template na nais naming isama ang mga CSS file 896 00:53:26,090 --> 00:53:28,410 upang matiyak na ito ay naka-reference sa bawat solong pahina, 897 00:53:28,410 --> 00:53:32,220 at pagkatapos ay kapag aktwal na iyong isinusulat HTML, 898 00:53:32,220 --> 00:53:34,010 mong idagdag lamang ang naaangkop na mga klase at watnat, 899 00:53:34,010 --> 00:53:36,100 at halimbawa, kapag gumagamit ka ng isang bagay tulad ng form 900 00:53:36,100 --> 00:53:40,710 lingkod ng function, maaari kang magdagdag ng higit pang mga parameter pagkatapos 901 00:53:40,710 --> 00:53:42,830 upang tukuyin kung ano ang mga klase na gusto mong i-attach sa iba't-ibang mga bagay 902 00:53:42,830 --> 00:53:47,820 kaya maaari nilang ito estilo nang maayos, at iyon ang isa lamang kung paano mo pumunta. 903 00:53:47,820 --> 00:53:50,100 >> Anumang iba pang mga katanungan? 904 00:53:50,100 --> 00:53:52,090 Kahanga-hanga. 905 00:53:52,090 --> 00:53:58,540 Salamat sa iyo para sa iyong oras, at salamat sa iyo para sa darating na. 906 00:53:58,540 --> 00:54:05,170 Hindi ako ay pagpunta sa magdagdag ng Sobra pa man, 907 00:54:05,170 --> 00:54:08,560 ngunit 1 talaga mabilis na bagay ay wala kaming isang link 908 00:54:08,560 --> 00:54:12,590 upang ang form. 909 00:54:12,590 --> 00:54:14,310 Talagang pipi. 910 00:54:14,310 --> 00:54:20,110 Sabihin magdagdag ng isang - talagang sa view, blog, index, 911 00:54:20,110 --> 00:54:23,890 magdagdag ng link na napupunta sa mga bagong pahina ng sabihin talagang mabilis, 912 00:54:23,890 --> 00:54:26,770 sa pahina kung saan maaari naming magpasok ng isang bagong post. 913 00:54:26,770 --> 00:54:29,950 Kami ay pagpunta sa gawin ito. 914 00:54:29,950 --> 00:54:34,020 Ano ang maganda ay may ito buong grupo ng mga HTML lingkod function 915 00:54:34,020 --> 00:54:37,090 na gawin ang iba't ibang bagay na para sa iyo, kaya mayroon ka nang Nakita ang entity 916 00:54:37,090 --> 00:54:41,980 gumana dito, ngunit sila ay mayroon ding isang function na tinatawag na "angkla," 917 00:54:41,980 --> 00:54:45,400 kung saan maaari mong i-type sa blog / bagong 918 00:54:45,400 --> 00:54:49,550 at sabihing, "Mag-post ng isang bagong blog." 919 00:54:49,550 --> 00:54:51,850 At ito ay magdudulot na link para sa iyo, 920 00:54:51,850 --> 00:54:54,120 at ito ay anyong walang kuwenta talaga ang gagawin, ngunit ito ay maganda, 921 00:54:54,120 --> 00:54:58,720 dahil ipagpalagay na ikaw ay ilipat ang iyong website mula sa 1 domain sa isa pang. 922 00:54:58,720 --> 00:55:01,390 At kung sumulat si out mo lang ang mga URL sa iyong sarili, 923 00:55:01,390 --> 00:55:04,350 pagkatapos ay magkakaroon ka ng upang baguhin ang lahat ng mga URL. 924 00:55:04,350 --> 00:55:06,850 O siguro ay inilipat mo ito mula sa 1 subfolder sa isa pang subfolder. 925 00:55:06,850 --> 00:55:08,790 Gusto ninyong magpalit ng lahat ng mga URL na iyon sa iyong sarili, 926 00:55:08,790 --> 00:55:12,180 at iyon ang hindi masaya. 927 00:55:12,180 --> 00:55:14,510 Maaari mong gamitin ang mga anchor dito mismo, 928 00:55:14,510 --> 00:55:18,950 at maaari mong baguhin ang domain o ang prefix subfolder 929 00:55:18,950 --> 00:55:20,640 sa configuration file nang isang beses, 930 00:55:20,640 --> 00:55:22,980 at pagkatapos ay ilapat ito na sa lahat ng dako, at ito ay, muli, 931 00:55:22,980 --> 00:55:26,930 isang mahusay na halimbawa ng huwag ulitin ang iyong sarili, drying iyong code out. 932 00:55:26,930 --> 00:55:30,370 Saanman ka paulit-ulit ang iyong sarili, subukan at i-extract sa isang uri ng configuration file 933 00:55:30,370 --> 00:55:34,160 o sa ibang pag-andar at ito mahawakan na para sa iyo. 934 00:55:34,160 --> 00:55:42,930 >> At ang napaka-huling bagay na nais kong ipakita sa iyo noon ay 935 00:55:42,930 --> 00:55:50,250 ipagpalagay na kami ay pabalik sa post na ito, at ako ay binubuo ng ilang mga talagang mahaba sanaysay, 936 00:55:50,250 --> 00:55:52,670 ngunit Nakalimutan ko ang upang isama ang aking mga may-akda. 937 00:55:52,670 --> 00:55:55,210 Ngayon kapag nag-click ako "Isumite Post," 938 00:55:55,210 --> 00:55:57,270 Nawala ko lang ang lahat. 939 00:55:57,270 --> 00:56:00,000 Walang! Talagang malungkot. 940 00:56:00,000 --> 00:56:03,870 Kaya paano mo haharapin ang mga iyon? 941 00:56:03,870 --> 00:56:06,070 Ito ay kung ano ang ginagawa namin. 942 00:56:06,070 --> 00:56:09,340 Ano ang ginagawa namin ay dito para sa mga pag-input at text area mga pag-andar, 943 00:56:09,340 --> 00:56:12,700 kung isama kami ng isang pangalawang parameter, pagkatapos ay ang halaga ng na pangalawang parameter 944 00:56:12,700 --> 00:56:16,620 ay magiging kung ano ang field ay pagpunta sa ma-una populated na may. 945 00:56:16,620 --> 00:56:23,570 Ano naming gawin ay sa aming blog controller, 946 00:56:23,570 --> 00:56:25,360 maaari kaming panagutin ang isa pang variable. 947 00:56:25,360 --> 00:56:27,050 Tumawag ito "halaga" siguro. 948 00:56:27,050 --> 00:56:30,620 At pumasa sa post na array, literal. 949 00:56:30,620 --> 00:56:32,620 Nangangahulugan iyon na kung Nabigo ang pagpapatunay, 950 00:56:32,620 --> 00:56:36,570 pumasa sa akin ang post na array na isinumite ko mula sa huling kahilingan, 951 00:56:36,570 --> 00:56:38,420 at na paraan na maari kong gamitin ang mga halaga mula sa aking huling pagsumite 952 00:56:38,420 --> 00:56:44,540 sa repopulate ang mga patlang. 953 00:56:44,540 --> 00:56:49,600 Ngayon ay maaari kong gawin ang isang bagay tulad na mga halaga sa may-akda 954 00:56:49,600 --> 00:56:55,180 at mga halaga katawan, at na paraan ngayon kung gagawin ko ang ilang mga random na mga bagay-bagay 955 00:56:55,180 --> 00:57:01,490 at i-click ang "Isumite Post," pagkatapos ito ay mananatili doon. 956 00:57:01,490 --> 00:57:03,830 Ngunit kami ay pagpunta upang tumakbo sa isa pang problema. 957 00:57:03,830 --> 00:57:07,670 Iyon ay gumagana, ngunit kung pumunta ako sa pahina sa pinakadulo unang pagkakataon, 958 00:57:07,670 --> 00:57:09,720 ito ang nangyayari pag-crash, at iyon ay dahil sa napaka-unang pagkakataon 959 00:57:09,720 --> 00:57:13,730 pumunta kami sa pahina, ang post na ito variable ay hindi pa tinukoy. 960 00:57:13,730 --> 00:57:18,170 Ito ay walang bisa. Hindi ito umiiral. 961 00:57:18,170 --> 00:57:21,630 >> At kung ano ang gusto naming sabihin ay kung umiiral ang key na ito, 962 00:57:21,630 --> 00:57:27,750 pagkatapos ay ibalik ang value ng array, 963 00:57:27,750 --> 00:57:30,450 ngunit kung ang key na ay hindi umiiral, pagkatapos ay bumalik ng blangkong string. 964 00:57:30,450 --> 00:57:32,150 Iyan ang pag-andar gusto namin dito. 965 00:57:32,150 --> 00:57:34,690 Gusto naming suriin kung ang key ay naroroon bago sinusubukang i-access ang array, 966 00:57:34,690 --> 00:57:36,580 at sa kabutihang-palad sapat, 967 00:57:36,580 --> 00:57:38,570 Binibigyan din Kohana sa amin ng isang lingkod-andar para sa mga iyon. 968 00:57:38,570 --> 00:57:41,040 Ang mga ito ay ang buong suite ng mga function 969 00:57:41,040 --> 00:57:43,660 sa ilalim ng pangalang ARR, maikli para sa array, 970 00:57:43,660 --> 00:57:45,800 at mayroon silang 1 function na tinatawag na "makakuha ng," 971 00:57:45,800 --> 00:57:48,690 at maaari mong pumasa sa array, 972 00:57:48,690 --> 00:57:50,740 at maaari mong pumasa sa pangalan ng key. 973 00:57:50,740 --> 00:57:54,330 Pagkatapos talaga kung ano ito ay gawin ay ito ay subukan upang makakuha ng na key, 974 00:57:54,330 --> 00:57:56,470 ngunit kung na key ay hindi umiiral sa array, 975 00:57:56,470 --> 00:58:00,900 pagkatapos ay ibalik ito blangko, o maaari naming ring tukuyin ang isang default, naniniwala ako, 976 00:58:00,900 --> 00:58:03,500 na kung saan ay magaling. 977 00:58:09,740 --> 00:58:13,150 Ngayon kung gagawin naming muli ang parehong bagay, 978 00:58:13,150 --> 00:58:15,970 pagkatapos ay makita mo na ngayon gumagana ito sa unang pagkakataon sa paligid, 979 00:58:15,970 --> 00:58:18,080 at muli, kung nag-type namin sa ilang mga random na mga bagay-bagay 980 00:58:18,080 --> 00:58:23,210 at subukan at isumite, pagkatapos ito ay mananatili doon. 981 00:58:23,210 --> 00:58:31,640 >> At hulaan ko ang maaari kong ring ipakita sa iyo kung paano magdagdag ng isang template talagang mabilis. 982 00:58:31,640 --> 00:58:36,140 Ano ang maaari naming gawin muna ay kung maaari naming magdagdag ng bagong pagtingin na tinatawag na "template.php" 983 00:58:36,140 --> 00:58:38,890 sa loob ng Views folder, 984 00:58:38,890 --> 00:58:44,730 at kung ano pupuntahan ko lang gawin ay pupuntahan ko i-print ang isang bagay na tinatawag na "nilalaman," 985 00:58:44,730 --> 00:58:49,130 na kung saan ay pagpunta sa maging ang aking mga pangunahing nilalaman. 986 00:58:49,130 --> 00:58:51,380 At siguro sa pinakailalim pupuntahan ko idagdag, sabihin nating, 987 00:58:51,380 --> 00:58:53,340 copyright. 988 00:58:53,340 --> 00:58:56,150 [Hindi marinig tanong mag-aaral] 989 00:58:56,150 --> 00:58:58,050 [Brandon Liu] Marahil, ito ay isang napakabilis basic template na nais ko bang gamitin ang. 990 00:58:58,050 --> 00:59:02,840 Gusto kong magkaroon ng isang folder sa aking karapatang-kopya sa bawat solong pahina, 991 00:59:02,840 --> 00:59:05,560 at ngayon kung ano pupuntahan ko gawin sa loob ng aking controller 992 00:59:05,560 --> 00:59:07,740 ay ngayon sa halip na nagsasabi, "ay umaabot Controller" 993 00:59:07,740 --> 00:59:11,870 Pupunta ako sa sabihing, "ay umaabot Controller_Template," 994 00:59:11,870 --> 00:59:15,890 at ngayon sa halip na nagsasabi, "tugon ng katawan ay katumbas ng view na ito," 995 00:59:15,890 --> 00:59:24,110 Pupunta ako sa sabihing, "ang nilalamang ito template ay -" 996 00:59:24,110 --> 00:59:27,690 at sa tingin ko - ko ilalagay ng patas na pag-sign? 997 00:59:27,690 --> 00:59:32,710 Nakalimutan ko. Oo, naisip ko na kaya. 998 00:59:32,710 --> 00:59:37,710 At ngayon ko ise-set na variable na nilalaman upang pumatas sa view. 999 00:59:37,710 --> 00:59:40,960 Ang maaari kong gawin ang parehong dito. 1000 00:59:49,620 --> 00:59:57,170 At ngayon kung i-refresh ko, maaari mong makita ngayon ang copyright ay idinagdag doon, 1001 00:59:57,170 --> 01:00:00,350 at gumawa lamang ng ilang mga random post, 1002 01:00:00,350 --> 01:00:06,760 at pagkatapos ay, muli, dapat mong makita na ang copyright ay sa pinakadulo ibaba ng pahina. 1003 01:00:06,760 --> 01:00:10,730 >> Mahusay. Iyon lang ang nais kong ipakita sa iyo guys. 1004 01:00:10,730 --> 01:00:14,970 [Palakpakan] 1005 01:00:14,970 --> 01:00:18,950 Ang anumang mga katanungan? 1006 01:00:18,950 --> 01:00:21,000 [CS50.TV]