1 00:00:00,000 --> 00:00:02,150 >> [Seminar] [Kohana: A PHP Rangka Kerja Ringan] 2 00:00:02,150 --> 00:00:04,000 [Brandon Liu] [Universiti Harvard] 3 00:00:04,000 --> 00:00:07,270 [Ini adalah CS50.] [CS50.TV] 4 00:00:07,270 --> 00:00:09,130 >> Hi semua orang. Nama saya Brandon. 5 00:00:09,130 --> 00:00:11,000 Saya junior di sini di kolej melakukan sains komputer, dan hari ini kita akan bercakap mengenai 6 00:00:11,000 --> 00:00:14,460 Kohana, yang merupakan rangka kerja PHP pembangunan web. 7 00:00:14,460 --> 00:00:17,260 Hari ini akan menjadi seminar pengekodan secara langsung, 8 00:00:17,260 --> 00:00:21,000 jadi saya pada dasarnya akan menghabiskan 5-10 minit menjelaskan apa Kohana adalah, 9 00:00:21,000 --> 00:00:25,000 dan kemudian saya betul-betul akan membina sebuah blog sangat mudah 10 00:00:25,000 --> 00:00:28,570 untuk anda di sini betul-betul dari awal. 11 00:00:28,570 --> 00:00:32,229 Kami akan memuat turun kod dari laman web Kohana itu, 12 00:00:32,229 --> 00:00:35,000 dan kita akan mula membina blog, dan diharapkan ia akan menjadi sangat instruktif, 13 00:00:35,000 --> 00:00:37,000 kerana anda akan melihat mungkin mungkin saya akan membuat beberapa kesilapan, 14 00:00:37,000 --> 00:00:39,000 dan anda akan melihat saya pulih daripada mereka, 15 00:00:39,000 --> 00:00:42,040 atau anda akan melihat proses pemikiran saya kerana saya membina melalui blog ini, 16 00:00:42,040 --> 00:00:44,000 dan sementara itu, anda juga akan mendapat biasa dengan rangka kerja itu sendiri. 17 00:00:44,000 --> 00:00:48,000 Semoga ia akan menjadi satu usaha yang sangat instruktif. 18 00:00:48,000 --> 00:00:51,370 >> Pertama, apa sebenarnya rangka kerja? 19 00:00:51,370 --> 00:00:54,000 Jika anda telah mengambil CS50 setakat ini, anda tidak benar-benar bekerja dengan mana-mana 20 00:00:54,000 --> 00:00:56,000 rangka kerja lagi, dan perkara yang adalah ini. 21 00:00:56,000 --> 00:01:00,000 Anda mungkin telah melakukan 1 pembangunan web Serangga sudah, 22 00:01:00,000 --> 00:01:03,000 dan katakan anda terus membina laman web dan menyimpan membina laman web. 23 00:01:03,000 --> 00:01:05,000 Anda akan mula melihat beberapa perkara. 24 00:01:05,000 --> 00:01:07,000 Perkara pertama yang anda akan notis adalah bahawa anda mungkin lakukan perkara yang sama 25 00:01:07,000 --> 00:01:09,150 berulang-ulang kali sepanjang masa, 26 00:01:09,150 --> 00:01:13,000 perkara seperti membersihkan data input pengguna, 27 00:01:13,000 --> 00:01:17,250 perkara seperti menganjurkan fail anda dengan cara yang tertentu. 28 00:01:17,250 --> 00:01:19,000 Perkara lain yang anda akan juga mungkin notis adalah bahawa kod anda 29 00:01:19,000 --> 00:01:21,000 boleh mula menjadi sangat, sangat kotor, 30 00:01:21,000 --> 00:01:24,000 dan anda boleh meninggalkannya kemas dan hanya mempunyai masa yang sangat keras mengekalkan ia, 31 00:01:24,000 --> 00:01:26,000 atau anda boleh mula untuk menstrukturkan kod anda dan menjadikannya modular 32 00:01:26,000 --> 00:01:28,510 dalam cara-cara tertentu untuk menjadikannya lebih dipertahankan. 33 00:01:28,510 --> 00:01:31,020 >> Ini adalah di mana rangka kerja web pada dasarnya datang masuk 34 00:01:31,020 --> 00:01:33,680 Orang-orang ini yang telah membina banyak laman web, mereka berkata, 35 00:01:33,680 --> 00:01:35,820 "Kita tidak perlu buat semula ini setiap kali tunggal kami membina laman web." 36 00:01:35,820 --> 00:01:39,050 "Mengapa kita tidak hanya membuat satu pakej yang melakukan semua perkara ini untuk anda 37 00:01:39,050 --> 00:01:41,250 setiap kali anda mahu membina laman web? " 38 00:01:41,250 --> 00:01:43,030 Dan supaya apabila anda membuat laman web baru, 39 00:01:43,030 --> 00:01:45,880 anda hanya memberi tumpuan kepada apa sebenarnya laman web ini tertentu kira-kira. 40 00:01:45,880 --> 00:01:48,630 Anda tidak perlu untuk mengulangi semua konfigurasi pelbagai 41 00:01:48,630 --> 00:01:53,070 dan pemisahan kod dan menulis semula kod 42 00:01:53,070 --> 00:01:56,180 yang sering anda perlu lakukan apabila anda membuat laman web. 43 00:01:56,180 --> 00:01:59,410 Ideanya ialah rangka kerja yang membolehkan anda untuk menulis kod peringkat yang lebih tinggi 44 00:01:59,410 --> 00:02:01,030 tanpa perlu bimbang tentang butiran-tahap yang lebih rendah. 45 00:02:01,030 --> 00:02:03,670 Terperinci peringkat rendah mungkin sesuatu seperti 46 00:02:03,670 --> 00:02:07,250 berurusan dengan pembersihan data input pengguna. 47 00:02:07,250 --> 00:02:09,320 Itu sesuatu yang anda tidak harus benar-benar perlu bimbang tentang. 48 00:02:09,320 --> 00:02:12,370 Anda perlu memberi fokus kepada apa peruntukan web anda adalah benar-benar tentang. 49 00:02:12,370 --> 00:02:14,790 Ia menghapuskan banyak kod boilerplate. 50 00:02:14,790 --> 00:02:16,640 Ia merupakan seni bina untuk projek anda. 51 00:02:16,640 --> 00:02:18,680 >> Yang paling popular akan menjadi Model-View-Controller, 52 00:02:18,680 --> 00:02:20,380 yang saya akan bercakap tentang di saat. 53 00:02:20,380 --> 00:02:22,790 Dan banyak kali rangka kerja ini merangkumi satu set prosedur, 54 00:02:22,790 --> 00:02:25,750 peraturan, dan amalan terbaik bagi anda untuk menggunakan 55 00:02:25,750 --> 00:02:28,190 supaya apabila anda pakai rangka kerja web 56 00:02:28,190 --> 00:02:30,050 anda perlu menulis kod anda dengan cara yang tertentu, 57 00:02:30,050 --> 00:02:32,430 dan ia secara amnya yang telah dipersetujui set prinsip-prinsip 58 00:02:32,430 --> 00:02:34,290 oleh masyarakat yang secara amnya diterima sebagai 59 00:02:34,290 --> 00:02:36,230 cara yang baik untuk menulis kod. 60 00:02:36,230 --> 00:02:38,260 Ia membuat kod anda lebih dipertahankan, lebih mudah untuk digunakan, 61 00:02:38,260 --> 00:02:40,030 sebagainya dan sebagainya. 62 00:02:40,030 --> 00:02:42,740 Dan akhirnya, perkara yang saya ingin menekankan mengenai rangka kerja 63 00:02:42,740 --> 00:02:45,980 berbanding perpustakaan adalah idea ini kira-kira penyongsangan kawalan, dan perkara yang adalah ini. 64 00:02:45,980 --> 00:02:48,430 Perbezaan antara perpustakaan dan rangka kerja ialah dengan perpustakaan 65 00:02:48,430 --> 00:02:51,990 anda masih menulis program utama, 66 00:02:51,990 --> 00:02:54,460 dan anda jenis atur menggunakan perpustakaan 67 00:02:54,460 --> 00:02:56,810 dan memanggil perpustakaan untuk melakukan sesuatu untuk anda. 68 00:02:56,810 --> 00:02:58,180 Perbezaan antara perpustakaan dan rangka kerja yang 69 00:02:58,180 --> 00:03:01,620 adalah bahawa rangka kerja bermula dengan kawalan, 70 00:03:01,620 --> 00:03:03,260 dan ia menyembah kod anda, 71 00:03:03,260 --> 00:03:06,190 supaya anda boleh menganggapnya sebagai - ini adalah mengapa ia dipanggil rangka kerja - 72 00:03:06,190 --> 00:03:09,700 rangka kerja menyediakan bingkai ini dan struktur bagi kod anda, 73 00:03:09,700 --> 00:03:11,320 dan anda mengisi lubang-lubang, 74 00:03:11,320 --> 00:03:13,990 dan ini akan menjadi lebih ketara dalam kedua 75 00:03:13,990 --> 00:03:16,670 apabila anda melihat saya mula menulis kod dalam konteks rangka kerja tersebut. 76 00:03:16,670 --> 00:03:19,130 Anda akan melihat bahawa saya mengisi jurang, 77 00:03:19,130 --> 00:03:22,450 dan rangka kerja adalah jenis mengawal semua serpihan bergerak, 78 00:03:22,450 --> 00:03:27,420 dan saya perlu meletakkan keping di tempat yang betul. 79 00:03:27,420 --> 00:03:29,360 >> Hari ini kita akan bercakap mengenai Kohana, 80 00:03:29,360 --> 00:03:31,610 yang merupakan salah satu daripada banyak rangka kerja PHP. 81 00:03:31,610 --> 00:03:34,550 Terdapat rangka kerja web, dan ada yang dalam hampir setiap bahasa tunggal, 82 00:03:34,550 --> 00:03:38,330 dan saya memilih Kohana kerana Kohana boleh dikatakan 83 00:03:38,330 --> 00:03:43,250 dan secara amnya diiktiraf sebagai PHP rangka kerja yang paling mudah untuk mengambil. 84 00:03:43,250 --> 00:03:45,940 Ia adalah yang paling ringan. 85 00:03:45,940 --> 00:03:48,470 Ada yang lain di luar sana yang datang dengan banyak, banyak lagi ciri-ciri, 86 00:03:48,470 --> 00:03:51,590 tetapi mereka cenderung untuk menjadi lebih sukar untuk meningkat. 87 00:03:51,590 --> 00:03:54,920 Dan akhirnya, Kohana menggunakan seni bina MVC itu. 88 00:03:54,920 --> 00:03:57,780 Ia cukup ringan yang kita benar-benar boleh membina projek 89 00:03:57,780 --> 00:03:59,620 di sini betul-betul di depan mata anda, dan anda boleh cukup banyak 90 00:03:59,620 --> 00:04:02,780 ikut bersama-sama cukup mudah. 91 00:04:02,780 --> 00:04:04,420 >> Apakah seni bina MVC ini? 92 00:04:04,420 --> 00:04:06,540 Ia bermaksud Model-View-Controller, 93 00:04:06,540 --> 00:04:09,560 dan mungkin jika anda berfikir tentang kod yang anda telah menulis setakat ini 94 00:04:09,560 --> 00:04:11,280 untuk beberapa psets pembangunan web anda 95 00:04:11,280 --> 00:04:14,710 anda mungkin dapat melihat beberapa ini, tetapi biasanya apabila anda mula menulis 96 00:04:14,710 --> 00:04:16,500 aplikasi web yang lebih kompleks, 97 00:04:16,500 --> 00:04:21,209 bahagian ini antara 3 segmen menjadi semakin jelas. 98 00:04:21,209 --> 00:04:26,740 Aku meletakkan keluar MVC sini jenis sebagai timbunan, 99 00:04:26,740 --> 00:04:29,920 dan sering anda akan mendengar orang bercakap tentang susunan dalam pembangunan web, 100 00:04:29,920 --> 00:04:33,760 dan ini adalah untuk menggambarkan idea bahawa 101 00:04:33,760 --> 00:04:37,510 setiap lapisan, setiap komponen benar-benar cuba untuk hanya berkomunikasi 102 00:04:37,510 --> 00:04:40,750 antara 2 komponen lain. 103 00:04:40,750 --> 00:04:44,550 Seseorang mengakses laman web anda sebagai pelanggan atau pelayar. 104 00:04:44,550 --> 00:04:48,870 Mereka berinteraksi dengan program anda melalui kod paparan. 105 00:04:48,870 --> 00:04:50,500 Kod pandangan berinteraksi dengan pengawal. 106 00:04:50,500 --> 00:04:52,400 Pengawal ini berinteraksi dengan model, 107 00:04:52,400 --> 00:04:55,090 dan model yang berinteraksi dengan pangkalan data SQL. 108 00:04:55,090 --> 00:04:59,670 Dan tidak ada melompat di antara jika anda menulis kod anda dengan betul. 109 00:04:59,670 --> 00:05:01,670 >> Apa yang perkara-perkara ini lakukan? 110 00:05:01,670 --> 00:05:06,020 Model ini pada asasnya adalah sekeping kod yang memperkatakan data anda. 111 00:05:06,020 --> 00:05:09,100 Apa sahaja yang berkaitan dengan pangkalan data anda, dengan matlamat yang anda simpan, 112 00:05:09,100 --> 00:05:11,280 atau mendapatkan semula objek dalam pangkalan data, 113 00:05:11,280 --> 00:05:13,450 itu semua dikendalikan oleh model. 114 00:05:13,450 --> 00:05:15,290 Mungkin anda mempunyai objek dalam pangkalan data anda. 115 00:05:15,290 --> 00:05:17,700 Kami akan mewujudkan satu model mempunyai kaitan dengan jawatan, 116 00:05:17,700 --> 00:05:19,760 supaya jawatan mungkin mempunyai beberapa sifat-sifat kepadanya. 117 00:05:19,760 --> 00:05:23,900 Anda mungkin mempunyai fungsi seluruh menyimpan mereka tiang atau mendapatkan semula jawatan 118 00:05:23,900 --> 00:05:26,270 atau menapis jawatan dan sebagainya dan sebagainya, 119 00:05:26,270 --> 00:05:28,880 dan itu semua kod yang yang dikendalikan oleh model. 120 00:05:28,880 --> 00:05:31,780 Pengawal ini adalah jenis logik permohonan itu, 121 00:05:31,780 --> 00:05:37,910 dan banyak perkara yang berbeza boleh pergi dalam logik permohonan. 122 00:05:37,910 --> 00:05:39,790 Jika anda bercakap dengan API yang berbeza, 123 00:05:39,790 --> 00:05:42,310 yang mungkin di mana anda berurusan dengan logik permohonan. 124 00:05:42,310 --> 00:05:47,990 Jika anda cuba untuk perlu membawa data dari pelbagai model yang berbeza 125 00:05:47,990 --> 00:05:51,540 dan perlu menggabungkan mereka dalam beberapa cara, yang sering boleh dikendalikan oleh pengawal. 126 00:05:51,540 --> 00:05:53,820 Sebagai contoh, di Facebook, jika anda kawan seseorang, 127 00:05:53,820 --> 00:05:58,500 maka mungkin bahawa perbuatan mewujudkan hubungan yang 128 00:05:58,500 --> 00:06:00,490 boleh dilakukan oleh pengawal. 129 00:06:00,490 --> 00:06:04,350 >> Dan akhirnya, pandangan adalah kod yang yang menjana apa yang anda benar-benar melihat. 130 00:06:04,350 --> 00:06:07,410 Banyak kali saya fikir dalam psets CS50 131 00:06:07,410 --> 00:06:10,050 mereka tidak menggalakkan anda semua untuk memisahkan ini 3 perkara. 132 00:06:10,050 --> 00:06:12,430 Anda mungkin akan mempunyai, fail ini panjang besar di mana di bahagian atas 133 00:06:12,430 --> 00:06:15,130 anda membuat beberapa SQL query dan mungkin melakukan beberapa pemprosesan 134 00:06:15,130 --> 00:06:17,020 pada data yang anda diambil dari pangkalan data, 135 00:06:17,020 --> 00:06:19,370 dan kemudian anda mempunyai semua HTML anda di bahagian bawah. 136 00:06:19,370 --> 00:06:22,840 Dan anda mungkin mendapati bahawa anda mewujudkan lebih banyak dan lebih banyak halaman 137 00:06:22,840 --> 00:06:25,790 yang anda akan mempunyai kod beberapa pengulangan, dan juga, 138 00:06:25,790 --> 00:06:29,600 benda itu adalah fail anda mendapat benar-benar besar dan panjang 139 00:06:29,600 --> 00:06:32,370 dan menjadi susah dipakai untuk menguruskan. 140 00:06:32,370 --> 00:06:34,500 Sebab mengapa MVC begitu juga dianggap 141 00:06:34,500 --> 00:06:36,120 adalah untuk beberapa sebab. 142 00:06:36,120 --> 00:06:38,110 Perkara pertama adalah sesuatu yang dinamakan pemisahan kebimbangan 143 00:06:38,110 --> 00:06:40,370 yang merupakan idea bahawa apabila anda mempunyai - 144 00:06:40,370 --> 00:06:43,520 ideal 1 sekeping kod perlu buat 1 perkara dan melakukannya dengan sangat baik, 145 00:06:43,520 --> 00:06:47,210 dan anda tidak perlu menggabungkan keping kod yang melakukan perkara-perkara berbeza. 146 00:06:47,210 --> 00:06:49,230 Sebagai contoh, melihat kod dan kod model, 147 00:06:49,230 --> 00:06:51,040 mereka tidak benar-benar perlu yang berkaitan. 148 00:06:51,040 --> 00:06:53,290 Mereka tidak perlu berada dalam fail yang sama, jadi apabila anda boleh, memisahkan mereka daripada 149 00:06:53,290 --> 00:06:55,300 jadi ia mudah untuk mengekalkan. 150 00:06:55,300 --> 00:06:57,130 >> Perkara yang lain adalah kod digunakan semula. 151 00:06:57,130 --> 00:06:59,770 Anda mungkin mendapati diri anda menulis SQL pertanyaan yang sama atau melakukan 152 00:06:59,770 --> 00:07:03,060 pertanyaan yang serupa yang boleh dibuat cabutan ke dalam 1 fungsi, 153 00:07:03,060 --> 00:07:05,440 dan itulah idea di sebalik model dan pengawal, 154 00:07:05,440 --> 00:07:09,690 mempunyai dalam majlis berasingan yang anda boleh menggunakan semula di tempat-tempat yang berbeza dalam projek anda. 155 00:07:09,690 --> 00:07:12,420 Dan akhirnya, itu terikat kepada pengeringan kod anda, 156 00:07:12,420 --> 00:07:14,700 atau tidak mengulangi diri sendiri, tidak mengulangi diri sendiri. 157 00:07:14,700 --> 00:07:18,090 Ini amat difahami dalam pembangunan. 158 00:07:18,090 --> 00:07:20,110 Setiap kali anda boleh, anda tidak mahu mengulangi diri sendiri, kerana jika anda mengulangi diri sendiri, 159 00:07:20,760 --> 00:07:23,400  ia lebih mahal untuk mengekalkan. 160 00:07:23,400 --> 00:07:26,040 Jika anda mahu mengubah 1 perkara, anda perlu mengubahnya di mana-mana, 161 00:07:26,040 --> 00:07:30,230 dan yang membawa kepada pepijat, dan ia dahsyat. 162 00:07:30,230 --> 00:07:32,010 >> Baiklah. 163 00:07:32,010 --> 00:07:37,270 Apa-apa soalan setakat ini kira-kira Kohana pada semua? 164 00:07:37,270 --> 00:07:39,200 Besar. 165 00:07:39,200 --> 00:07:42,300 Sekarang kita akan menyelam ke dalam sesi pengekodan hidup, 166 00:07:42,300 --> 00:07:48,050 dan diharapkan semuanya berjalan dengan baik. 167 00:07:57,200 --> 00:08:00,050 Saya akan pada dasarnya membina laman web ini 168 00:08:00,050 --> 00:08:03,910 pada salah satu pelayan jauh saya, dan dengan cara itu anda semua boleh juga 169 00:08:03,910 --> 00:08:06,310 lihat laman web dan mengakses laman web ini, 170 00:08:06,310 --> 00:08:10,990 dan juga alam sekitar adalah lebih baik daripada mesin dikonfigurasikan jauh saya, 171 00:08:10,990 --> 00:08:14,580 kerana ia berjalan Linux dan bukannya OS X. 172 00:08:14,580 --> 00:08:16,260 Kami betul-betul akan bermula. 173 00:08:16,260 --> 00:08:18,110 KohanaFramework.org. 174 00:08:18,110 --> 00:08:21,350 Saya akan memuat turun kod dari laman ini. 175 00:08:21,350 --> 00:08:24,610 Saya akan menyalin alamat pautan, 176 00:08:24,610 --> 00:08:29,770 pergi ke pelayan saya, muat turun, 177 00:08:29,770 --> 00:08:33,000 dan saya akan mendapatkan ia. 178 00:08:38,330 --> 00:08:45,710 >> [Pelajar] Apa yang terbesar anda boleh membuat teks? 179 00:08:45,710 --> 00:08:47,330 [Brandon Liu] Adakah yang lebih baik? 180 00:08:47,330 --> 00:08:50,070 [Pelajar] Adakah yang boleh dilakukan? >> [Brandon Liu] Ya, itu baik. 181 00:08:50,070 --> 00:08:54,500 Saya memuat turun fail ZIP dan unzipped itu ke dalam direktori yang dipanggil Kohana, 182 00:08:54,500 --> 00:08:58,820 dan kita akan menukar nama yang CS50-Kohana, 183 00:08:58,820 --> 00:09:01,140 dan mari kita pergi masuk 184 00:09:01,140 --> 00:09:03,610 Awesome. 185 00:09:03,610 --> 00:09:06,870 Di sini anda melihat sekumpulan fail yang berbeza. 186 00:09:06,870 --> 00:09:10,140 Kebanyakan anda boleh mengabaikan - Sign In Register New tidak akan melalui setiap fail yang di sini 187 00:09:10,140 --> 00:09:13,130 kerana kekangan masa, 188 00:09:13,130 --> 00:09:16,310 tetapi secara umumnya apabila anda memasang Kohana, perkara pertama yang anda lakukan 189 00:09:16,310 --> 00:09:23,210 adalah anda pergi ke direktori, 190 00:09:23,210 --> 00:09:26,050 dan anda pada dasarnya akan melakukan beberapa ujian persekitaran dan barang kecil 191 00:09:26,050 --> 00:09:28,640 memastikan persekitaran anda dengan betul bersedia untuk menjalankan Kohana 192 00:09:28,640 --> 00:09:31,450 dan memastikan bahawa segala-galanya adalah hak semua. 193 00:09:31,450 --> 00:09:35,510 Anda boleh melihat kebanyakan perkara berlalu, tetapi secara umumnya anda sentiasa menghadapi masalah ini 1 194 00:09:35,510 --> 00:09:38,180 di mana ia mengadu bahawa beberapa direktori tidak boleh ditulis, 195 00:09:38,180 --> 00:09:40,410 dan itu kerana beberapa kebenaran. 196 00:09:40,410 --> 00:09:43,080 Saya tidak tahu berapa banyak yang anda lelaki telah belajar mengenai kebenaran fail dalam CS50, 197 00:09:43,080 --> 00:09:47,920 tetapi jika anda melakukan pembangunan web, anda akan berjalan ke dalam isu ini banyak. 198 00:09:47,920 --> 00:09:58,340 Saya akan membuat ia ditulis 199 00:09:58,340 --> 00:10:03,390 dan saya rasa saya juga perlu - ada kita pergi. 200 00:10:03,390 --> 00:10:07,040 >> Okay, jadi sekarang anda boleh melihat semua berlalu, 201 00:10:07,040 --> 00:10:10,000 dan kini ia akan memberitahu anda untuk menukar nama fail install.php ini. 202 00:10:10,000 --> 00:10:15,630 Saya akan memindahkan fail install.php untuk installed.php, 203 00:10:15,630 --> 00:10:19,610 dan kini jika saya menyegarkan, 204 00:10:19,610 --> 00:10:22,810 ia memberi saya beberapa kesilapan, dan di sinilah debugging itu masuk 205 00:10:22,810 --> 00:10:25,610 Ini adalah di mana anda boleh melihat apa yang sebenarnya akan berlaku. 206 00:10:25,610 --> 00:10:28,460 Masalahnya, secara lalai, Kohana menganggap bahawa 207 00:10:28,460 --> 00:10:31,480 projek anda pada direktori akar domain anda, 208 00:10:31,480 --> 00:10:35,920 jadi ia mengharapkan anda berada di demo.brandonkliu.com. 209 00:10:35,920 --> 00:10:37,540 Kita perlu beritahu bahawa itu sebenarnya dalam subfolder. 210 00:10:37,540 --> 00:10:39,820 Ada dalam subfolder yang dipanggil CS50 Kohana. 211 00:10:39,820 --> 00:10:42,640 Masalahnya, ia memutarkan CS50-Kohana 212 00:10:42,640 --> 00:10:45,680 sebagai sesuatu yang lain, yang saya akan menjelaskan kepada anda dalam satu saat. 213 00:10:45,680 --> 00:10:49,910 Tetapi saya perlu memberitahu anda bahawa sesuatu itu dapat dijangka. 214 00:10:49,910 --> 00:10:53,700 Apa yang kita akan lakukan ialah kita akan pergi ke dalam folder ini dipanggil bootstrap.php, 215 00:10:53,700 --> 00:10:59,260 yang merupakan folder konfigurasi di mana banyak perkara yang berbeza ditubuhkan. 216 00:10:59,260 --> 00:11:01,570 Saya membuka bahawa sehingga. 217 00:11:01,570 --> 00:11:09,790 Maka mungkin salah satu perkara pertama yang saya akan lakukan ialah menukar zon masa. 218 00:11:09,790 --> 00:11:13,910 >> Dan kemudian mari kita lihat. 219 00:11:13,910 --> 00:11:15,180 Aha! Di sini. 220 00:11:15,180 --> 00:11:18,690 Terdapat sekumpulan kata konfigurasi yang berbeza di sini, 221 00:11:18,690 --> 00:11:21,700 tetapi yang saya cari adalah perkara ini dipanggil URL asas, 222 00:11:21,700 --> 00:11:24,570 dan secara lalai saya mendapatkannya bersedia untuk Kohana, 223 00:11:24,570 --> 00:11:29,020 tetapi saya akan mengubahnya untuk CS50-Kohana, 224 00:11:29,020 --> 00:11:32,880 dan saya rasa yang perlu membaikinya. 225 00:11:32,880 --> 00:11:34,150 Ya, hebat. 226 00:11:34,150 --> 00:11:39,530 Secara lalai, untuk melihat bahawa ia bekerja, ia berkata, "Hello World." 227 00:11:39,530 --> 00:11:42,930 Di manakah yang datang dari? Bagaimana kita dapat Hello Dunia? 228 00:11:42,930 --> 00:11:47,640 Di mana sebenarnya kod yang sebenarnya menulis itu? 229 00:11:47,640 --> 00:11:50,240 Untuk memahami bahawa, saya akan memperkenalkan konsep ini dipanggil laluan. 230 00:11:50,240 --> 00:11:52,590 Hampir semua rangka kerja web mempunyai konsep yang dipanggil laluan, 231 00:11:52,590 --> 00:11:57,230 yang merupakan perisian yang akan memetakan URL tertentu 232 00:11:57,230 --> 00:12:01,550 kepada sekeping tertentu kod dalam rangka kerja anda. 233 00:12:01,550 --> 00:12:07,510 Sebagai contoh, jika anda mempunyai beberapa URL dan anda pergi ke beberapa URL seperti foo.com / blog / semua 234 00:12:07,510 --> 00:12:11,170 maka apa yang rangka kerja akan melakukan - atau sekurang-kurangnya apa Kohana akan lakukan - 235 00:12:11,170 --> 00:12:15,540 ia akan mencari kelas yang dipanggil pengawal blog, 236 00:12:15,540 --> 00:12:18,720 dan ia akan menjalankan tindakan fungsi menamakan semua. 237 00:12:18,720 --> 00:12:20,160 Saya tahu saya bercakap tentang kelas dan fungsi, 238 00:12:20,160 --> 00:12:23,860 dan saya tahu anda semua tidak dilindungi kelas dan fungsi 239 00:12:23,860 --> 00:12:26,470 dalam CS50 lagi, tetapi untuk sekarang, 240 00:12:26,470 --> 00:12:29,800 anda boleh berfikir kelas-kelas sebagai hanya sekumpulan fungsi, 241 00:12:29,800 --> 00:12:32,900 satu cara kumpulan fungsi bersama-sama. 242 00:12:32,900 --> 00:12:37,690 Itu benar-benar semua yang anda perlu tahu. 243 00:12:37,690 --> 00:12:43,120 >> Sekarang jika kita melihat struktur folder kita, 244 00:12:43,120 --> 00:12:47,110 di dalam folder permohonan itu terdapat folder lain yang dipanggil kelas, 245 00:12:47,110 --> 00:12:49,200 dan folder lain dikenali sebagai Pengawal dan Model. 246 00:12:49,200 --> 00:12:52,530 Jika anda lihat di dalam folder Pengawal, 247 00:12:52,530 --> 00:12:56,330 kita melihat bahawa terdapat fail yang dipanggil Welcome, 248 00:12:56,330 --> 00:13:00,370 dan anda boleh lihat di sini adalah kelas yang dipanggil Pengawal Welcome, 249 00:13:00,370 --> 00:13:02,340 dan terdapat fungsi yang dipanggil Indeks Tindakan, 250 00:13:02,340 --> 00:13:06,360 dan apa yang ia adalah ia menetapkan badan respons anda kepada Hello World. 251 00:13:06,360 --> 00:13:08,730 Itulah di mana kod ini sedang ditulis. 252 00:13:08,730 --> 00:13:11,610 Persoalan lain adalah, baik, saya tidak pergi ke 253 00:13:11,610 --> 00:13:13,680 blah, blah, blah, / welcome / index. 254 00:13:13,680 --> 00:13:16,250 Bagaimana saya berakhir di sini? 255 00:13:16,250 --> 00:13:20,410 Baik, itu semata-mata kerana 256 00:13:20,410 --> 00:13:22,410 di sini di bahagian bawah fail bootstrap kami 257 00:13:22,410 --> 00:13:24,550 di mana kita menetapkan laluan kami 258 00:13:24,550 --> 00:13:26,570 anda boleh melihat bahawa mereka menetapkan beberapa mungkir untuk anda. 259 00:13:26,570 --> 00:13:28,990 Pengawal lalai adalah Selamat Datang. Tindakan lalai ialah Indeks. 260 00:13:28,990 --> 00:13:31,600 Itulah sebabnya apabila kita meletakkan apa-apa di sana ia secara automatik pergi ke pengawal Selamat Datang 261 00:13:31,600 --> 00:13:33,940 dan indeks Tindakan. 262 00:13:33,940 --> 00:13:37,460 >> Semua masuk akal setakat ini? 263 00:13:37,460 --> 00:13:40,850 Sekarang, anda boleh melakukan lebih daripada sekadar pergi ke Pengawal 264 00:13:40,850 --> 00:13:43,670 dan tindakan tertentu. 265 00:13:43,670 --> 00:13:48,480 Anda juga boleh lulus dalam parameter kepada. 266 00:13:48,480 --> 00:13:56,390 Sama seperti contoh, 267 00:13:56,390 --> 00:14:04,070 Saya akan menambah tindakan lain untuk pengawal ini untuk menunjukkan kepada anda. 268 00:14:04,070 --> 00:14:09,130 Mari kita panggil tindakan ini Echo, kerana ia akan memberitahu anda apa sahaja yang anda memberikan, 269 00:14:09,130 --> 00:14:17,510 dan jadi saya pada dasarnya akan merebut 270 00:14:17,510 --> 00:14:20,960 parameter yang akan dihantar melalui saya untuk program laluan, 271 00:14:20,960 --> 00:14:24,440 dan seperti yang anda lihat di sini, 272 00:14:24,440 --> 00:14:28,440 baris ini di sini, anda dapat melihat bahawa 273 00:14:28,440 --> 00:14:31,270 ini pada dasarnya bermakna anda mempunyai pengawal, dan anda mempunyai / a, 274 00:14:31,270 --> 00:14:33,480 dan anda mempunyai tindakan, dan anda mempunyai / yang lain, 275 00:14:33,480 --> 00:14:39,140 dan itu akan menjadi parameter, dan kerana kami mempunyai ID nama ini 276 00:14:39,140 --> 00:14:42,450 dalam kurungan sudut, ini bermakna bahawa kita menamakan ID parameter ini. 277 00:14:42,450 --> 00:14:45,490 Kemudian dalam kod controller saya jika saya mahu merebut memegang parameter itu, 278 00:14:45,490 --> 00:14:51,790 Saya boleh menggunakan kod yang saya menulis, mencari parameter yang dinamakan ID. 279 00:14:51,790 --> 00:14:59,290 Itulah apa yang saya lakukan di sini, dan saya akan kembali dan berkata, 280 00:14:59,290 --> 00:15:07,090 "Anda berkata" itu. 281 00:15:07,090 --> 00:15:10,760 Dan sekarang jika saya pergi ke laman web kami, 282 00:15:10,760 --> 00:15:19,550 Saya pergi ke cs50-kohana/welcome/echo/Helloooo-- 283 00:15:19,550 --> 00:15:21,420 oh, betul. 284 00:15:21,420 --> 00:15:23,930 Terdapat 1 langkah saya ketinggalan. 285 00:15:23,930 --> 00:15:27,020 Ini adalah sebahagian daripada idea pengekodan hidup. 286 00:15:27,020 --> 00:15:36,100 >> Berikut adalah 1 perkara. Mari kita lihat. 287 00:15:36,100 --> 00:15:38,870 Jadi biasanya secara lalai dengan banyak aplikasi web 288 00:15:38,870 --> 00:15:42,820 anda perlu termasuk perkara index.php ini dalam URL anda, 289 00:15:42,820 --> 00:15:46,410 kerana idea itu index.php adalah jenis pintu masuk 290 00:15:46,410 --> 00:15:48,250 permohonan anda, tetapi sudah tentu, 291 00:15:48,250 --> 00:15:50,110 itulah jenis menjengkelkan untuk mempunyai. 292 00:15:50,110 --> 00:15:53,790 Anda tidak mahu mempunyai index.php muncul dalam URL anda, 293 00:15:53,790 --> 00:15:56,080 dan cukup banyak setiap rangka kerja web di luar kotak 294 00:15:56,080 --> 00:15:58,440 mempunyai masalah index.php ini, 295 00:15:58,440 --> 00:16:03,370 dan jadi anda perlu mengambil beberapa langkah untuk dapat keluarkan itu. 296 00:16:03,370 --> 00:16:07,540 Dan sebagainya dalam kes ini, 297 00:16:07,540 --> 00:16:11,450 apa yang kita akan lakukan ialah kita akan menggunakan fail yang dipanggil. htaccess, 298 00:16:11,450 --> 00:16:13,900 dan ini adalah sesuatu yang khusus kepada web server Apache, 299 00:16:13,900 --> 00:16:16,290 dan ia boleh melakukan perkara-perkara seperti menulis semula URL 300 00:16:16,290 --> 00:16:19,350 dan mengarahkan URL dan sebagainya dan sebagainya, 301 00:16:19,350 --> 00:16:24,280 dan Kohana cukup bagus untuk menyediakan template. htaccess yang boleh kita gunakan. 302 00:16:24,280 --> 00:16:28,300 >> Seperti yang anda lihat, terdapat satu fail ada dipanggil example.htaccess, 303 00:16:28,300 --> 00:16:33,410 dan kita akan menyalin itu. htaccess. 304 00:16:33,410 --> 00:16:36,950 Saya akan membuka ini dan mengeditnya, 305 00:16:36,950 --> 00:16:40,840 dan pada dasarnya ia sekumpulan perkara yang berbeza. 306 00:16:40,840 --> 00:16:45,320 Garis utama anda mungkin mahu melihat yang tepat di sini. 307 00:16:45,320 --> 00:16:49,840 Idea ini adalah bahawa ini menetapkan satu peraturan yang mengatakan, 308 00:16:49,840 --> 00:16:56,400 "Okay, apa sahaja yang anda taip, Prepend index.php dengan itu." 309 00:16:56,400 --> 00:16:58,710 Anda boleh melihat bahawa. 310 00:16:58,710 --> 00:17:00,370 Ini. * Bermaksud apa-apa, sepadan dengan apa-apa, 311 00:17:00,370 --> 00:17:03,300 dan kemudian bahagian kedua adalah index.php / $ 0, 312 00:17:03,300 --> 00:17:07,410 dan $ 0 merujuk kepada apa sahaja yang telah dipadankan sebelum ini. 313 00:17:07,410 --> 00:17:09,500 Adakah ini masuk akal? 314 00:17:09,500 --> 00:17:12,190 Tetapi perkara yang benar-benar utama Saya ingin menukar adalah menukar pangkalan menulis semula ini, 315 00:17:12,190 --> 00:17:14,300 yang merupakan pangkalan URL. 316 00:17:14,300 --> 00:17:17,780 Ia semacam menganggap mana anda hendak pergi bekerja dari. 317 00:17:17,780 --> 00:17:22,560 Saya akan menambah CS50 Kohana itu, 318 00:17:22,560 --> 00:17:26,530 dan cara yang sekarang jika saya mengeluarkan index.php itu, 319 00:17:26,530 --> 00:17:32,110 ia harus bekerja, dan saya akan menambah beberapa nombor 320 00:17:32,110 --> 00:17:36,380 menunjukkan bahawa ia memang melakukan kerja-kerja. 321 00:17:36,380 --> 00:17:38,130 Bunyi yang baik. 322 00:17:38,130 --> 00:17:40,260 >> Sebarang pertanyaan setakat ini? 323 00:17:40,260 --> 00:17:42,300 [Pelajar] Bagaimana ia tahu untuk membuat 123? 324 00:17:42,300 --> 00:17:44,120 Adakah itu hujah? 325 00:17:44,120 --> 00:17:46,560 Tepat sekali. Anda boleh berfikir ia hanya seperti pertengkaran. 326 00:17:46,560 --> 00:17:52,410 Tetapi perkara yang pelik, walaupun, adalah bahawa cara Kohana melakukannya 327 00:17:52,410 --> 00:17:54,910 adalah mereka tidak melakukannya sama seperti pertengkaran. 328 00:17:54,910 --> 00:17:56,930 Anda perlu merebut ia seperti ini. 329 00:17:56,930 --> 00:18:01,030 Anda perlu merebut objek permintaan itu dan meminta parameter yang dinamakan ID, 330 00:18:01,030 --> 00:18:03,240 dan ID nama datang daripada fail bootstrap 331 00:18:03,240 --> 00:18:06,990 bahawa saya menunjukkan lebih awal, dan ID nama itu dalam mereka kurungan sudut, 332 00:18:06,990 --> 00:18:11,580 dan bagaimana anda merebut mereka parameter. 333 00:18:11,580 --> 00:18:14,010 Awesome. 334 00:18:14,010 --> 00:18:17,550 Apa-apa soalan lain? 335 00:18:17,550 --> 00:18:20,500 Seperti saya katakan, pengawal, mereka mengendalikan logik aplikasi, 336 00:18:20,500 --> 00:18:22,980 jadi itu 1 contoh di mana anda boleh melihat that's - 337 00:18:22,980 --> 00:18:24,830 ia sangat asas, tetapi ia masih logik aplikasi, 338 00:18:24,830 --> 00:18:27,980 idea meraih parameter dan mewujudkan rentetan baru 339 00:18:27,980 --> 00:18:31,920 yang mengatakan, "Anda berkata blah," dan kemudian meludah yang kembali kepada anda. 340 00:18:31,920 --> 00:18:34,030 Dan secara amnya apa yang anda lakukan adalah anda membuat pengawal yang berbeza. 341 00:18:34,030 --> 00:18:36,450 Anda membuat pengawal yang berasingan bagi bahagian yang berlainan di laman web anda. 342 00:18:36,450 --> 00:18:38,160 >> Hari ini kita akan membuat laman web yang sangat mudah, 343 00:18:38,160 --> 00:18:40,420 dan ia akan menjadi satu blog yang sangat asas. 344 00:18:40,420 --> 00:18:43,780 Kami akan membuat pengawal baru hanya untuk catatan dalam blog. 345 00:18:43,780 --> 00:18:47,060 Tetapi jika saya juga menambah komen kepada blog post, 346 00:18:47,060 --> 00:18:50,140 maka saya mungkin akan ingin pengawal baru bagi mereka komen. 347 00:18:50,140 --> 00:18:53,380 Jika saya mahu menambah pengguna, saya mungkin akan menambah pengawal baru bagi mereka pengguna, 348 00:18:53,380 --> 00:18:57,000 dan secara amnya, idea adalah bahawa setiap kali anda mempunyai model baru, 349 00:18:57,000 --> 00:18:59,630 objek data baru yang anda hadapi, 350 00:18:59,630 --> 00:19:02,970 anda mempunyai pengawal tunggal bagi objek data. 351 00:19:02,970 --> 00:19:04,370 Hari ini kita hanya akan bekerja dengan 1 objek data, 352 00:19:04,370 --> 00:19:06,250 dan itu akan menjadi jawatan, 353 00:19:06,250 --> 00:19:08,710 dan juga anda boleh berfikir objek data sebagai bersamaan dengan jadual. 354 00:19:08,710 --> 00:19:12,160 Secara amnya setiap meja sepadan dengan 1 jenis objek data, 355 00:19:12,160 --> 00:19:15,160 jadi jadual pos akan mempunyai 1 post model, 356 00:19:15,160 --> 00:19:18,230 yang akan mempunyai 1 post pengawal bersamaan dengan, 357 00:19:18,230 --> 00:19:22,190 dan yang sama untuk komen, yang sama untuk pengguna, dan sebagainya dan sebagainya. 358 00:19:22,190 --> 00:19:24,070 Dan itu adalah satu peraturan umum biasa. 359 00:19:24,070 --> 00:19:27,460 Terdapat akan menjadi kes-kes khas di mana anda mungkin berbeza daripada itu, 360 00:19:27,460 --> 00:19:29,300 tetapi 90% daripada masa itu yang anda akan lakukan, 361 00:19:29,300 --> 00:19:32,810 dan saya akan menunjukkan kepada anda bahawa apa yang kita akan lakukan hari ini. 362 00:19:32,810 --> 00:19:35,490 1 lebih banyak konsep sebelum kita menyelam ke dalam kod, 363 00:19:35,490 --> 00:19:37,710 idea ini objek pemetaan hubungan. 364 00:19:37,710 --> 00:19:41,200 >> Kalian telah melakukan pembangunan Serangga web, 365 00:19:41,200 --> 00:19:43,820 dan anda telah melihat bahawa anda membuat pertanyaan SQL, 366 00:19:43,820 --> 00:19:46,510 dan apa sahaja yang kembali kepada anda adalah baris. 367 00:19:46,510 --> 00:19:50,040 Anda mendapatkan baris ini, dan indeks anda mereka dengan beberapa nama, 368 00:19:50,040 --> 00:19:55,480 nama lajur dan meja, 369 00:19:55,480 --> 00:19:57,630 dan bagaimana anda bekerja dengannya, 370 00:19:57,630 --> 00:19:59,290 dan ia boleh agak rumit. 371 00:19:59,290 --> 00:20:01,810 Tetapi tambahan pula, jika anda mempunyai hubungan dalam pangkalan data anda, 372 00:20:01,810 --> 00:20:05,280 seperti contohnya jika saya mempunyai komen dan jawatan, 373 00:20:05,280 --> 00:20:11,240 maka mungkin saya mahu merebut jawatan induk komen. 374 00:20:11,240 --> 00:20:14,350 Jika saya menggunakan hanya baris dalam SQL, maka semua saya boleh mendapatkan adalah ID 375 00:20:14,350 --> 00:20:19,310 selepas ibu bapa dan tidak pos sebenar itu sendiri. 376 00:20:19,310 --> 00:20:21,680 Tetapi apabila kita pengekodan, apa yang kita benar-benar mahu ialah untuk benar-benar merebut 377 00:20:21,680 --> 00:20:23,550  induk pos itu sendiri kadang-kadang. 378 00:20:23,550 --> 00:20:25,730 Apa objek pemetaan hubungan tidak adalah 379 00:20:25,730 --> 00:20:29,480 ia mengambil keputusan pertanyaan pangkalan data 380 00:20:29,480 --> 00:20:32,420 dan meletakkan ke dalam objek untuk anda, yang jauh lebih bagus untuk bekerja dengan 381 00:20:32,420 --> 00:20:34,770 daripada tatasusunan kosong dan baris. 382 00:20:34,770 --> 00:20:37,550 >> Sebagai contoh, kini apabila saya mempunyai komen mungkin, 383 00:20:37,550 --> 00:20:40,900 dan saya mahu merebut jawatan induknya, 384 00:20:40,900 --> 00:20:43,440 dan saya mungkin comment arrow pos, 385 00:20:43,440 --> 00:20:45,230 maka ia benar-benar akan memberikan saya objek jawatan 386 00:20:45,230 --> 00:20:47,940 bersamaan dengan jawatan ibu bapa sebenar, bukan hanya beberapa ID, 387 00:20:47,940 --> 00:20:52,210 yang saya jika tidak perlu menggunakan dan membuat satu lagi pertanyaan SQL untuk merebut jawatan itu, 388 00:20:52,210 --> 00:20:57,430 yang rumit dan tidak perlu. 389 00:20:57,430 --> 00:21:01,840 Dan tambahan pula, dengan pemetaan semua baris data ke dalam objek, 390 00:21:01,840 --> 00:21:03,760 anda juga boleh melampirkan satu fungsi kepada objek, 391 00:21:03,760 --> 00:21:09,700 jadi sebagai contoh, saya bercakap tentang bagaimana kelas dasarnya pengelompokan fungsi. 392 00:21:09,700 --> 00:21:11,620 Anda boleh berfikir seperti itu. 393 00:21:11,620 --> 00:21:15,290 Sebagai contoh, mungkin saya mempunyai objek pos ini, 394 00:21:15,290 --> 00:21:17,830 dan mungkin saya ingin mempunyai beberapa jenis fungsi yang melekat padanya 395 00:21:17,830 --> 00:21:20,300 yang pada dasarnya memberitahu saya baru-baru ini telah ia posted? 396 00:21:20,300 --> 00:21:23,570 Adakah ia dihantar dalam minggu terakhir, benar atau palsu? 397 00:21:23,570 --> 00:21:27,320 Dan itu adalah satu fungsi saya boleh melampirkan ke objek itu, 398 00:21:27,320 --> 00:21:31,300 dan ia benar-benar mudah untuk memilikinya di tempat yang sama, 399 00:21:31,300 --> 00:21:33,820 dan terdapat pelbagai fungsi yang berbeza anda boleh membuat 400 00:21:33,820 --> 00:21:37,990 untuk objek ini, dan ia benar-benar bagus untuk dapat lampirkan ia ke kelas, 401 00:21:37,990 --> 00:21:41,700 untuk objek, manakala jika anda hanya mempunyai baris yang datang dari pangkalan data anda, 402 00:21:41,700 --> 00:21:43,790 maka anda tidak boleh benar-benar menghubungkan apa-apa fungsi untuk itu. 403 00:21:43,790 --> 00:21:47,850 Ia benar-benar hanya data. 404 00:21:47,850 --> 00:21:50,550 Sebarang soalan mengenai bahawa pada semua? 405 00:21:50,550 --> 00:21:52,710 ORMs adalah pembangunan web yang biasa, 406 00:21:52,710 --> 00:21:56,330 dan terdapat banyak jenis ORMs, 407 00:21:56,330 --> 00:21:58,450 dan Kohana mempunyai PRO sendiri. 408 00:21:58,450 --> 00:22:05,050 Ia amat asas, tetapi anda akan mendapatkan rasa apa yang kelihatan seperti. 409 00:22:05,050 --> 00:22:08,780 >> Mari kita mewujudkan satu model untuk posting blog kami, 410 00:22:08,780 --> 00:22:12,350 dan perkara pertama yang seharusnya perlu lakukan adalah untuk mewujudkan jadual sebenar 411 00:22:12,350 --> 00:22:16,680 dalam pangkalan data kami untuk benar-benar menyimpan data kami bagi mereka jawatan. 412 00:22:16,680 --> 00:22:19,260 Perkara pertama yang saya akan lakukan adalah pergi ke phpMyAdmin. 413 00:22:19,260 --> 00:22:21,410 Adakah anda lelaki digunakan phpMyAdmin sebelum ini? 414 00:22:21,410 --> 00:22:23,400 Okay, hebat, jadi anda semua sudah tahu apa yang, 415 00:22:23,400 --> 00:22:32,200 dan saya akan membuat jadual baru dipanggil Kohana Posts, 416 00:22:32,200 --> 00:22:37,820 dan ia akan menjadi benar-benar mudah. 417 00:22:37,820 --> 00:22:40,190 Saya akan mempunyai untuk log masuk kembali masuk 418 00:23:02,620 --> 00:23:04,640 Semua kita akan lakukan hari ini adalah mempunyai penulis dan badan, 419 00:23:04,640 --> 00:23:11,930 hanya menyimpan ia mudah. 420 00:23:11,930 --> 00:23:15,620 Saya akan buat jadual itu, 421 00:23:15,620 --> 00:23:19,620 dan kini kita mempunyai jadual yang mewakili posting kami 422 00:23:19,620 --> 00:23:23,370 dengan 2 bidang bagi pengarang kita dan badan kita. 423 00:23:23,370 --> 00:23:26,290 Perkara lain yang saya akan lakukan sekarang ialah 424 00:23:26,290 --> 00:23:29,820 mengkonfigurasi aplikasi web saya supaya ia tahu bagaimana untuk menyambung kepada pangkalan data, 425 00:23:29,820 --> 00:23:31,950 dan ini, sekali lagi, adalah sesuatu yang anda perlu lakukan dengan semua aplikasi web. 426 00:23:31,950 --> 00:23:34,790 Anda perlu beritahu nama pengguna dan kata laluan 427 00:23:34,790 --> 00:23:36,990 dan nama pangkalan data dan sebagainya dan sebagainya 428 00:23:36,990 --> 00:23:40,000 memikirkan bagaimana untuk benar-benar menyambung kepada pangkalan data anda. 429 00:23:40,000 --> 00:23:58,710 >> Dalam Kohana, kami mempunyai sesuatu yang dinamakan modul pangkalan data, 430 00:23:58,710 --> 00:24:02,690 dan dalam folder konfigurasi yang kita ada folder ini dipanggil Pangkalan Data, 431 00:24:02,690 --> 00:24:07,330 dan seperti yang anda lihat, terdapat sekumpulan tetapan yang anda perlu ditetapkan di sini 432 00:24:07,330 --> 00:24:09,860 beritahu apa nama pengguna dan kata laluan 433 00:24:09,860 --> 00:24:13,110 untuk pangkalan data, jadi saya benar-benar boleh menyambung kepadanya. 434 00:24:13,110 --> 00:24:15,010 Dan kerana saya tidak mahu anda semua untuk benar-benar tahu 435 00:24:15,010 --> 00:24:17,190 Nama pengguna dan kata laluan pangkalan data saya, 436 00:24:17,190 --> 00:24:23,840 Saya mempunyai fail di mana saya telah ditetapkan daripada itu, dan saya akan copy dan paste ke atas. 437 00:24:33,080 --> 00:24:36,870 Awesome. 438 00:24:36,870 --> 00:24:39,880 Okay. Saya rasa itu sahaja konfigurasi yang saya perlu lakukan, 439 00:24:39,880 --> 00:24:41,070 tetapi mari kita lihat. 440 00:24:41,070 --> 00:24:43,720 Kami akan terus bekerja di dalamnya, dan jika sesuatu kemalangan, 441 00:24:43,720 --> 00:24:47,490 maka kami akan membaikinya. 442 00:24:47,490 --> 00:24:51,830 Sekarang apa yang saya akan lakukan adalah saya akan membuat pengawal baru. 443 00:24:51,830 --> 00:24:53,190 Atau sebenarnya, maaf. 444 00:24:53,190 --> 00:24:55,080 Pertama yang saya perlu mewujudkan satu model baru. 445 00:24:55,080 --> 00:25:01,620 Saya akan mewujudkan satu model baru yang dipanggil Post.php, 446 00:25:01,620 --> 00:25:12,440 dan apa yang kita akan lakukan ialah kita akan memanggilnya kelas Model_Post. 447 00:25:12,440 --> 00:25:15,390 Dapatkan beberapa sintaks highlight, 448 00:25:15,390 --> 00:25:19,750 dan sebagainya apabila saya berkata, "memanjangkan PRO," yang pada dasarnya 449 00:25:19,750 --> 00:25:21,210 beberapa objek berorientasikan pengaturcaraan yang lebih, 450 00:25:21,210 --> 00:25:23,340 yang malangnya kamu tidak belajar di CS50 lagi, 451 00:25:23,340 --> 00:25:25,290 tetapi ia cukup mudah untuk mengambil. 452 00:25:25,290 --> 00:25:27,950 Ia memberi saya semua fungsi tambahan ini yang datang dalam pakej PRO ini, 453 00:25:27,950 --> 00:25:31,120 dan saya mendapatkan sekumpulan fungsi tambahan dan barang kecil secara percuma, 454 00:25:31,120 --> 00:25:34,810 yang anda akan melihat sedikit dalam satu saat. 455 00:25:34,810 --> 00:25:37,670 >> Sekarang sebenarnya semua saya perlu lakukan ialah mewujudkan kelas ini. 456 00:25:37,670 --> 00:25:39,160 Saya tidak perlu membuat apa-apa fungsi atau apa-apa, 457 00:25:39,160 --> 00:25:41,770 tetapi saya telah mencipta kelas yang mewakili meja, 458 00:25:41,770 --> 00:25:44,140 dan kerana saya telah dilanjutkan kelas PRO ini, 459 00:25:44,140 --> 00:25:51,080 Saya mendapat sekumpulan perkara secara percuma, jadi untuk sekarang anda tidak perlu untuk menetapkan apa-apa lagi ke atas. 460 00:25:51,080 --> 00:25:53,530 Dan kini apa yang saya akan lakukan adalah saya akan membuat pengawal baru, 461 00:25:53,530 --> 00:25:58,480 yang saya akan menamakan blog.php, 462 00:25:58,480 --> 00:26:04,350 dan saya akan menyalin lebih pengawal Selamat Datang 463 00:26:04,350 --> 00:26:11,950 jadi saya tidak perlu menaip beberapa perkara, 464 00:26:11,950 --> 00:26:20,720 dan kini saya mempunyai untuk menukar nama ini. 465 00:26:20,720 --> 00:26:24,710 Sekarang apa yang saya akan lakukan untuk menguji untuk memastikan semuanya bekerja di luar, 466 00:26:24,710 --> 00:26:27,820 Saya akan merebut jawatan itu pertama dari pangkalan data saya 467 00:26:27,820 --> 00:26:32,680 dan mencetak tubuh jawatan pada skrin. 468 00:26:32,680 --> 00:26:37,920 Untuk melakukan itu apa yang saya akan lakukan pertama adalah saya akan menyimpan kiriman 469 00:26:37,920 --> 00:26:48,770 kepada pembolehubah supaya apa yang kita akan lakukan ialah - 470 00:26:48,770 --> 00:26:52,090 dalam Kohana apa yang anda lakukan adalah untuk merebut objek jawatan 471 00:26:52,090 --> 00:26:55,380 ia adalah jenis rumit, tetapi anda perlu melakukan perkara ini dipanggil PRO :: kilang, 472 00:26:55,380 --> 00:26:57,750 dan kemudian anda lulus dalam nama model yang anda mahu, 473 00:26:57,750 --> 00:27:00,490 dan ia mengembalikan objek PRO yang mewakili model itu. 474 00:27:00,490 --> 00:27:04,860 Dan kemudian, seperti saya katakan, apabila kita melanjutkan objek PRO yang, 475 00:27:04,860 --> 00:27:07,320 kita semua kaedah ini secara percuma, jadi sebagai contoh, 476 00:27:07,320 --> 00:27:09,200 kita akan mendapat fungsi baru ini dipanggil "mencari semua," 477 00:27:09,200 --> 00:27:12,160 yang secara automatik akan kembali setiap masa tunggal dalam pangkalan data, 478 00:27:12,160 --> 00:27:14,850 yang cukup mudah. 479 00:27:14,850 --> 00:27:17,480 >> Dan kini dalam badan saya akan kembali 480 00:27:17,480 --> 00:27:24,860 post yang pertama dan kembali tubuhnya. 481 00:27:24,860 --> 00:27:27,930 Dan sudah tentu, saya perlu buat pengumuman, 482 00:27:27,930 --> 00:27:31,880 jadi mari kita memasukkan jawatan baru. 483 00:27:31,880 --> 00:27:37,870 Saya akan berkata, "Brandon, post saya yang pertama." 484 00:27:37,870 --> 00:27:40,010 Awesome. 485 00:27:40,010 --> 00:27:45,910 Dan sekarang kita akan pergi ke blog 486 00:27:45,910 --> 00:27:50,960 dan jika semua berfungsi dengan baik - oh, ini adalah beberapa perkara kebenaran fail bisu lain lagi. 487 00:27:50,960 --> 00:27:56,090 Berpegang 1 saat. Ia adalah jenis yang tidak masuk akal. 488 00:28:06,700 --> 00:28:08,490 Di sana kami pergi. Okay. 489 00:28:08,490 --> 00:28:10,040 Saya tetap bahawa masalah kebenaran. 490 00:28:10,040 --> 00:28:12,040 Ia telah cuba untuk membuat beberapa fail dan beberapa log, 491 00:28:12,040 --> 00:28:15,400 dan kebenaran, sekali lagi, tidak dipasang dengan sempurna, jadi saya membuat ia 492 00:28:15,400 --> 00:28:18,320 supaya fail-fail telah ditulis dan boleh laku 493 00:28:18,320 --> 00:28:21,090 jadi ia sebenarnya boleh log kepada perkara-perkara. 494 00:28:21,090 --> 00:28:24,220 Kini ia memberi saya satu lagi pepatah pengecualian, "kelas PRO tidak dijumpai," 495 00:28:24,220 --> 00:28:26,960 dan itu kerana saya terlupa satu lagi langkah. 496 00:28:26,960 --> 00:28:37,010 Itu terlalu buruk. 497 00:28:37,010 --> 00:28:40,270 Dalam fail folder Bootstrap, terdapat modul ini di sini, 498 00:28:40,270 --> 00:28:42,480 mana anda boleh memilih untuk menghidupkan atau mematikan. 499 00:28:42,480 --> 00:28:44,340 Ini adalah sekumpulan ciri-ciri yang berbeza yang anda boleh memilih untuk menggunakan 500 00:28:44,340 --> 00:28:46,180 dalam Kohana, yang merupakan jenis bagus. 501 00:28:46,180 --> 00:28:49,090 >> Sebagai contoh, mereka mempunyai modul pengesahan 502 00:28:49,090 --> 00:28:51,170 yang anda boleh gunakan untuk mengesahkan pengguna. 503 00:28:51,170 --> 00:28:53,390 Mereka mempunyai modul caching jika anda mahu untuk melaksanakan 504 00:28:53,390 --> 00:28:57,870 semacam caching kembali akhir untuk membuat kerja permohonan dengan lebih cepat dan barang kecil. 505 00:28:57,870 --> 00:29:02,140 Kita perlu membolehkan pangkalan data dan modul PRO yang, 506 00:29:02,140 --> 00:29:04,280 kerana seperti yang saya katakan, kami menggunakan pangkalan data ini, jelas, 507 00:29:04,280 --> 00:29:08,200 dan kita juga perlu untuk membolehkan modul PRO yang, 508 00:29:08,200 --> 00:29:12,220 kerana kami ingin mempunyai fungsi tambahan, yang bagus untuk mempunyai. 509 00:29:12,220 --> 00:29:14,240 Apa yang saya perlu lakukan adalah komentar mereka 2 baris, 510 00:29:14,240 --> 00:29:18,760 dan kini jika saya menyegarkan, ia memberikan saya satu lagi kesilapan. 511 00:29:18,760 --> 00:29:22,100 Ia berkata, "Kelas Model_Post tidak dijumpai." 512 00:29:22,100 --> 00:29:30,210 Sekarang ini adalah masalah yang baik untuk mempunyai. 513 00:29:30,210 --> 00:29:37,660 Mari kita lihat. 514 00:29:37,660 --> 00:29:42,200 Jadikan ia awam. 515 00:29:42,200 --> 00:29:46,450 No Berpegang. 516 00:30:11,610 --> 00:30:13,160 Oh, sayang. 517 00:30:13,160 --> 00:30:18,590 Saya tidak tahu mengapa ia tidak dapat mencari itu. 518 00:30:18,590 --> 00:30:21,030 Itu benar-benar aneh. 519 00:30:21,030 --> 00:30:23,820 Saya mempunyai kelas ini di sini. 520 00:30:23,820 --> 00:30:28,650 Saya rasa saya mungkin perlu - oh. 521 00:30:28,650 --> 00:30:32,010 Saya sangat dalam keadaan sihat. Saya terlupa untuk menambah tag PHP. 522 00:30:32,010 --> 00:30:34,670 Itulah sebabnya. 523 00:30:34,670 --> 00:30:41,260 Sekarang saya mempunyai untuk membatalkan bahawa 1 perubahan saya hanya melakukan. 524 00:30:41,260 --> 00:30:44,270 >> Okay. Di sana kami pergi. 525 00:30:44,270 --> 00:30:47,500 Yang benar-benar bodoh. Saya tidak mempunyai pembukaan PHP tag. 526 00:30:47,500 --> 00:30:49,900 Tetapi seperti yang anda lihat, kini ia berfungsi dengan betul, bukan? 527 00:30:49,900 --> 00:30:51,240 Kami mempunyai 1 post. 528 00:30:51,240 --> 00:30:54,730 Kami meraih post yang pertama, dan kini kami dicetak tubuhnya. 529 00:30:54,730 --> 00:30:58,010 Besar. Hebat. 530 00:30:58,010 --> 00:31:01,470 Apa-apa soalan setakat ini? 531 00:31:01,470 --> 00:31:04,100 Nope? Apa-apa soalan? 532 00:31:04,100 --> 00:31:08,340 Okay, jadi kita mencipta model jawatan itu, yang sangat asas, 533 00:31:08,340 --> 00:31:10,930 dan kita akan menambah beberapa fungsi di kemudian hari. 534 00:31:10,930 --> 00:31:13,600 Kita boleh menambah pengesahan dan penapisan. 535 00:31:13,600 --> 00:31:15,650 Pengesahan adalah salah satu perkara yang 536 00:31:15,650 --> 00:31:18,150 bahawa rangka kerja menyelesaikan untuk anda benar-benar, benar-benar baik, 537 00:31:18,150 --> 00:31:21,310 dan saya tidak fikir anda semua terpaksa melakukan ini untuk Serangga CS50 anda, 538 00:31:21,310 --> 00:31:24,000 tetapi jika anda melakukan pembangunan web untuk projek akhir anda, 539 00:31:24,000 --> 00:31:26,280 anda mungkin akan mahu melakukan beberapa jenis pengesahan, 540 00:31:26,280 --> 00:31:28,290 seperti tidak mempunyai nama-nama pengguna kosong, 541 00:31:28,290 --> 00:31:31,950 mungkin mempunyai kata laluan yang mempunyai sekurang-kurangnya beberapa panjang, perkara-perkara seperti itu. 542 00:31:31,950 --> 00:31:34,750 Dan ia benar-benar rumit untuk melaksanakan perkara-perkara ini dengan diri kita sendiri, 543 00:31:34,750 --> 00:31:37,390 dan cukup banyak setiap rangka kerja web tunggal tidak untuk anda 544 00:31:37,390 --> 00:31:41,140 dan membolehkan anda untuk melakukannya dengan cara yang sangat bersih. 545 00:31:41,140 --> 00:31:44,340 Dan model adalah di mana anda biasanya menyatakan kaedah-kaedah pengesahan, 546 00:31:44,340 --> 00:31:48,790 kerana ia mengesahkan sama ada model adalah sah atau tidak. 547 00:31:48,790 --> 00:31:51,350 >> Tetapi untuk sekarang, kita akan meletakkan sehingga kemudian, 548 00:31:51,350 --> 00:31:53,520 dan sekarang ini kita akan bekerja pada sebahagian yang lain, 549 00:31:53,520 --> 00:31:55,400 dan kita akan cuba membuat pandangan baru 550 00:31:55,400 --> 00:31:59,580 yang menyenaraikan semua jawatan. 551 00:31:59,580 --> 00:32:02,490 Langkah-langkah yang terlibat dalam membuat tindakan baru bagi penyenaraian semua jawatan 552 00:32:02,490 --> 00:32:04,810 adalah untuk menarik senarai semua jawatan 553 00:32:04,810 --> 00:32:11,990 dan kemudian menyebabkan senarai semua jawatan melalui pandangan. 554 00:32:11,990 --> 00:32:16,420 Di sini, nasib baik cukup, kita sudah meraih semua jawatan 555 00:32:16,420 --> 00:32:20,310 menggunakan baris pertama ini, mencari semua fungsi, 556 00:32:20,310 --> 00:32:22,520 dan sekarang apa yang kita akan lakukan adalah setakat ini 557 00:32:22,520 --> 00:32:25,350 Saya telah secara langsung menetapkan badan sambutan 558 00:32:25,350 --> 00:32:29,090 dengan melepaskan tali, tetapi sekarang saya mahu menggunakan pandangan, 559 00:32:29,090 --> 00:32:31,870 dan perbezaan antara pandangan dan hanya melakukan ini 560 00:32:31,870 --> 00:32:35,330 adalah dengan tujuan yang boleh terima yang bagus, template HTML besar, 561 00:32:35,330 --> 00:32:37,710 dan apa yang boleh saya lakukan adalah lulus faktor tertentu yang 562 00:32:37,710 --> 00:32:42,200 dan kemudian telah berpendapat secara automatik mengisi template yang 563 00:32:42,200 --> 00:32:44,690 menggunakan pemboleh ubah. 564 00:32:44,690 --> 00:32:50,780 Apa yang saya akan lakukan adalah saya akan mewujudkan satu pandangan baru, 565 00:32:50,780 --> 00:32:55,940 dan saya akan menamakan sesuatu pandangan seperti "blog / index," 566 00:32:55,940 --> 00:33:08,480 dan saya akan pada dasarnya mengikat ini - oh, apa yang saya menulis? 567 00:33:08,480 --> 00:33:12,910 Otak saya di tempat lain. 568 00:33:12,910 --> 00:33:16,600 Saya akan mengikat jawatan ubah kepada pandangan, 569 00:33:16,600 --> 00:33:19,950 jadi cara bahawa pandangan itu mempunyai akses kepada pos ini berubah-ubah. 570 00:33:19,950 --> 00:33:26,140 >> Dan jadi sekarang saya perlu membuat pandangan ini, 571 00:33:26,140 --> 00:33:28,500 jadi di sini kita mempunyai folder ini dipanggil "Pandangan," 572 00:33:28,500 --> 00:33:32,150 dan pertama, saya akan membuat folder baru di bawah yang dipanggil "Blog." 573 00:33:32,150 --> 00:33:35,810 Ini adalah bagus. Dengan cara itu kita boleh mempunyai hierarki yang bagus untuk pandangan kita. 574 00:33:35,810 --> 00:33:43,910 Dan kemudian saya akan mencipta fail lain di sana yang dipanggil "index.php." 575 00:33:43,910 --> 00:33:45,780 Awesome. 576 00:33:45,780 --> 00:33:52,930 Sebenarnya, mari kita mempunyai mereka kedua-dua di sini. 577 00:33:52,930 --> 00:33:56,760 Membuat fail view yang mungkin bahagian yang paling mudah semua ini, 578 00:33:56,760 --> 00:33:59,090 dan ini mungkin perkara yang anda sudah biasa dengan. 579 00:33:59,090 --> 00:34:01,240 Kita akan melakukan sesuatu yang benar-benar mudah, 580 00:34:01,240 --> 00:34:05,360 mula berkata, "Senarai saya posting blog." 581 00:34:05,360 --> 00:34:14,860 Kemudian kita boleh pergi melalui, 582 00:34:14,860 --> 00:34:17,920 dan kita boleh melelar melalui pelbagai jawatan yang, 583 00:34:17,920 --> 00:34:21,760 merebut setiap masa tunggal dan berkata sesuatu seperti - 584 00:34:21,760 --> 00:34:25,290 mungkin menambah baris 585 00:34:25,290 --> 00:34:42,460 dan kemudian mencetak pengarang dan badan. 586 00:34:42,460 --> 00:34:44,480 Yang masuk akal setakat ini? 587 00:34:44,480 --> 00:34:50,870 Dan mari kita lihat jika ia berfungsi. 588 00:34:50,870 --> 00:34:53,489 Tiada apa yang berlaku. 589 00:34:53,489 --> 00:34:55,090 Saya tertanya-tanya mengapa. 590 00:34:55,090 --> 00:34:58,760 Oh, saya tidak hadir 1 langkah. Sangat bodoh saya. 591 00:34:58,760 --> 00:35:01,640 Saya telah mencipta pandangan, tetapi saya tidak menetapkan pandangan sebagai tindak balas, 592 00:35:01,640 --> 00:35:03,190 jadi anda perlu untuk melakukan perkara 1 lagi. 593 00:35:03,190 --> 00:35:12,610 Anda perlu melakukan "ini badan sambutan" dan menetapkannya sebagai paparan. 594 00:35:12,610 --> 00:35:14,760 Di sana kami pergi. 595 00:35:14,760 --> 00:35:17,200 Kami mempunyai tajuk kita, dan kemudian kita mempunyai jawatan, 596 00:35:17,200 --> 00:35:20,500 dan hanya untuk tendangan, mari kita memasukkan jawatan lain 597 00:35:20,500 --> 00:35:23,390 supaya kita dapat melihat senarai. 598 00:35:31,800 --> 00:35:36,650 Dan memasukkan ini 2 jawatan, 599 00:35:36,650 --> 00:35:39,500 dan kini jika saya muat semula halaman, 600 00:35:39,500 --> 00:35:42,060 kita lihat semua jawatan-jawatan ini di sini. 601 00:35:42,060 --> 00:35:44,250 >> Adakah yang masuk akal setakat ini? 602 00:35:44,250 --> 00:35:46,400 Ya, satu soalan? Oh, okay. 603 00:35:46,400 --> 00:35:51,440 Seperti yang anda boleh lihat, kita telah dapat memisahkan semua kod ini di luar 604 00:35:51,440 --> 00:35:53,920 kepada bahagian-bahagian yang berlainan, dan kemudian anda boleh melihat ia adalah yang paling jelas dengan kod paparan. 605 00:35:53,920 --> 00:35:57,810 Gambar ini di sini yang mewakili pandangan, 606 00:35:57,810 --> 00:36:01,220 ia hanya mengambil berat tentang mewakili data, memaparkan data. 607 00:36:01,220 --> 00:36:04,310 Ia mendapat lulus beberapa jenis data, dan semua ia hanya menunjukkan kepada anda. 608 00:36:04,310 --> 00:36:07,660 Dalam kesemua bahagian-bahagian kod anda, anda tidak perlu bimbang tentang apa-apa itu, 609 00:36:07,660 --> 00:36:10,480 dan begitu juga, kod pandangan anda tidak perlu bimbang apa-apa mengenai 610 00:36:10,480 --> 00:36:13,390 bagaimana untuk mengakses pangkalan data dan sebagainya dan sebagainya, 611 00:36:13,390 --> 00:36:19,950 yang benar-benar baik dan membuat kod anda lebih banyak dipertahankan. 612 00:36:19,950 --> 00:36:23,390 Seperti saya katakan, pandangan, mereka dinamik dalam yang 613 00:36:23,390 --> 00:36:27,080 ia 1 fail, tetapi ia akan menghasilkan pandangan yang berbeza 614 00:36:27,080 --> 00:36:29,940 berdasarkan pembolehubah anda sebenarnya lulus dalam, 615 00:36:29,940 --> 00:36:32,370 dan tambahan pula, terdapat banyak fungsi yang berbeza pembantu 616 00:36:32,370 --> 00:36:34,230 yang anda boleh gunakan untuk membantu anda menulis kod anda lebih cepat, 617 00:36:34,230 --> 00:36:36,320 yang saya akan menunjukkan kepada anda dalam hanya satu saat. 618 00:36:36,320 --> 00:36:38,050 Yeah. 619 00:36:38,050 --> 00:36:42,490 >> [Pelajar] Jadi $ 0 adalah pengawal, betul? 620 00:36:42,490 --> 00:36:44,000 Bahawa perkara kedua. 621 00:36:44,000 --> 00:36:46,090 Persoalannya ialah adalah $ 0 pengawal? 622 00:36:46,090 --> 00:36:48,610 $ 0 adalah pembolehubah saya mencipta di sini. 623 00:36:48,610 --> 00:36:51,320 Saya telah mencipta pandangan yang pertama. Saya diberikan kepada beberapa pembolehubah. 624 00:36:51,320 --> 00:36:54,960 Kemudian saya berlalu ke dalam fungsi ini, menetapkan ia sebagai badan sambutan. 625 00:36:54,960 --> 00:36:57,260 Adakah ini masuk akal? 626 00:36:57,260 --> 00:37:02,200 [Pelajar] Jadi adalah pandangan :: kilang, pandangan seperti kelas 627 00:37:02,200 --> 00:37:06,610 atau [didengar] fungsi kilang perpustakaan? 628 00:37:06,610 --> 00:37:10,640 Persoalannya ialah mengenai fungsi pandangan :: kilang, 629 00:37:10,640 --> 00:37:14,020 dan pada dasarnya ini adalah beberapa objek berorientasikan pengaturcaraan yang lebih asasnya. 630 00:37:14,020 --> 00:37:18,000 View adalah kelas pandangan, dan ia mempunyai kaedah yang dikenali sebagai "Kilang," 631 00:37:18,000 --> 00:37:24,170 dan itu adalah satu cara untuk merebut objek yang dinamakan "blog / index." 632 00:37:24,170 --> 00:37:27,140 Dan itu lebih berorientasikan objek-barangan pengaturcaraan beberapa 633 00:37:27,140 --> 00:37:33,010 bahawa saya tidak akan pergi ke sini terlalu banyak. 634 00:37:33,010 --> 00:37:36,400 Sekarang jelas, kita mahu membuat siaran baru, 635 00:37:36,400 --> 00:37:38,790 tetapi kita tidak mahu perlu melakukannya melalui pangkalan data, 636 00:37:38,790 --> 00:37:41,280 jadi kita akan mewujudkan satu tindakan baru bagi mewujudkan jawatan baru, 637 00:37:41,280 --> 00:37:43,050 dan terdapat banyak barangan yang perlu kita lakukan. 638 00:37:43,050 --> 00:37:45,910 >> Perkara pertama yang kita akan lakukan - mari kita menangani perkara-perkara ini satu demi satu. 639 00:37:45,910 --> 00:37:48,320 Perkara pertama yang kita akan lakukan ialah kami ada untuk mewujudkan bentuk yang 640 00:37:48,320 --> 00:37:54,460 untuk memasukkan jawatan baru, 641 00:37:54,460 --> 00:37:57,360 tetapi saya juga akan menambah tindakan baru pertama, 642 00:37:57,360 --> 00:38:01,050 jadi menambah tindakan baru adalah semudah 643 00:38:01,050 --> 00:38:03,490 menambah fungsi baru dengan pengawal anda, 644 00:38:03,490 --> 00:38:13,710 dan untuk sekarang saya akan melakukan sesuatu yang sangat asas, 645 00:38:13,710 --> 00:38:20,850 hanya merebut pandangan ini dan pengeposan, hanya memaparkannya untuk anda. 646 00:38:20,850 --> 00:38:26,220 Dan maka sekarang saya akan membuat fail pandangan baru, 647 00:38:26,220 --> 00:38:33,690 dan saya akan mula menulis beberapa perkara. 648 00:38:33,690 --> 00:38:36,540 Apa yang baik tentang Kohana ini ialah mereka memberikan banyak fungsi yang berbeza pembantu 649 00:38:36,540 --> 00:38:38,790 untuk anda untuk menulis kod pandangan yang lebih mudah, 650 00:38:38,790 --> 00:38:41,970 dan 1 fungsi-fungsi atau modul pembantu pembantu 651 00:38:41,970 --> 00:38:45,860 adalah sekitar menulis bentuk. 652 00:38:45,860 --> 00:38:49,460 Untuk menulis borang, saya tidak benar-benar mempunyai untuk terus menulis apa-apa HTML diri saya. 653 00:38:49,460 --> 00:38:51,100 Anda semua telah menulis bentuk HTML. 654 00:38:51,100 --> 00:38:54,850 Anda tahu bagaimana ia boleh menjadi benar-benar, benar-benar menyakitkan dan rumit untuk menulis bentuk. 655 00:38:54,850 --> 00:38:59,970 Ia tidak menyeronokkan, jadi nasib baik, 656 00:38:59,970 --> 00:39:04,860 kita pada dasarnya boleh menulis bentuk yang menggunakan ini Kohana 657 00:39:04,860 --> 00:39:11,190 membentuk fungsi pembantu untuk melakukannya untuk kita. 658 00:39:11,190 --> 00:39:17,340 Kami akan pada dasarnya mempunyai bidang untuk setiap perkara yang kita ada, 659 00:39:17,340 --> 00:39:23,160 jadi satu untuk penulis dan satu untuk badan-badan. 660 00:39:23,160 --> 00:39:27,090 Kita akan mempunyai label, dan kita akan mempunyai input. 661 00:39:37,450 --> 00:39:41,360 >> Dan akhirnya, kita akan mempunyai penyerahan. 662 00:39:49,350 --> 00:39:52,230 Dan seperti yang anda lihat, ini adalah lebih bersih untuk menulis 663 00:39:52,230 --> 00:39:58,150 daripada semua yang HTML tidak kemas, yang jenis baik. 664 00:39:58,150 --> 00:40:00,930 Diberikan, terdapat rangka kerja web lain yang mempunyai ia lebih bersih daripada itu, 665 00:40:00,930 --> 00:40:04,440 tetapi sekurang-kurangnya ini adalah lebih baik daripada menulis HTML ini sendiri. 666 00:40:09,400 --> 00:40:11,130 Awesome, jadi ini adalah apa yang anda lihat. 667 00:40:11,130 --> 00:40:13,530 Itu memang tidak kemas, 668 00:40:13,530 --> 00:40:19,720 jadi saya akan menambah satu baris ada 669 00:40:19,720 --> 00:40:21,180 untuk membuat yang kelihatan sedikit lebih bagus. 670 00:40:21,180 --> 00:40:23,330 Nah, sudah tentu, ia masih kelihatan benar-benar, benar-benar buruk, tetapi kami hanya memberi tumpuan 671 00:40:23,330 --> 00:40:26,050 pada fungsi untuk sekarang dan bukan pada estetika. 672 00:40:26,050 --> 00:40:28,010 Tiada masa untuk melakukan segala-galanya. 673 00:40:28,010 --> 00:40:30,600 Dan seperti yang anda lihat, sekarang kita mempunyai bentuk super asas, 674 00:40:30,600 --> 00:40:32,080 yang jenis baik. 675 00:40:32,080 --> 00:40:36,730 Kod ini saya akan berkata lebih bersih daripada cuba untuk menulis HTML membentuk diri sendiri, 676 00:40:36,730 --> 00:40:40,290 jadi itu bagus. 677 00:40:40,290 --> 00:40:42,030 Apa yang akan datang? 678 00:40:42,030 --> 00:40:49,260 Sekarang kita perlu melakukan perkara-perkara dengan tindakan itu. 679 00:40:49,260 --> 00:40:51,240 Biasanya apabila anda menulis bentuk HTML, 680 00:40:51,240 --> 00:40:54,070 anda perlu beritahu di mana ia akan menghantarnya ke mana. 681 00:40:54,070 --> 00:40:56,050 Lalai di dalam rangka kerja web yang paling, 682 00:40:56,050 --> 00:40:58,200 ia mengemukakan kepada URL yang sama, jadi perkara itu, 683 00:40:58,200 --> 00:41:01,310 jika anda menghantar permintaan mendapatkan ke / blog / baru, 684 00:41:01,310 --> 00:41:03,240 ia harus memaparkan anda borang, 685 00:41:03,240 --> 00:41:06,810 tetapi jika anda menghantar permintaan pos ke / blog / baru dengan data, 686 00:41:06,810 --> 00:41:10,000 ia sebenarnya harus cuba untuk menyelamatkan jawatan itu 687 00:41:10,000 --> 00:41:13,300 dan melakukan sesuatu dengannya. 688 00:41:20,630 --> 00:41:22,180 >> Apa yang kita akan lakukan ialah 689 00:41:22,180 --> 00:41:25,320 pada dasarnya semua perlu kita lakukan untuk memeriksa sama ada ia adalah satu permintaan pos atau permintaan mendapatkan 690 00:41:25,320 --> 00:41:29,350 adalah untuk menyemak apakah pembolehubah pos anda boleh menetapkan. 691 00:41:29,350 --> 00:41:34,560 Dan jika post pembolehubah ditetapkan, maka kita akan cuba membuat siaran baru. 692 00:41:34,560 --> 00:41:38,440 Sekali lagi, kita hanya melakukan ini, 693 00:41:38,440 --> 00:41:41,090 dan yang mencipta satu jawatan baru, dan kami betul-betul akan 694 00:41:41,090 --> 00:41:51,150 ditetapkan bidang seperti ini, 695 00:41:51,150 --> 00:41:55,640 dan kemudian kita akan menyimpannya. 696 00:41:55,640 --> 00:41:59,200 Dan kemudian saya akan mengarahkan 697 00:41:59,200 --> 00:42:07,660 Ke halaman indeks supaya mereka boleh melihat senarai jawatan lagi. 698 00:42:07,660 --> 00:42:09,620 Mari kita cuba itu. 699 00:42:09,620 --> 00:42:15,160 Saya akan berkata, "Brandon," 700 00:42:15,160 --> 00:42:18,140 dan kemudian mengemukakan jawatan itu, dan jika semua berjalan lancar, 701 00:42:18,140 --> 00:42:21,390 seperti yang anda lihat, ia diarahkan saya untuk halaman indeks, 702 00:42:21,390 --> 00:42:24,140 dan jika saya tatal ke bawah, kami mempunyai jawatan yang baru dimasukkan. 703 00:42:24,140 --> 00:42:26,430 Yay! 704 00:42:26,430 --> 00:42:28,430 Ya, soalan. 705 00:42:28,430 --> 00:42:31,760 >> [Pelajar] Bagaimana jika anda telah memasuki perkara yang sama 706 00:42:31,760 --> 00:42:33,380 anda masukkan sebelum ini? 707 00:42:33,380 --> 00:42:36,950 Adakah ia periksa untuk memastikan anda tidak ditiru 708 00:42:36,950 --> 00:42:38,810 penyerahan yang sama? 709 00:42:38,810 --> 00:42:41,660 Menjadi lalai, tidak, kerana secara lalai - 710 00:42:41,660 --> 00:42:46,470 maaf, soalan itu jika anda memasukkan dalam data yang tepat sama dalam bentuk yang 711 00:42:46,470 --> 00:42:50,180 dan mengemukakan hujah bahawa, ia akan membolehkan anda untuk memasukkan objek salinan, 712 00:42:50,180 --> 00:42:52,550 satu salinan catatan, pada dasarnya? 713 00:42:52,550 --> 00:42:54,070 Sekarang, ya, ia akan membolehkan anda untuk berbuat demikian, 714 00:42:54,070 --> 00:42:58,860 kerana di dalam pangkalan data itu dengan sempurna yang sah untuk mempunyai baris sepenuhnya salinan, 715 00:42:58,860 --> 00:43:02,260 tetapi jika itu adalah satu kebimbangan, maka anda boleh menambah pengesahan, sebagai contoh, 716 00:43:02,260 --> 00:43:06,430 memastikan bahawa jika ini adalah sama seperti sesuatu yang sudah wujud, 717 00:43:06,430 --> 00:43:08,720 kemudian mengatakan bahawa ia adalah satu objek yang tidak sah, 718 00:43:08,720 --> 00:43:11,200 dan kemudian anda juga boleh menentukan mesej ralat anda 719 00:43:11,200 --> 00:43:14,390 dan berkata, "tidak sah kerana ini telah wujud" atau sesuatu seperti itu. 720 00:43:14,390 --> 00:43:22,420 Tetapi dalam kes ini, saya hanya boleh mencipta sesuatu salinan. 721 00:43:22,420 --> 00:43:26,010 Sekarang mari kita cuba dan menambah beberapa pengesahan. 722 00:43:26,010 --> 00:43:30,400 Masalahnya ini sekarang ialah 723 00:43:30,400 --> 00:43:34,220 Saya benar-benar boleh menyerahkan hantar siaran sepenuhnya kosong. 724 00:43:34,220 --> 00:43:37,500 Saya boleh klik butang ini sekarang, dan di sana kami pergi. 725 00:43:37,500 --> 00:43:40,290 Anda tidak boleh benar-benar melihatnya, tetapi garis ini tambahan di sini 726 00:43:40,290 --> 00:43:43,830 menunjukkan bahawa saya benar-benar mempunyai jawatan baru. 727 00:43:43,830 --> 00:43:46,050 Ia hanya mempunyai seorang pengarang kosong dan badan yang kosong, 728 00:43:46,050 --> 00:43:48,630 dan kita tidak mahu membenarkan orang ramai untuk berbuat demikian. 729 00:43:48,630 --> 00:43:52,550 Ini adalah di mana pengesahan datang masuk 730 00:43:52,550 --> 00:43:57,540 >> Saya boleh pergi ke objek model saya, 731 00:43:57,540 --> 00:43:59,530 dan kini saya boleh menambah fungsi baru yang menentukan 732 00:43:59,530 --> 00:44:02,000 apa peraturan pengesahan saya perlu menambah kepada model ini 733 00:44:02,000 --> 00:44:06,840 memastikan bahawa ia adalah sah atau untuk menentukan apakah maknanya menjadi jawatan yang sah? 734 00:44:06,840 --> 00:44:10,210 Dan saya mahu untuk mengatakan ia hanya jawatan yang sah jika kedua-dua pengarang dan badan 735 00:44:10,210 --> 00:44:15,150 tidak kosong, dan ini adalah bagaimana anda melakukannya dalam Kohana. 736 00:44:15,150 --> 00:44:18,750 Anda membuat satu fungsi baru yang dinamakan "Peraturan," 737 00:44:18,750 --> 00:44:20,210 dan kemudian anda pada dasarnya kembali pelbagai bersekutu 738 00:44:20,210 --> 00:44:24,230 yang mentakrifkan kaedah-kaedah pengesahan untuk objek ini. 739 00:44:24,230 --> 00:44:27,530 Kita akan kembali array, dan kemudian apa yang kita akan lakukan ialah 740 00:44:27,530 --> 00:44:32,820 berkata "pengarang," ia pergi ke array, 741 00:44:32,820 --> 00:44:37,720 yang pergi ke pelbagai lain yang dipanggil "tidak kosong." 742 00:44:37,720 --> 00:44:41,480 Dan kemudian saya akan berkata "tubuh." 743 00:44:50,980 --> 00:44:54,120 Okay, dan sintaks untuk ini dan struktur untuk ini 744 00:44:54,120 --> 00:44:56,530 mungkin kelihatan rumit sedikit dan sedikit rumit. 745 00:44:56,530 --> 00:44:59,330 Jika anda membaca dokumentasi, ia agak mudah untuk memikirkan, 746 00:44:59,330 --> 00:45:02,500 Tetapi pada dasarnya ini adalah apa yang anda perlu lakukan untuk menentukan 747 00:45:02,500 --> 00:45:04,130 beberapa peraturan pengesahan, dan terdapat banyak peraturan yang berbeza 748 00:45:04,130 --> 00:45:06,810 yang Kohana akan memberikan anda secara percuma, seperti anda boleh menambah kaedah-kaedah untuk mengatakan 749 00:45:06,810 --> 00:45:08,410 ia mesti sekurang-kurangnya panjang ini. 750 00:45:08,410 --> 00:45:11,800 Mungkin ia telah menjadi nombor. Mungkin ia perlu angka alfa. 751 00:45:11,800 --> 00:45:14,410 Mungkin ia telah menjadi paling panjang ini, sebagainya dan sebagainya. 752 00:45:14,410 --> 00:45:17,730 Terdapat banyak kaedah-kaedah yang berbeza yang Kohana menyediakan untuk anda, 753 00:45:17,730 --> 00:45:19,610 dan anda boleh pergi di laman web mereka, melihat dokumentasi, 754 00:45:19,610 --> 00:45:23,150 dan anda boleh melihat semua perkara yang berbeza yang boleh anda lakukan. 755 00:45:23,150 --> 00:45:25,650 >> Tetapi ini semua saya perlu lakukan, 756 00:45:25,650 --> 00:45:30,490 dan sekarang mari kita lihat apa yang berlaku 757 00:45:30,490 --> 00:45:34,060 jika saya menyerahkan hantar siaran kosong. 758 00:45:34,060 --> 00:45:36,960 Apa yang akan berlaku? Oh, tidak, saya mendapat ralat. 759 00:45:36,960 --> 00:45:39,440 Saya mendapat pengecualian pengesahan. 760 00:45:39,440 --> 00:45:41,070 Nah, ia adalah baik. 761 00:45:41,070 --> 00:45:43,200 Ia memberitahu saya bahawa model saya adalah tidak sah, 762 00:45:43,200 --> 00:45:45,780 tetapi saya tidak mahu memaparkan pengecualian 763 00:45:45,780 --> 00:45:48,720 untuk pengguna saya apabila mereka cuba untuk mengemukakan sesuatu yang tidak sah, bukan? 764 00:45:48,720 --> 00:45:51,560 Saya mahu memberikan mereka beberapa jenis mesej ralat mesra 765 00:45:51,560 --> 00:45:53,610 apabila sesuatu berlaku. 766 00:45:53,610 --> 00:46:01,830 Apa yang kita akan lakukan ialah kita akan 767 00:46:01,830 --> 00:46:04,490 membalut segala-galanya dalam gelung cuba menangkap. 768 00:46:04,490 --> 00:46:06,750 Sebenarnya, saya rasa ini adalah juga sesuatu yang anda tidak belajar yet 769 00:46:06,750 --> 00:46:10,820 dalam CS50, kerana C, bahasa pengaturcaraan C, 770 00:46:10,820 --> 00:46:14,000 tidak mempunyai pengecualian, tetapi hampir setiap bahasa lain tunggal 771 00:46:14,000 --> 00:46:16,700 mempunyai pengecualian, jadi benar-benar, benar-benar secara ringkas, 772 00:46:16,700 --> 00:46:19,430 pengecualian adalah sesuatu yang sekeping kod boleh 773 00:46:19,430 --> 00:46:21,430 membuang pengecualian apabila ada masalah, 774 00:46:21,430 --> 00:46:23,410 tetapi mungkin beberapa bahagian lain kod lebih tinggi 775 00:46:23,410 --> 00:46:25,810 boleh menangkap pengecualian itu dan melakukan sesuatu dengannya. 776 00:46:25,810 --> 00:46:27,710 >> Sebagai contoh, dalam kes ini, 777 00:46:27,710 --> 00:46:29,940 sekeping kod yang cuba untuk menyelamatkan model, 778 00:46:29,940 --> 00:46:33,170 ia memperkukuh model itu, dan jika ia berkata, "Baiklah, model ini adalah tidak sah," 779 00:46:33,170 --> 00:46:36,150 ia akan membuang pengecualian, dan ini adalah jenis bersamaan dengan 780 00:46:36,150 --> 00:46:39,870 dalam C anda mungkin mengembalikan -1 atau sesuatu seperti itu. 781 00:46:39,870 --> 00:46:42,320 Dan kemudian bagi saya, fungsi ini, kod saya 782 00:46:42,320 --> 00:46:46,310 pada tahap yang lebih tinggi, saya boleh cuba dan menangkap pengecualian yang 783 00:46:46,310 --> 00:46:49,330 dan pada dasarnya berkata, "Baiklah, jika saya menangkap pengecualian, apa yang saya akan lakukan?" 784 00:46:49,330 --> 00:46:51,570 Atau saya boleh memilih untuk tidak menangkap pengecualian itu dan membiarkan orang lebih tinggi 785 00:46:51,570 --> 00:46:54,400 menangkap pengecualian, atau jika tiada siapa yang menangkap ia, 786 00:46:54,400 --> 00:46:56,820 maka keseluruhan program crash dan berkata, 787 00:46:56,820 --> 00:46:59,170 "Sesuatu telah berlaku, dan saya tidak boleh menghadapinya." 788 00:46:59,170 --> 00:47:04,490 >> Tetapi apa yang kita lakukan adalah anda balut sekeping kod dalam blok cuba, 789 00:47:04,490 --> 00:47:09,030 dan kemudian anda juga menambah sesuatu yang dinamakan blok menangkap, 790 00:47:09,030 --> 00:47:17,300 yang merupakan jenis kod yang akan cuba dan menangkap pengecualian yang mungkin berlaku. 791 00:47:17,300 --> 00:47:20,430 Dan jadi jika saya menangkap pengecualian ini tertentu 792 00:47:20,430 --> 00:47:23,110 atau pembatalan pengecualian, maka apa yang saya akan lakukan ialah 793 00:47:23,110 --> 00:47:31,210 Saya akan menetapkan kesilapan - saya rasa itulah bagaimana saya melakukannya - 794 00:47:31,210 --> 00:47:35,370 dan saya akan menetapkan kesilapan untuk beberapa objek. 795 00:47:35,370 --> 00:47:40,920 Dan kemudian apa yang saya akan lakukan ialah jika ia mencecah pengecualian ini, 796 00:47:40,920 --> 00:47:43,090 ia tidak akan mengubah hala, dan jika ia tidak mengubah hala 797 00:47:43,090 --> 00:47:46,160 ia akan keluar dari jika blog 798 00:47:46,160 --> 00:47:49,920 dan memukul blog ini / baru, yang mahu saya mahu lakukan. 799 00:47:49,920 --> 00:47:53,190 Jika terdapat kesilapan, maka saya ingin kembali kepada bentuk yang 800 00:47:53,190 --> 00:47:55,100 dan memaparkan kesilapan-kesilapan tersebut. 801 00:47:55,100 --> 00:48:00,780 Sekarang apa yang saya mahu lakukan adalah saya mahu lulus dalam kesilapan-kesilapan tersebut 802 00:48:00,780 --> 00:48:07,010 untuk paparan. 803 00:48:07,010 --> 00:48:10,360 Okay, saya fikir saya mempunyai pandangan yang betul di sini, 804 00:48:10,360 --> 00:48:14,660 dan pada dasarnya saya ingin memaparkan kesilapan-kesilapan tersebut jika wujud. 805 00:48:14,660 --> 00:48:19,740 Sebelum saya menulis HTML untuk itu, saya akan benar-benar cepat 806 00:48:19,740 --> 00:48:21,720 menunjukkan kepada anda apa struktur kesilapan ini kelihatan berubah-ubah suka, 807 00:48:21,720 --> 00:48:23,080 dan ini adalah satu amalan yang baik secara umum. 808 00:48:23,080 --> 00:48:25,070 Banyak kali anda mendapat sesuatu kembali dari kaedah tertentu, 809 00:48:25,070 --> 00:48:27,250 beberapa fungsi dalam rangka kerja web, 810 00:48:27,250 --> 00:48:29,410 dan anda tidak tahu apa yang berubah-ubah yang kelihatan seperti, 811 00:48:29,410 --> 00:48:31,210 supaya anda tidak tahu bagaimana untuk bekerja dengannya. 812 00:48:31,210 --> 00:48:37,790 Saya akan menggunakan kaedah cetak r pada dasarnya mencetak. 813 00:48:37,790 --> 00:48:41,100 >> Dan seperti yang anda lihat, ia memberitahu saya ia pelbagai bersekutu, 814 00:48:41,100 --> 00:48:44,880 dan anda mempunyai kunci, pengarang, mata kepada tali ini, 815 00:48:44,880 --> 00:48:47,050 penulis tidak boleh kosong, dan utama yang lain, badan, 816 00:48:47,050 --> 00:48:49,680 mata kepada satu lagi rentetan, badan tidak boleh kosong. 817 00:48:49,680 --> 00:48:52,130 Saya seperti, okay, sejuk. 818 00:48:52,130 --> 00:48:56,230 Kemudian saya boleh melelar melalui array dan mencetak setiap mesej. 819 00:48:56,230 --> 00:49:02,150 Ia pada dasarnya seperti pelbagai bersekutu dengan sekumpulan mesej. 820 00:49:02,150 --> 00:49:13,500 Apa yang saya akan lakukan ialah "jika kesilapan," 821 00:49:13,500 --> 00:49:17,140 dan saya akan membuat senarai tidak tertib, 822 00:49:17,140 --> 00:49:20,860 dan saya akan melelar melalui semua kesilapan. 823 00:49:33,730 --> 00:49:38,710 Dan ini, dan kini saya akan cuba mengemukakan ini lagi, 824 00:49:38,710 --> 00:49:41,200 dan mari kita lihat apa yang kita dapat. 825 00:49:41,200 --> 00:49:45,370 Sekarang kita mendapatkan senarai ini bagus kesilapan, 826 00:49:45,370 --> 00:49:48,630 dan ini masih cantik hodoh, tetapi ini jelas boleh diformat untuk kelihatan bagus, 827 00:49:48,630 --> 00:49:51,620 tetapi idea asas adalah hanya dalam beberapa baris kod, 828 00:49:51,620 --> 00:49:53,720 kami dapat mengesahkan model kita, 829 00:49:53,720 --> 00:49:56,510 memastikan bahawa bidang-bidang tertentu tidak kosong, 830 00:49:56,510 --> 00:49:59,740 dan jika sesuatu yang salah, kemudian kembali beberapa jenis mesej ralat 831 00:49:59,740 --> 00:50:01,760 Saya kemudian boleh mengemukakan kembali kepada pengguna. 832 00:50:01,760 --> 00:50:03,910 Anda juga boleh menyesuaikan pengesahan anda 833 00:50:03,910 --> 00:50:07,590 supaya anda benar-benar boleh mempunyai mesej ralat 834 00:50:07,590 --> 00:50:09,620 yang lebih khusus kepada permohonan atau sesuatu seperti itu anda. 835 00:50:09,620 --> 00:50:14,600 Semua yang umumnya disesuaikan. 836 00:50:14,600 --> 00:50:17,150 >> Malangnya, kami kehabisan masa, 837 00:50:17,150 --> 00:50:20,040 jadi saya akan mempunyai untuk memotong sesi pengekodan hidup di sini. 838 00:50:20,040 --> 00:50:22,980 Terdapat sekumpulan ciri-ciri lain yang saya mahu untuk menunjukkan untuk anda 839 00:50:22,980 --> 00:50:25,650 dalam contoh ini. 840 00:50:25,650 --> 00:50:27,620 Sebagai contoh, anda boleh menambah template untuk laman web anda, 841 00:50:27,620 --> 00:50:31,110 jadi mungkin terdapat beberapa jenis kod HTML yang anda ingin memohon 842 00:50:31,110 --> 00:50:35,190 untuk setiap halaman tunggal di laman web anda, dan bukannya menampal yang 843 00:50:35,190 --> 00:50:40,630 dalam setiap fail view yang tunggal anda mempunyai, yang jelas akan menjadi amalan yang tidak baik, 844 00:50:40,630 --> 00:50:43,020 anda pada dasarnya boleh menentukan bentuk ini, 845 00:50:43,020 --> 00:50:46,660 dan kemudian dalam pengawal anda berkata, "Baiklah, saya menggunakan template ini." 846 00:50:46,660 --> 00:50:50,130 "Adakah semua pandangan saya menggunakan template ini." 847 00:50:50,130 --> 00:50:52,470 Dan salah satu perkara terakhir yang saya mahu untuk menunjukkan kepada anda juga 848 00:50:52,470 --> 00:50:57,800 bahawa kita tidak mempunyai masa untuk adalah cross-site scripting, 849 00:50:57,800 --> 00:51:01,430 dan pada dasarnya saya fikir anda semua mungkin telah lihat dalam CS50 - 850 00:51:01,430 --> 00:51:03,770 Saya rasa David Malan mungkin bercakap tentang bagaimana anda biasanya boleh menyuntik 851 00:51:03,770 --> 00:51:08,040 JavaScript kod ke - adakah anda bercakap tentang ini? 852 00:51:08,040 --> 00:51:10,220 Mungkin? Mungkin tidak? 853 00:51:10,220 --> 00:51:12,670 >> Tetapi banyak kali anda boleh menyuntik kod JavaScript yang berniat jahat 854 00:51:12,670 --> 00:51:15,630 ke dalam pangkalan data seseorang, dan jika mereka tidak melarikan diri yang betul, 855 00:51:15,630 --> 00:51:18,280 kemudian apabila mereka membentangkan data yang kembali kepada pengguna, 856 00:51:18,280 --> 00:51:21,310 maka ia boleh menjalankan beberapa jenis kod JavaScript rawak yang anda tidak mahu berlaku, 857 00:51:21,310 --> 00:51:23,050 dan saya akan menunjukkan bagaimana anda akan melakukannya dalam Kohana. 858 00:51:23,050 --> 00:51:25,380 Ini sebenarnya benar-benar, benar-benar mudah. 859 00:51:25,380 --> 00:51:31,920 Saya boleh melakukannyasekarang di 2 saat betul-betul. 860 00:51:31,920 --> 00:51:34,560 Apa yang anda perlu lakukan adalah pada dasarnya balut perkara-perkara ini 861 00:51:34,560 --> 00:51:46,920 dalam perkara ini dipanggil entiti HTML. 862 00:51:46,920 --> 00:51:51,180 Dan yang secara automatik akan terlepas semua watak-watak dengan betul 863 00:51:51,180 --> 00:51:54,730 dan pastikan anda tidak mendapat masalah ini. 864 00:51:54,730 --> 00:51:57,220 [Pelajar] Anda dieja ujian pertama dengan tidak betul. 865 00:51:57,220 --> 00:52:01,030 [Brandon Liu] Oh, oops. 866 00:52:01,030 --> 00:52:06,420 >> Okay, itu sahaja saya terpaksa berkongsi dengan anda untuk hari ini. 867 00:52:06,420 --> 00:52:09,930 Ini slaid akan diposkan, tetapi ini adalah secara amnya 868 00:52:09,930 --> 00:52:13,900 satu-satunya sumber yang anda benar-benar harus perlukan untuk bermula dengan Kohana. 869 00:52:13,900 --> 00:52:16,770 Anda boleh pergi ke laman web. Mereka mempunyai panduan pengguna, dan mereka juga mempunyai explorer API. 870 00:52:16,770 --> 00:52:20,630 Kita boleh meneroka semua fungsi yang berbeza dan fungsi pembantu mereka ada untuk anda. 871 00:52:20,630 --> 00:52:22,070 Mereka umumnya mempunyai maklumat yang cukup di laman web 872 00:52:22,070 --> 00:52:25,310 yang boleh anda gunakan untuk memulakan dan mendapatkan pergi dengan Kohana. 873 00:52:25,310 --> 00:52:30,840 Tidak ada yang banyak tutorial, saya fikir, untuk Kohana, di luar 874 00:52:30,840 --> 00:52:33,880 apa yang mereka ada di laman web di sini, jadi ini mungkin taruhan terbaik. 875 00:52:33,880 --> 00:52:35,600 Tetapi jika anda mahu pergi dengan rangka kerja web 876 00:52:35,600 --> 00:52:37,120 dan anda tidak mahu perlu memilih satu bahasa baru, 877 00:52:37,120 --> 00:52:39,780 dan anda mahu sesuatu yang agak ringan dan mempunyai keluk pembelajaran yang mudah, 878 00:52:39,780 --> 00:52:41,570 Saya pasti akan mencadangkan Kohana. 879 00:52:41,570 --> 00:52:44,040 Itu mungkin menawarkan yang terbaik untuk itu. 880 00:52:44,040 --> 00:52:46,830 Perkara yang melucukan, walaupun, adalah jika kita telah menggunakan Ruby on Rails, 881 00:52:46,830 --> 00:52:48,550 kita boleh ditiru apa yang kita hanya melakukan 882 00:52:48,550 --> 00:52:51,430 dan mungkin lebih di bawah 3 minit. 883 00:52:51,430 --> 00:52:54,710 Jenaka tidak, tetapi belajar Ruby on Rails mengambil masa yang lebih lama 884 00:52:54,710 --> 00:52:56,780 daripada ia akan mengambil masa untuk belajar Kohana. 885 00:52:56,780 --> 00:52:58,840 Ia pada dasarnya pilihan anda pada apa yang anda mahu untuk memilih untuk belajar, 886 00:52:58,840 --> 00:53:01,260 tetapi jika anda mahu untuk bangun dan berjalan dengan cepat, 887 00:53:01,260 --> 00:53:03,870 Kohana pastinya pilihan yang sangat baik. 888 00:53:03,870 --> 00:53:06,730 >> Apa-apa soalan terakhir sebelum kita berakhir? Ya. 889 00:53:06,730 --> 00:53:08,020 [Pelajar] Bagaimana kita akan mengintegrasikan yang 890 00:53:08,020 --> 00:53:13,120 dalam kerangka CSS seperti anda telah menggunakan apabila anda mengarahkan? 891 00:53:13,120 --> 00:53:16,700 Persoalannya ialah bagaimana kita akan mengintegrasikan dengan rangka kerja CSS? 892 00:53:16,700 --> 00:53:18,740 Apa yang kita mungkin akan lakukan ialah kita mungkin akan termasuk 893 00:53:18,740 --> 00:53:21,090 folder baru di mana kita akan membuang semua fail CSS kita, 894 00:53:21,090 --> 00:53:23,010 dan kemudian kami juga akan menambah templat baru. 895 00:53:23,010 --> 00:53:26,090 Dalam template kita akan termasuk fail-fail CSS 896 00:53:26,090 --> 00:53:28,410 untuk memastikan mereka dirujuk pada setiap halaman tunggal, 897 00:53:28,410 --> 00:53:32,220 dan kemudian apabila anda sebenarnya menulis HTML, 898 00:53:32,220 --> 00:53:34,010 anda hanya menambah kelas dan barang kecil yang sesuai, 899 00:53:34,010 --> 00:53:36,100 dan sebagai contoh, apabila anda menggunakan sesuatu seperti borang yang 900 00:53:36,100 --> 00:53:40,710 fungsi pembantu, anda boleh menambah lebih banyak parameter selepas itu 901 00:53:40,710 --> 00:53:42,830 untuk menentukan apa yang kelas anda mahu yang akan dikenakan pada pelbagai perkara 902 00:53:42,830 --> 00:53:47,820 supaya mereka boleh gaya dengan betul, dan itulah asasnya bagaimana anda akan pergi. 903 00:53:47,820 --> 00:53:50,100 >> Sebarang pertanyaan lain? 904 00:53:50,100 --> 00:53:52,090 Awesome. 905 00:53:52,090 --> 00:53:58,540 Terima kasih untuk masa anda, dan terima kasih kerana datang. 906 00:53:58,540 --> 00:54:05,170 Saya tidak akan menambah sangat banyak yang lain, 907 00:54:05,170 --> 00:54:08,560 tetapi 1 perkara benar-benar cepat adalah kita tidak mempunyai pautan 908 00:54:08,560 --> 00:54:12,590 dengan borang ini. 909 00:54:12,590 --> 00:54:14,310 Benar-benar dalam keadaan sihat. 910 00:54:14,310 --> 00:54:20,110 Mari kita menambah - sebenarnya dalam pandangan, blog, indeks, 911 00:54:20,110 --> 00:54:23,890 mari kita benar-benar cepat menambah link yang masuk ke laman baru, 912 00:54:23,890 --> 00:54:26,770 Laman di mana kita boleh memasukkan jawatan baru. 913 00:54:26,770 --> 00:54:29,950 Kami akan melakukan ini. 914 00:54:29,950 --> 00:54:34,020 Apa yang baik adalah terdapat kumpulan ini seluruh fungsi pembantu HTML 915 00:54:34,020 --> 00:54:37,090 yang melakukan perkara-perkara yang berbeza untuk anda, jadi anda sudah menyaksikan entiti 916 00:54:37,090 --> 00:54:41,980 berfungsi di sini, tetapi mereka juga mempunyai fungsi yang dipanggil "anchor," 917 00:54:41,980 --> 00:54:45,400 yang anda boleh menaip blog / baru 918 00:54:45,400 --> 00:54:49,550 dan berkata, "Post blog baru." 919 00:54:49,550 --> 00:54:51,850 Dan ia akan mewujudkan bahawa link untuk anda, 920 00:54:51,850 --> 00:54:54,120 dan ini seolah-olah benar-benar remeh untuk dilakukan, tetapi ini adalah bagus, 921 00:54:54,120 --> 00:54:58,720 kerana menganggap bahawa anda sedang bergerak laman web anda daripada 1 domain yang lain. 922 00:54:58,720 --> 00:55:01,390 Dan jika anda hanya menulis daripada URL yang diri sendiri, 923 00:55:01,390 --> 00:55:04,350 maka anda akan perlu menukar semua URL. 924 00:55:04,350 --> 00:55:06,850 Atau mungkin anda berpindah dari 1 subfolder untuk subfolder lain. 925 00:55:06,850 --> 00:55:08,790 Anda perlu menukar semua URL diri sendiri, 926 00:55:08,790 --> 00:55:12,180 dan itu tidak menyeronokkan. 927 00:55:12,180 --> 00:55:14,510 Anda boleh menggunakan sauh ini di sini, 928 00:55:14,510 --> 00:55:18,950 dan anda boleh menukar domain atau awalan subfolder 929 00:55:18,950 --> 00:55:20,640 dalam fail konfigurasi sekali, 930 00:55:20,640 --> 00:55:22,980 dan kemudian ia akan dikenakan di mana-mana, dan ini adalah, sekali lagi, 931 00:55:22,980 --> 00:55:26,930 satu contoh yang baik tidak mengulangi diri anda, pengeringan kod anda keluar. 932 00:55:26,930 --> 00:55:30,370 Di mana sahaja anda mengulangi diri anda, cuba dan keluarkan dalam beberapa jenis fail konfigurasi 933 00:55:30,370 --> 00:55:34,160 atau fungsi yang berbeza dan telah ia mengendalikan untuk anda. 934 00:55:34,160 --> 00:55:42,930 >> Dan perkara yang terakhir yang saya ingin menunjukkan kepada anda adalah 935 00:55:42,930 --> 00:55:50,250 andaikan kami kembali di pos ini, dan saya telah terdiri beberapa esei benar-benar panjang, 936 00:55:50,250 --> 00:55:52,670 tetapi saya terlupa untuk memasukkan pengarang saya. 937 00:55:52,670 --> 00:55:55,210 Sekarang apabila saya klik "Submit Post," 938 00:55:55,210 --> 00:55:57,270 Saya hilang segala-galanya. 939 00:55:57,270 --> 00:56:00,000 Tidak! Benar-benar sedih. 940 00:56:00,000 --> 00:56:03,870 Jadi bagaimana anda berurusan dengan itu? 941 00:56:03,870 --> 00:56:06,070 Ini adalah apa yang kita lakukan. 942 00:56:06,070 --> 00:56:09,340 Apa yang kita lakukan di sini untuk input dan kawasan teks fungsi-fungsi ini, 943 00:56:09,340 --> 00:56:12,700 jika kita termasuk parameter kedua, maka nilai yang parameter kedua 944 00:56:12,700 --> 00:56:16,620 akan menjadi apa bidang itu akan pada mulanya penduduk dengan. 945 00:56:16,620 --> 00:56:23,570 Apa yang kita boleh lakukan ialah dalam pengawal blog kami, 946 00:56:23,570 --> 00:56:25,360 kita boleh mengikat pembolehubah lain. 947 00:56:25,360 --> 00:56:27,050 Memanggilnya "nilai-nilai" mungkin. 948 00:56:27,050 --> 00:56:30,620 Dan lulus dalam jawatan array, harfiah. 949 00:56:30,620 --> 00:56:32,620 Ini bermakna bahawa jika pengesahan gagal, 950 00:56:32,620 --> 00:56:36,570 lulus kepada saya pelbagai jawatan yang saya dikemukakan dari permintaan terakhir, 951 00:56:36,570 --> 00:56:38,420 dan cara yang saya boleh menggunakan nilai-nilai dari penyerahan terakhir saya 952 00:56:38,420 --> 00:56:44,540 repopulate bidang. 953 00:56:44,540 --> 00:56:49,600 Sekarang saya boleh melakukan sesuatu seperti nilai-nilai pengarang 954 00:56:49,600 --> 00:56:55,180 dan menghargai badan, dan cara bahawa sekarang jika saya melakukan beberapa perkara rawak 955 00:56:55,180 --> 00:57:01,490 dan klik "Submit Post," maka ia kekal di sana. 956 00:57:01,490 --> 00:57:03,830 Tetapi kita akan menghadapi masalah lain. 957 00:57:03,830 --> 00:57:07,670 Bahawa kerja-kerja, tetapi jika saya pergi ke halaman yang kali pertama, 958 00:57:07,670 --> 00:57:09,720 ia akan crash, dan itu kerana kali pertama 959 00:57:09,720 --> 00:57:13,730 kita pergi ke halaman, jawatan ini berubah-ubah tidak ditakrifkan yet. 960 00:57:13,730 --> 00:57:18,170 Ia null. Ia tidak wujud. 961 00:57:18,170 --> 00:57:21,630 >> Dan apa yang kami mahu katakan adalah jika kunci ini wujud, 962 00:57:21,630 --> 00:57:27,750 kemudian kembali nilai array ini, 963 00:57:27,750 --> 00:57:30,450 tetapi jika kunci tidak wujud, kemudian kembali rentetan kosong. 964 00:57:30,450 --> 00:57:32,150 Itulah fungsi kita mahu di sini. 965 00:57:32,150 --> 00:57:34,690 Kami mahu untuk memeriksa jika kunci wujud sebelum mencuba untuk mengakses pelbagai, 966 00:57:34,690 --> 00:57:36,580 dan nasib baik cukup, 967 00:57:36,580 --> 00:57:38,570 Kohana juga memberikan kita satu fungsi pembantu untuk itu. 968 00:57:38,570 --> 00:57:41,040 Mereka mempunyai suite ini keseluruhan fungsi 969 00:57:41,040 --> 00:57:43,660 di bawah ARR nama, pendek untuk pelbagai, 970 00:57:43,660 --> 00:57:45,800 dan mereka mempunyai 1 fungsi dipanggil "mendapatkan," 971 00:57:45,800 --> 00:57:48,690 dan anda boleh lepaskan pada array, 972 00:57:48,690 --> 00:57:50,740 dan anda boleh lepaskan pada nama kekunci. 973 00:57:50,740 --> 00:57:54,330 Kemudian pada dasarnya apa yang akan berlaku adalah ia akan cuba untuk mendapatkan kunci itu, 974 00:57:54,330 --> 00:57:56,470 tetapi jika kunci yang tidak wujud dalam tatasusunan, 975 00:57:56,470 --> 00:58:00,900 maka ia akan kembali kosong, atau kita juga boleh menentukan lalai, saya percaya, 976 00:58:00,900 --> 00:58:03,500 yang bagus. 977 00:58:09,740 --> 00:58:13,150 Sekarang jika kita melakukan perkara yang sama sekali lagi, 978 00:58:13,150 --> 00:58:15,970 maka anda lihat sekarang ia berfungsi kali pertama sekitar, 979 00:58:15,970 --> 00:58:18,080 dan sekali lagi, jika kita taip beberapa barangan rawak 980 00:58:18,080 --> 00:58:23,210 dan cuba mengemukakan, maka ia kekal di sana. 981 00:58:23,210 --> 00:58:31,640 >> Dan saya rasa saya juga boleh menunjukkan kepada anda bagaimana untuk menambah template yang benar-benar cepat. 982 00:58:31,640 --> 00:58:36,140 Apa yang boleh kita lakukan pertama adalah kita boleh menambah pandangan baru yang dipanggil "template.php" 983 00:58:36,140 --> 00:58:38,890 dalam folder Views itu, 984 00:58:38,890 --> 00:58:44,730 dan apa yang saya akan lakukan adalah saya akan mencetak sesuatu yang dinamakan "kandungan," 985 00:58:44,730 --> 00:58:49,130 yang akan menjadi kandungan utama saya. 986 00:58:49,130 --> 00:58:51,380 Dan mungkin sekurang-bawah saya akan menambah, katakan, 987 00:58:51,380 --> 00:58:53,340 hak cipta. 988 00:58:53,340 --> 00:58:56,150 [Soalan pelajar didengar] 989 00:58:56,150 --> 00:58:58,050 [Brandon Liu] Mungkin ini adalah template super asas saya hendak gunakan. 990 00:58:58,050 --> 00:59:02,840 Saya mahu mempunyai folder dengan hak cipta saya pada setiap halaman, 991 00:59:02,840 --> 00:59:05,560 dan sekarang apa yang saya akan lakukan dalam pengawal saya 992 00:59:05,560 --> 00:59:07,740 kini daripada berkata, "memanjangkan Pengawal" 993 00:59:07,740 --> 00:59:11,870 Saya akan berkata, "memanjangkan Controller_Template," 994 00:59:11,870 --> 00:59:15,890 dan sekarang daripada berkata, "badan tindak balas adalah sama dengan pandangan ini," 995 00:59:15,890 --> 00:59:24,110 Saya akan berkata, "kandungan template ini adalah -" 996 00:59:24,110 --> 00:59:27,690 dan saya rasa - saya meletakkan tanda sama? 997 00:59:27,690 --> 00:59:32,710 Saya terlupa. Ya, saya fikir begitu. 998 00:59:32,710 --> 00:59:37,710 Dan sekarang saya menetapkan bahawa pemboleh ubah kandungan menyamai pandangan. 999 00:59:37,710 --> 00:59:40,960 Yang boleh saya melakukan perkara yang sama di sini. 1000 00:59:49,620 --> 00:59:57,170 Dan kini jika saya menyegarkan, anda boleh lihat sekarang hak cipta ini ditambah di sana, 1001 00:59:57,170 --> 01:00:00,350 dan hanya membuat beberapa jawatan rawak, 1002 01:00:00,350 --> 01:00:06,760 dan kemudian, sekali lagi, anda akan melihat bahawa hakcipta adalah di bahagian paling bawah halaman. 1003 01:00:06,760 --> 01:00:10,730 >> Besar. Itu sahaja yang saya mahu menunjukkan kepada anda semua. 1004 01:00:10,730 --> 01:00:14,970 [Tepuk tangan] 1005 01:00:14,970 --> 01:00:18,950 Apa-apa soalan? 1006 01:00:18,950 --> 01:00:21,000 [CS50.TV]