1 00:00:00,000 --> 00:00:02,150 >> [Seminar] [Kohana: A Ringan PHP Framework] 2 00:00:02,150 --> 00:00:04,000 [Brandon Liu] [Harvard University] 3 00:00:04,000 --> 00:00:07,270 [Ini adalah CS50.] [CS50.TV] 4 00:00:07,270 --> 00:00:09,130 >> Hi everyone. Nama saya adalah Brandon. 5 00:00:09,130 --> 00:00:11,000 Saya junior di sini di perguruan tinggi melakukan ilmu komputer, dan hari ini kita akan berbicara tentang 6 00:00:11,000 --> 00:00:14,460 Kohana, yang merupakan framework pengembangan web PHP. 7 00:00:14,460 --> 00:00:17,260 Hari ini akan menjadi coding seminar hidup, 8 00:00:17,260 --> 00:00:21,000 jadi saya pada dasarnya akan menghabiskan 5-10 menit menjelaskan apa Kohana adalah, 9 00:00:21,000 --> 00:00:25,000 dan kemudian aku benar-benar akan membangun sebuah blog super sederhana 10 00:00:25,000 --> 00:00:28,570 untuk Anda di sini benar-benar dari awal. 11 00:00:28,570 --> 00:00:32,229 Kita akan men-download kode dari situs Kohana, 12 00:00:32,229 --> 00:00:35,000 dan kita akan mulai membangun sebuah blog, dan mudah-mudahan itu akan menjadi sangat instruktif, 13 00:00:35,000 --> 00:00:37,000 karena Anda akan melihat mungkin mungkin aku akan membuat beberapa kesalahan, 14 00:00:37,000 --> 00:00:39,000 dan Anda akan melihat saya pulih dari mereka, 15 00:00:39,000 --> 00:00:42,040 atau Anda akan melihat proses pemikiran saya sebagai saya membangun melalui blog ini, 16 00:00:42,040 --> 00:00:44,000 dan sementara itu, Anda juga akan mendapatkan akrab dengan kerangka itu sendiri. 17 00:00:44,000 --> 00:00:48,000 Mudah-mudahan itu akan menjadi latihan yang sangat instruktif. 18 00:00:48,000 --> 00:00:51,370 >> Pertama, apa sebenarnya adalah suatu kerangka kerja? 19 00:00:51,370 --> 00:00:54,000 Jika Anda telah mengambil CS50 sejauh ini, Anda belum benar-benar bekerja dengan 20 00:00:54,000 --> 00:00:56,000 kerangka kerja lagi, dan hal ini adalah ini. 21 00:00:56,000 --> 00:01:00,000 Anda mungkin telah melakukan 1 pengembangan web pset sudah, 22 00:01:00,000 --> 00:01:03,000 dan katakanlah Anda terus membangun website dan tetap membangun website. 23 00:01:03,000 --> 00:01:05,000 Anda akan mulai melihat beberapa hal. 24 00:01:05,000 --> 00:01:07,000 Hal pertama yang akan Anda perhatikan adalah bahwa Anda mungkin melakukan hal yang sama 25 00:01:07,000 --> 00:01:09,150 berulang-ulang sepanjang waktu, 26 00:01:09,150 --> 00:01:13,000 hal-hal seperti membersihkan input data pengguna, 27 00:01:13,000 --> 00:01:17,250 hal-hal seperti mengatur file Anda dengan cara tertentu. 28 00:01:17,250 --> 00:01:19,000 Hal lain yang juga mungkin akan melihat adalah bahwa kode Anda 29 00:01:19,000 --> 00:01:21,000 mungkin mulai menjadi sangat, sangat berantakan, 30 00:01:21,000 --> 00:01:24,000 dan Anda dapat meninggalkan itu berantakan dan hanya memiliki waktu yang sangat sulit merawatnya, 31 00:01:24,000 --> 00:01:26,000 atau Anda dapat mulai untuk struktur kode Anda dan membuatnya modular 32 00:01:26,000 --> 00:01:28,510 dengan cara tertentu untuk membuatnya lebih maintainable. 33 00:01:28,510 --> 00:01:31,020 >> Sinilah kerangka web pada dasarnya masuk 34 00:01:31,020 --> 00:01:33,680 Orang-orang yang telah membangun banyak situs, mereka mengatakan, 35 00:01:33,680 --> 00:01:35,820 "Kami tidak perlu mengulang ini setiap kali kita membangun sebuah website." 36 00:01:35,820 --> 00:01:39,050 "Kenapa kita tidak hanya membuat paket yang melakukan semua hal-hal ini untuk Anda 37 00:01:39,050 --> 00:01:41,250 setiap kali Anda ingin membangun sebuah website? " 38 00:01:41,250 --> 00:01:43,030 Dan sehingga ketika Anda membuat sebuah website baru, 39 00:01:43,030 --> 00:01:45,880 Anda hanya fokus pada apa sebenarnya situs web tertentu ini adalah tentang. 40 00:01:45,880 --> 00:01:48,630 Anda tidak perlu mengulang semua berbagai konfigurasi 41 00:01:48,630 --> 00:01:53,070 dan pemisahan kode dan menulis ulang kode 42 00:01:53,070 --> 00:01:56,180 bahwa Anda seringkali harus lakukan ketika Anda membuat website. 43 00:01:56,180 --> 00:01:59,410 Idenya adalah bahwa kerangka memungkinkan Anda untuk menulis kode-tingkat yang lebih tinggi 44 00:01:59,410 --> 00:02:01,030 tanpa harus khawatir tentang rincian tingkat rendah. 45 00:02:01,030 --> 00:02:03,670 Sebuah detail-tingkat yang lebih rendah mungkin sesuatu seperti 46 00:02:03,670 --> 00:02:07,250 berurusan dengan membersihkan input data pengguna. 47 00:02:07,250 --> 00:02:09,320 Itu adalah sesuatu yang Anda tidak harus benar-benar perlu khawatir tentang. 48 00:02:09,320 --> 00:02:12,370 Anda harus fokus pada apa yang alokasi web Anda sebenarnya tentang. 49 00:02:12,370 --> 00:02:14,790 Hal ini menghilangkan banyak kode boilerplate. 50 00:02:14,790 --> 00:02:16,640 Ini adalah sebuah arsitektur untuk proyek Anda. 51 00:02:16,640 --> 00:02:18,680 >> Yang paling populer akan menjadi Model-View-Controller, 52 00:02:18,680 --> 00:02:20,380 yang aku akan berbicara tentang dalam satu detik. 53 00:02:20,380 --> 00:02:22,790 Dan banyak kali kerangka kerja ini mewujudkan satu set prosedur, 54 00:02:22,790 --> 00:02:25,750 aturan, dan praktik terbaik untuk Anda untuk menggunakan 55 00:02:25,750 --> 00:02:28,190 sehingga ketika Anda mengadopsi kerangka web 56 00:02:28,190 --> 00:02:30,050 Anda harus menulis kode Anda dengan cara tertentu, 57 00:02:30,050 --> 00:02:32,430 dan itu umumnya disepakati seperangkat prinsip 58 00:02:32,430 --> 00:02:34,290 oleh masyarakat yang secara umum diterima menjadi 59 00:02:34,290 --> 00:02:36,230 cara yang baik untuk menulis kode. 60 00:02:36,230 --> 00:02:38,260 Itu membuat kode Anda lebih dipertahankan, lebih bermanfaat, 61 00:02:38,260 --> 00:02:40,030 seterusnya dan sebagainya. 62 00:02:40,030 --> 00:02:42,740 Dan akhirnya, hal yang saya ingin menekankan tentang kerangka kerja 63 00:02:42,740 --> 00:02:45,980 dibandingkan perpustakaan adalah ide tentang inversi kontrol, dan hal ini adalah ini. 64 00:02:45,980 --> 00:02:48,430 Perbedaan antara perpustakaan dan kerangka kerja adalah bahwa 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 semacam memanggil perpustakaan 67 00:02:54,460 --> 00:02:56,810 dan menyerukan kepada perpustakaan untuk melakukan sesuatu untuk Anda. 68 00:02:56,810 --> 00:02:58,180 Perbedaan antara perpustakaan dan kerangka kerja 69 00:02:58,180 --> 00:03:01,620 adalah bahwa kerangka dimulai dengan kontrol, 70 00:03:01,620 --> 00:03:03,260 dan memanggil kode Anda, 71 00:03:03,260 --> 00:03:06,190 sehingga Anda dapat menganggapnya sebagai - ini adalah mengapa itu disebut kerangka - 72 00:03:06,190 --> 00:03:09,700 framework menyediakan frame ini dan struktur untuk kode Anda, 73 00:03:09,700 --> 00:03:11,320 dan Anda mengisi lubang, 74 00:03:11,320 --> 00:03:13,990 dan ini akan menjadi lebih jelas dalam satu detik 75 00:03:13,990 --> 00:03:16,670 ketika Anda melihat saya mulai menulis kode dalam konteks kerangka. 76 00:03:16,670 --> 00:03:19,130 Anda akan melihat bahwa aku mengisi kekosongan, 77 00:03:19,130 --> 00:03:22,450 dan kerangka kerja adalah jenis mengendalikan semua bagian yang bergerak, 78 00:03:22,450 --> 00:03:27,420 dan saya harus menempatkan potongan-potongan di tempat yang tepat. 79 00:03:27,420 --> 00:03:29,360 >> Hari ini kita akan berbicara tentang Kohana, 80 00:03:29,360 --> 00:03:31,610 yang merupakan salah satu dari banyak kerangka kerja PHP. 81 00:03:31,610 --> 00:03:34,550 Ada kerangka kerja web, dan ada yang di hampir setiap bahasa tunggal, 82 00:03:34,550 --> 00:03:38,330 dan aku memilih Kohana Kohana karena ini bisa dibilang 83 00:03:38,330 --> 00:03:43,250 dan umumnya diakui sebagai kerangka PHP yang paling mudah untuk mengambil. 84 00:03:43,250 --> 00:03:45,940 Ini adalah yang paling ringan. 85 00:03:45,940 --> 00:03:48,470 Ada yang lain di luar sana yang datang dengan banyak, lebih banyak fitur, 86 00:03:48,470 --> 00:03:51,590 tapi mereka cenderung lebih sulit untuk mengambil. 87 00:03:51,590 --> 00:03:54,920 Dan akhirnya, Kohana menggunakan arsitektur MVC. 88 00:03:54,920 --> 00:03:57,780 Ini cukup ringan bahwa kita benar-benar dapat membangun sebuah proyek 89 00:03:57,780 --> 00:03:59,620 di sini tepat di depan mata Anda, dan Anda dapat cukup banyak 90 00:03:59,620 --> 00:04:02,780 mengikutinya cukup mudah. 91 00:04:02,780 --> 00:04:04,420 >> Apa arsitektur MVC? 92 00:04:04,420 --> 00:04:06,540 Ini adalah singkatan dari Model-View-Controller, 93 00:04:06,540 --> 00:04:09,560 dan mungkin jika Anda berpikir tentang kode Anda telah menulis sejauh ini 94 00:04:09,560 --> 00:04:11,280 untuk beberapa psets pengembangan web Anda 95 00:04:11,280 --> 00:04:14,710 Anda mungkin dapat melihat beberapa dari ini, tapi biasanya ketika Anda mulai menulis 96 00:04:14,710 --> 00:04:16,500 aplikasi web yang lebih kompleks, 97 00:04:16,500 --> 00:04:21,209 pembagian antara 3 segmen ini menjadi lebih dan lebih jelas. 98 00:04:21,209 --> 00:04:26,740 Aku ditata MVC sini semacam sebagai stack, 99 00:04:26,740 --> 00:04:29,920 dan sering Anda akan mendengar orang berbicara tentang tumpukan dalam pengembangan web, 100 00:04:29,920 --> 00:04:33,760 dan ini adalah untuk menggambarkan gagasan bahwa 101 00:04:33,760 --> 00:04:37,510 setiap lapisan, setiap komponen benar-benar mencoba untuk hanya berkomunikasi 102 00:04:37,510 --> 00:04:40,750 antara 2 komponen lainnya. 103 00:04:40,750 --> 00:04:44,550 Seseorang mengakses website Anda sebagai klien atau browser. 104 00:04:44,550 --> 00:04:48,870 Mereka berinteraksi dengan program anda melalui kode tampilan. 105 00:04:48,870 --> 00:04:50,500 Tampilan kode berinteraksi dengan controller. 106 00:04:50,500 --> 00:04:52,400 Controller berinteraksi dengan model, 107 00:04:52,400 --> 00:04:55,090 dan model yang berinteraksi dengan database SQL. 108 00:04:55,090 --> 00:04:59,670 Dan tidak ada hopping di antara jika Anda menulis kode Anda dengan benar. 109 00:04:59,670 --> 00:05:01,670 >> Apa hal-hal ini dilakukan? 110 00:05:01,670 --> 00:05:06,020 Model ini pada dasarnya adalah bagian dari kode yang berhubungan dengan data Anda. 111 00:05:06,020 --> 00:05:09,100 Segala sesuatu yang berhubungan dengan database Anda, dengan benda-benda yang Anda simpan, 112 00:05:09,100 --> 00:05:11,280 atau mengambil benda-benda dalam database, 113 00:05:11,280 --> 00:05:13,450 yang semua ditangani oleh model. 114 00:05:13,450 --> 00:05:15,290 Mungkin Anda memiliki objek dalam database Anda. 115 00:05:15,290 --> 00:05:17,700 Kita akan menciptakan sebuah model yang berkaitan dengan posting, 116 00:05:17,700 --> 00:05:19,760 jadi posting mungkin memiliki beberapa atribut untuk itu. 117 00:05:19,760 --> 00:05:23,900 Anda mungkin memiliki fungsi sekitar mereka menyimpan tulisan atau mengambil posting 118 00:05:23,900 --> 00:05:26,270 atau penyaringan posting dan seterusnya dan sebagainya, 119 00:05:26,270 --> 00:05:28,880 dan itu semua kode yang ditangani oleh model. 120 00:05:28,880 --> 00:05:31,780 Controller adalah semacam logika aplikasi, 121 00:05:31,780 --> 00:05:37,910 dan banyak hal yang berbeda bisa masuk logika aplikasi. 122 00:05:37,910 --> 00:05:39,790 Jika Anda sedang berbicara dengan API yang berbeda, 123 00:05:39,790 --> 00:05:42,310 yang mungkin di mana Anda sedang berhadapan dengan logika aplikasi. 124 00:05:42,310 --> 00:05:47,990 Jika Anda mencoba untuk memiliki untuk membawa data dari beberapa model yang berbeda 125 00:05:47,990 --> 00:05:51,540 dan harus menggabungkan mereka dalam beberapa cara, yang sering dapat ditangani oleh controller. 126 00:05:51,540 --> 00:05:53,820 Sebagai contoh, di Facebook, jika Anda teman seseorang, 127 00:05:53,820 --> 00:05:58,500 maka mungkin bahwa tindakan membangun hubungan yang 128 00:05:58,500 --> 00:06:00,490 dapat dilakukan oleh controller. 129 00:06:00,490 --> 00:06:04,350 >> Dan akhirnya, pandangan adalah kode yang menghasilkan apa yang sebenarnya Anda lihat. 130 00:06:04,350 --> 00:06:07,410 Banyak kali saya pikir di psets CS50 131 00:06:07,410 --> 00:06:10,050 mereka tidak benar-benar mendorong kalian untuk memisahkan 3 hal. 132 00:06:10,050 --> 00:06:12,430 Anda mungkin akan memiliki besar, file yang panjang ini di mana di bagian atas 133 00:06:12,430 --> 00:06:15,130 Anda membuat beberapa permintaan SQL dan mungkin melakukan beberapa proses 134 00:06:15,130 --> 00:06:17,020 data Anda diambil dari database, 135 00:06:17,020 --> 00:06:19,370 dan kemudian Anda memiliki semua HTML Anda di bagian bawah. 136 00:06:19,370 --> 00:06:22,840 Dan Anda mungkin menemukan bahwa ketika Anda membuat semakin banyak halaman 137 00:06:22,840 --> 00:06:25,790 bahwa Anda akan memiliki beberapa kode pengulangan, dan juga, 138 00:06:25,790 --> 00:06:29,600 masalahnya file Anda akan benar-benar besar dan panjang 139 00:06:29,600 --> 00:06:32,370 dan menjadi berat untuk mengelola. 140 00:06:32,370 --> 00:06:34,500 Alasan mengapa MVC begitu dihormati 141 00:06:34,500 --> 00:06:36,120 dibuat untuk sejumlah alasan. 142 00:06:36,120 --> 00:06:38,110 Hal pertama adalah sesuatu yang disebut pemisahan keprihatinan 143 00:06:38,110 --> 00:06:40,370 yang merupakan gagasan bahwa ketika Anda memiliki - 144 00:06:40,370 --> 00:06:43,520 idealnya 1 bagian dari kode harus melakukan 1 hal dan melakukannya dengan sangat baik, 145 00:06:43,520 --> 00:06:47,210 dan Anda tidak harus menggabungkan potongan-potongan kode yang melakukan hal-hal yang berbeda. 146 00:06:47,210 --> 00:06:49,230 Misalnya, melihat kode dan kode model, 147 00:06:49,230 --> 00:06:51,040 mereka tidak benar-benar harus berhubungan. 148 00:06:51,040 --> 00:06:53,290 Mereka tidak harus berada dalam file yang sama, sehingga ketika Anda bisa, memisahkan mereka 149 00:06:53,290 --> 00:06:55,300 sehingga mudah untuk mempertahankan. 150 00:06:55,300 --> 00:06:57,130 >> Hal lain adalah penggunaan kembali kode. 151 00:06:57,130 --> 00:06:59,770 Anda mungkin menemukan diri Anda menulis query SQL yang sama atau melakukan 152 00:06:59,770 --> 00:07:03,060 pertanyaan serupa yang dapat disarikan ke dalam 1 fungsi, 153 00:07:03,060 --> 00:07:05,440 dan itulah ide di balik model dan controller, 154 00:07:05,440 --> 00:07:09,690 setelah itu dalam fungsi yang terpisah yang dapat Anda menggunakan kembali di tempat yang berbeda dalam proyek Anda. 155 00:07:09,690 --> 00:07:12,420 Dan akhirnya, yang terkait dengan pengeringan kode Anda, 156 00:07:12,420 --> 00:07:14,700 atau tidak mengulangi diri sendiri, jangan ulangi sendiri. 157 00:07:14,700 --> 00:07:18,090 Hal ini sangat dipahami dalam pembangunan. 158 00:07:18,090 --> 00:07:20,110 Setiap kali Anda bisa, Anda tidak ingin mengulang diri sendiri, karena jika Anda mengulangi diri sendiri, 159 00:07:20,760 --> 00:07:23,400  itu jauh lebih mahal untuk mempertahankan. 160 00:07:23,400 --> 00:07:26,040 Jika Anda ingin mengubah 1 hal, Anda harus mengubahnya di mana-mana, 161 00:07:26,040 --> 00:07:30,230 dan yang mengarah ke bug, dan itu mengerikan. 162 00:07:30,230 --> 00:07:32,010 >> Baiklah. 163 00:07:32,010 --> 00:07:37,270 Semua pertanyaan sejauh ini tentang Kohana sama sekali? 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 coding hidup, 166 00:07:42,300 --> 00:07:48,050 dan mudah-mudahan semuanya berjalan dengan baik. 167 00:07:57,200 --> 00:08:00,050 Saya akan dasarnya membangun website ini 168 00:08:00,050 --> 00:08:03,910 pada salah satu server remote saya, dan dengan cara itu kalian juga bisa 169 00:08:03,910 --> 00:08:06,310 melihat situs web dan mengakses situs web, 170 00:08:06,310 --> 00:08:10,990 dan juga lingkungan yang lebih baik daripada Configured mesin remote saya, 171 00:08:10,990 --> 00:08:14,580 karena itu berjalan Linux bukan OS X. 172 00:08:14,580 --> 00:08:16,260 Kita benar-benar akan mulai. 173 00:08:16,260 --> 00:08:18,110 KohanaFramework.org. 174 00:08:18,110 --> 00:08:21,350 Aku akan men-download kode dari situs web. 175 00:08:21,350 --> 00:08:24,610 Aku akan copy alamat link, 176 00:08:24,610 --> 00:08:29,770 pergi ke server saya, download, 177 00:08:29,770 --> 00:08:33,000 dan aku akan mengeluarkannya. 178 00:08:38,330 --> 00:08:45,710 >> [Student] Apa terbesar Anda dapat membuat teks? 179 00:08:45,710 --> 00:08:47,330 [Brandon Liu] Apakah itu lebih baik? 180 00:08:47,330 --> 00:08:50,070 [Student] Apakah itu bisa dilakukan? >> [Brandon Liu] Ya, itu bagus. 181 00:08:50,070 --> 00:08:54,500 Saya download file ZIP dan membuka ritsleting itu ke sebuah direktori bernama Kohana, 182 00:08:54,500 --> 00:08:58,820 dan kita akan mengubah nama yang CS50-Kohana, 183 00:08:58,820 --> 00:09:01,140 dan mari kita masuk 184 00:09:01,140 --> 00:09:03,610 Mengagumkan. 185 00:09:03,610 --> 00:09:06,870 Disini anda melihat sekelompok file yang berbeda. 186 00:09:06,870 --> 00:09:10,140 Sebagian besar dari Anda dapat mengabaikan - kita tidak akan pergi melalui setiap file yang ada di sini 187 00:09:10,140 --> 00:09:13,130 karena keterbatasan waktu kita, 188 00:09:13,130 --> 00:09:16,310 tetapi umumnya ketika Anda menginstal Kohana, hal 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 tes lingkungan dan yang lainnya 191 00:09:26,050 --> 00:09:28,640 untuk memastikan lingkungan anda benar diatur untuk menjalankan Kohana 192 00:09:28,640 --> 00:09:31,450 dan memastikan bahwa semuanya baik-baik saja. 193 00:09:31,450 --> 00:09:35,510 Anda dapat melihat banyak hal berlalu, tetapi umumnya Anda selalu mengalami 1 masalah ini 194 00:09:35,510 --> 00:09:38,180 di mana ia mengeluh bahwa beberapa direktori tidak dapat ditulisi, 195 00:09:38,180 --> 00:09:40,410 dan itu karena dari beberapa izin. 196 00:09:40,410 --> 00:09:43,080 Saya tidak tahu berapa banyak kalian telah belajar tentang hak izin berkas di CS50, 197 00:09:43,080 --> 00:09:47,920 tetapi jika Anda melakukan pengembangan web, Anda akan mengalami masalah ini banyak. 198 00:09:47,920 --> 00:09:58,340 Aku akan membuatnya dapat ditulis 199 00:09:58,340 --> 00:10:03,390 dan saya pikir saya juga harus - ada kita pergi. 200 00:10:03,390 --> 00:10:07,040 >> Oke, jadi sekarang Anda dapat melihat semuanya berlalu, 201 00:10:07,040 --> 00:10:10,000 dan sekarang akan memberitahu Anda untuk mengubah nama file install.php. 202 00:10:10,000 --> 00:10:15,630 Aku akan memindahkan file install.php untuk installed.php, 203 00:10:15,630 --> 00:10:19,610 dan jika saya refresh, 204 00:10:19,610 --> 00:10:22,810 itu memberi saya beberapa error, dan ini adalah di mana debugging masuk 205 00:10:22,810 --> 00:10:25,610 Ini adalah di mana Anda dapat melihat apa yang sebenarnya akan terjadi. 206 00:10:25,610 --> 00:10:28,460 Masalahnya, secara default, Kohana mengasumsikan bahwa 207 00:10:28,460 --> 00:10:31,480 proyek Anda di direktori akar domain Anda, 208 00:10:31,480 --> 00:10:35,920 jadi itu mengharapkan Anda untuk menjadi di demo.brandonkliu.com. 209 00:10:35,920 --> 00:10:37,540 Kita harus tahu itu bahwa itu benar-benar dalam subfolder. 210 00:10:37,540 --> 00:10:39,820 Ini dalam subfolder yang disebut CS50 Kohana. 211 00:10:39,820 --> 00:10:42,640 Masalahnya adalah, itu salah mengartikan CS50-Kohana 212 00:10:42,640 --> 00:10:45,680 sebagai sesuatu yang lain, yang saya akan menjelaskan kepada Anda dalam hitungan detik. 213 00:10:45,680 --> 00:10:49,910 Tapi saya harus memberitahu Anda bahwa adalah sesuatu yang diharapkan. 214 00:10:49,910 --> 00:10:53,700 Apa yang akan kita lakukan adalah kita akan masuk ke folder ini disebut bootstrap.php, 215 00:10:53,700 --> 00:10:59,260 yang merupakan folder konfigurasi di mana banyak hal yang berbeda ditetapkan. 216 00:10:59,260 --> 00:11:01,570 Saya membuka bahwa sampai. 217 00:11:01,570 --> 00:11:09,790 Maka mungkin salah satu hal pertama yang saya akan lakukan adalah mengubah zona waktu. 218 00:11:09,790 --> 00:11:13,910 >> Dan kemudian mari kita lihat. 219 00:11:13,910 --> 00:11:15,180 Aha! Tepat di sini. 220 00:11:15,180 --> 00:11:18,690 Ada banyak ucapan konfigurasi yang berbeda di sini, 221 00:11:18,690 --> 00:11:21,700 tapi yang saya cari adalah hal ini disebut URL dasar, 222 00:11:21,700 --> 00:11:24,570 dan secara default saya mendapatkannya diatur ke Kohana, 223 00:11:24,570 --> 00:11:29,020 tapi aku akan mengubah itu untuk CS50-Kohana, 224 00:11:29,020 --> 00:11:32,880 dan saya pikir yang harus memperbaikinya. 225 00:11:32,880 --> 00:11:34,150 Ya, bagus. 226 00:11:34,150 --> 00:11:39,530 Secara default, untuk melihat bahwa itu bekerja, ia mengatakan, "Hello World." 227 00:11:39,530 --> 00:11:42,930 Dari mana datangnya? Bagaimana kita bisa Hello World? 228 00:11:42,930 --> 00:11:47,640 Di mana tepatnya adalah kode yang benar-benar menulis itu? 229 00:11:47,640 --> 00:11:50,240 Untuk memahami itu, saya akan memperkenalkan konsep ini disebut routing. 230 00:11:50,240 --> 00:11:52,590 Hampir semua kerangka web memiliki konsep yang disebut routing, 231 00:11:52,590 --> 00:11:57,230 yang merupakan bagian dari perangkat lunak yang akan memetakan URL tertentu 232 00:11:57,230 --> 00:12:01,550 ke bagian tertentu dari kode dalam kerangka Anda. 233 00:12:01,550 --> 00:12:07,510 Sebagai contoh, jika Anda memiliki beberapa URL dan Anda pergi ke beberapa URL seperti foo.com / blog / semua 234 00:12:07,510 --> 00:12:11,170 lalu apa kerangka yang akan dilakukan - atau setidaknya apa Kohana yang akan dilakukan - 235 00:12:11,170 --> 00:12:15,540 adalah itu akan menemukan kelas yang disebut kontroler blog, 236 00:12:15,540 --> 00:12:18,720 dan itu akan menjalankan fungsi bernama tindakan semua. 237 00:12:18,720 --> 00:12:20,160 Aku tahu aku sedang berbicara tentang kelas dan fungsi, 238 00:12:20,160 --> 00:12:23,860 dan aku tahu kalian belum tercakup kelas dan fungsi 239 00:12:23,860 --> 00:12:26,470 di CS50, tapi untuk saat ini, 240 00:12:26,470 --> 00:12:29,800 Anda bisa memikirkan kelas hanya sebagai kelompok fungsi, 241 00:12:29,800 --> 00:12:32,900 cara pengelompokan fungsi bersama-sama. 242 00:12:32,900 --> 00:12:37,690 Itu benar-benar semua yang perlu Anda ketahui. 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 aplikasi ada folder lain yang disebut kelas, 245 00:12:47,110 --> 00:12:49,200 dan folder lain disebut Controller dan Model. 246 00:12:49,200 --> 00:12:52,530 Jika Anda melihat ke dalam folder Controller, 247 00:12:52,530 --> 00:12:56,330 kita melihat bahwa ada file bernama Welcome, 248 00:12:56,330 --> 00:13:00,370 dan Anda bisa lihat di sini adalah kelas yang disebut Pengendali Selamat datang, 249 00:13:00,370 --> 00:13:02,340 dan ada fungsi yang disebut Aksi Index, 250 00:13:02,340 --> 00:13:06,360 dan apa yang dilakukannya itu menetapkan tubuh respons Anda terhadap Hello World. 251 00:13:06,360 --> 00:13:08,730 Di situlah kode sedang ditulis. 252 00:13:08,730 --> 00:13:11,610 Pertanyaan lain adalah, well, aku tidak pergi ke 253 00:13:11,610 --> 00:13:13,680 bla, bla, bla, / 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 Nah, itu hanya karena 256 00:13:20,410 --> 00:13:22,410 di sini di bagian bawah file bootstrap kita 257 00:13:22,410 --> 00:13:24,550 di mana kita menetapkan rute kami 258 00:13:24,550 --> 00:13:26,570 Anda dapat melihat bahwa mereka menetapkan beberapa default untuk Anda. 259 00:13:26,570 --> 00:13:28,990 Kontroler default adalah Selamat Datang. Aksi baku adalah Index. 260 00:13:28,990 --> 00:13:31,600 Itu sebabnya ketika kita menempatkan apa-apa di sana secara otomatis pergi ke Welcome kontroler 261 00:13:31,600 --> 00:13:33,940 dan Aksi indeks. 262 00:13:33,940 --> 00:13:37,460 >> Semuanya masuk akal sejauh ini? 263 00:13:37,460 --> 00:13:40,850 Sekarang, Anda dapat melakukan lebih dari sekedar pergi ke Pengawas 264 00:13:40,850 --> 00:13:43,670 dan tindakan tertentu. 265 00:13:43,670 --> 00:13:48,480 Anda juga dapat mengirim parameter ke controller. 266 00:13:48,480 --> 00:13:56,390 Hanya sebagai contoh, 267 00:13:56,390 --> 00:14:04,070 Aku akan menambahkan aksi lain untuk kontroler ini untuk menunjukkan Anda. 268 00:14:04,070 --> 00:14:09,130 Mari kita sebut tindakan ini Echo, karena itu akan memberitahu Anda apa pun yang Anda berikan, 269 00:14:09,130 --> 00:14:17,510 dan jadi aku pada dasarnya akan ambil 270 00:14:17,510 --> 00:14:20,960 parameter yang akan dikirim melalui saya ke program routing, 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 bahwa 273 00:14:28,440 --> 00:14:31,270 ini pada dasarnya berarti Anda memiliki controller, dan Anda memiliki /, 274 00:14:31,270 --> 00:14:33,480 dan Anda memiliki tindakan, dan Anda memiliki / yang lain, 275 00:14:33,480 --> 00:14:39,140 dan itu akan menjadi parameter, dan karena kita memiliki nama ID ini 276 00:14:39,140 --> 00:14:42,450 dalam kurung sudut, itu berarti bahwa kita penamaan parameter ID ini. 277 00:14:42,450 --> 00:14:45,490 Kemudian dalam kode controller saya jika saya ingin terus ambil dari parameter itu, 278 00:14:45,490 --> 00:14:51,790 Saya dapat menggunakan kode saya menulis, menemukan parameter bernama ID. 279 00:14:51,790 --> 00:14:59,290 Itulah yang saya lakukan di sini, dan aku akan kembali dan berkata, 280 00:14:59,290 --> 00:15:07,090 "Anda mengatakan" itu. 281 00:15:07,090 --> 00:15:10,760 Dan jika saya pergi ke website kami, 282 00:15:10,760 --> 00:15:19,550 Aku pergi ke cs50-kohana/welcome/echo/Helloooo-- 283 00:15:19,550 --> 00:15:21,420 oh, itu benar. 284 00:15:21,420 --> 00:15:23,930 Ada 1 langkah saya ditinggalkan. 285 00:15:23,930 --> 00:15:27,020 Ini adalah bagian dari coding ide hidup. 286 00:15:27,020 --> 00:15:36,100 >> Berikut ini 1 hal. Mari kita lihat. 287 00:15:36,100 --> 00:15:38,870 Jadi biasanya secara default dengan banyak aplikasi web ini 288 00:15:38,870 --> 00:15:42,820 Anda harus menyertakan hal index.php ini di URL Anda, 289 00:15:42,820 --> 00:15:46,410 karena ide tersebut index.php adalah semacam entry point 290 00:15:46,410 --> 00:15:48,250 aplikasi Anda, tapi tentu saja, 291 00:15:48,250 --> 00:15:50,110 itu semacam menjengkelkan harus. 292 00:15:50,110 --> 00:15:53,790 Anda tidak ingin memiliki index.php muncul dalam URL Anda, 293 00:15:53,790 --> 00:15:56,080 dan hampir semua kerangka web luar kotak 294 00:15:56,080 --> 00:15:58,440 memiliki masalah index.php ini, 295 00:15:58,440 --> 00:16:03,370 dan jadi Anda harus mengambil beberapa tindakan untuk dapat menghapus itu. 296 00:16:03,370 --> 00:16:07,540 Dan dalam hal ini, 297 00:16:07,540 --> 00:16:11,450 apa yang akan kita lakukan adalah kita akan menggunakan file bernama htaccess., 298 00:16:11,450 --> 00:16:13,900 dan ini adalah sesuatu yang khusus untuk web server Apache, 299 00:16:13,900 --> 00:16:16,290 dan dapat melakukan hal-hal seperti menulis ulang URL 300 00:16:16,290 --> 00:16:19,350 dan mengarahkan URL dan seterusnya dan sebagainya, 301 00:16:19,350 --> 00:16:24,280 dan Kohana cukup baik untuk menyediakan file htaccess Template. yang bisa kita gunakan. 302 00:16:24,280 --> 00:16:28,300 >> Seperti yang Anda lihat, ada file sana disebut example.htaccess, 303 00:16:28,300 --> 00:16:33,410 dan kita akan menyalin bahwa untuk htaccess.. 304 00:16:33,410 --> 00:16:36,950 Aku akan membuka ini dan mengeditnya, 305 00:16:36,950 --> 00:16:40,840 dan pada dasarnya melakukan banyak hal yang berbeda. 306 00:16:40,840 --> 00:16:45,320 Garis utama Anda mungkin ingin lihat adalah di sini. 307 00:16:45,320 --> 00:16:49,840 Idenya adalah bahwa ini membuat sebuah aturan yang mengatakan, 308 00:16:49,840 --> 00:16:56,400 "Oke, apa pun yang Anda ketik, tambahkan index.php itu." 309 00:16:56,400 --> 00:16:58,710 Anda dapat melihat bahwa. 310 00:16:58,710 --> 00:17:00,370 The. * Singkatan dari apa pun, cocok apa-apa, 311 00:17:00,370 --> 00:17:03,300 dan kemudian bagian kedua adalah index.php / $ 0, 312 00:17:03,300 --> 00:17:07,410 dan $ 0 mengacu pada apa pun yang cocok sebelumnya. 313 00:17:07,410 --> 00:17:09,500 Apakah itu masuk akal? 314 00:17:09,500 --> 00:17:12,190 Tetapi hal yang sangat penting yang saya ingin mengubah adalah mengubah dasar menulis ulang ini, 315 00:17:12,190 --> 00:17:14,300 yang merupakan basis URL. 316 00:17:14,300 --> 00:17:17,780 Ini semacam mengasumsikan di mana Anda bekerja dari. 317 00:17:17,780 --> 00:17:22,560 Aku akan menambahkan CS50 Kohana itu, 318 00:17:22,560 --> 00:17:26,530 dan dengan cara itu jika saya menghapus index.php, 319 00:17:26,530 --> 00:17:32,110 itu harus bekerja, dan aku akan menambahkan beberapa nomor 320 00:17:32,110 --> 00:17:36,380 untuk menunjukkan bahwa itu memang berhasil. 321 00:17:36,380 --> 00:17:38,130 Kedengarannya bagus. 322 00:17:38,130 --> 00:17:40,260 >> Ada pertanyaan sejauh ini? 323 00:17:40,260 --> 00:17:42,300 [Student] Bagaimana bisa tahu untuk membuat 123? 324 00:17:42,300 --> 00:17:44,120 Apakah itu argumen? 325 00:17:44,120 --> 00:17:46,560 Tepat. Anda dapat menganggap itu seperti sebuah argumen. 326 00:17:46,560 --> 00:17:52,410 Tetapi hal yang aneh, meskipun, adalah bahwa cara Kohana melakukannya 327 00:17:52,410 --> 00:17:54,910 adalah mereka tidak melakukannya persis seperti argumen. 328 00:17:54,910 --> 00:17:56,930 Anda harus ambil seperti ini. 329 00:17:56,930 --> 00:18:01,030 Anda harus ambil objek permintaan dan meminta parameter yang bernama ID, 330 00:18:01,030 --> 00:18:03,240 dan bahwa nama ID berasal dari file bootstrap 331 00:18:03,240 --> 00:18:06,990 bahwa saya menunjukkan sebelumnya, dan nama ID adalah pada mereka kurung sudut, 332 00:18:06,990 --> 00:18:11,580 dan itulah bagaimana Anda ambil parameter tersebut. 333 00:18:11,580 --> 00:18:14,010 Mengagumkan. 334 00:18:14,010 --> 00:18:17,550 Ada pertanyaan lain? 335 00:18:17,550 --> 00:18:20,500 Seperti saya katakan, pengendali, mereka menangani logika aplikasi, 336 00:18:20,500 --> 00:18:22,980 jadi itu 1 contoh di mana Anda dapat melihat ltu - 337 00:18:22,980 --> 00:18:24,830 itu sangat dasar, tapi masih logika aplikasi, 338 00:18:24,830 --> 00:18:27,980 ide meraih parameter dan menciptakan string baru 339 00:18:27,980 --> 00:18:31,920 yang mengatakan, "Kau bilang bla," dan kemudian meludah bahwa kembali kepada Anda. 340 00:18:31,920 --> 00:18:34,030 Dan umumnya apa yang Anda lakukan adalah Anda membuat kontroler yang berbeda. 341 00:18:34,030 --> 00:18:36,450 Anda membuat kontroler terpisah untuk bagian yang berbeda dari situs Anda. 342 00:18:36,450 --> 00:18:38,160 >> Hari ini kita akan membuat website yang sangat sederhana, 343 00:18:38,160 --> 00:18:40,420 dan itu akan menjadi sebuah blog yang sangat dasar. 344 00:18:40,420 --> 00:18:43,780 Kita akan membuat controller baru hanya untuk posting di blog. 345 00:18:43,780 --> 00:18:47,060 Tapi kemudian jika saya harus juga menambahkan komentar ke posting blog, 346 00:18:47,060 --> 00:18:50,140 maka saya mungkin akan ingin membuat controller baru bagi mereka komentar. 347 00:18:50,140 --> 00:18:53,380 Jika saya ingin menambah pengguna, saya mungkin akan menambahkan controller baru bagi para pengguna, 348 00:18:53,380 --> 00:18:57,000 dan secara umum, idenya adalah bahwa setiap kali Anda memiliki 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 memiliki pengontrol tunggal untuk itu 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 tulisan, 353 00:19:06,250 --> 00:19:08,710 dan juga Anda bisa memikirkan objek data sesuai dengan tabel. 354 00:19:08,710 --> 00:19:12,160 Umumnya setiap tabel sesuai dengan 1 jenis objek data, 355 00:19:12,160 --> 00:19:15,160 sehingga tabel posting akan memiliki 1 post Model, 356 00:19:15,160 --> 00:19:18,230 yang akan memiliki 1 post yang sesuai dengan controller, 357 00:19:18,230 --> 00:19:22,190 dan sama untuk komentar, yang sama bagi pengguna, dan seterusnya dan sebagainya. 358 00:19:22,190 --> 00:19:24,070 Dan itu adalah aturan umum. 359 00:19:24,070 --> 00:19:27,460 Ada akan menjadi kasus khusus di mana Anda mungkin berbeda dari itu, 360 00:19:27,460 --> 00:19:29,300 tetapi 90% dari waktu itulah apa yang Anda akan lakukan, 361 00:19:29,300 --> 00:19:32,810 dan aku akan menunjukkan kepada Anda bahwa apa yang akan kita lakukan hari ini. 362 00:19:32,810 --> 00:19:35,490 1 konsep yang lebih sebelum kita menyelam kembali ke dalam kode, 363 00:19:35,490 --> 00:19:37,710 ide ini objek pemetaan relasional. 364 00:19:37,710 --> 00:19:41,200 >> Kalian telah melakukan pset pengembangan web, 365 00:19:41,200 --> 00:19:43,820 dan Anda telah melihat bahwa Anda membuat sebuah query SQL, 366 00:19:43,820 --> 00:19:46,510 dan apa pun itu kembali ke 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 kolom dan meja, 369 00:19:55,480 --> 00:19:57,630 dan itulah bagaimana Anda bekerja dengan itu, 370 00:19:57,630 --> 00:19:59,290 dan itu dapat sedikit rumit. 371 00:19:59,290 --> 00:20:01,810 Tapi lebih jauh lagi, jika Anda memiliki hubungan dalam database Anda, 372 00:20:01,810 --> 00:20:05,280 seperti misalnya jika saya memiliki komentar dan posting, 373 00:20:05,280 --> 00:20:11,240 maka mungkin saya ingin mengambil pos induk komentar. 374 00:20:11,240 --> 00:20:14,350 Jika saya menggunakan hanya baris di SQL, maka semua bisa saya dapatkan adalah ID 375 00:20:14,350 --> 00:20:19,310 dari pos induk dan bukan pos itu sendiri. 376 00:20:19,310 --> 00:20:21,680 Tapi ketika kita coding, apa yang sebenarnya kita inginkan adalah untuk benar-benar mengambil 377 00:20:21,680 --> 00:20:23,550  orangtua posting itu sendiri kadang-kadang. 378 00:20:23,550 --> 00:20:25,730 Apa object relational mapping dilakukan adalah 379 00:20:25,730 --> 00:20:29,480 dibutuhkan hasil query database 380 00:20:29,480 --> 00:20:32,420 dan menempatkan ke objek untuk Anda, yang jauh lebih baik untuk bekerja dengan 381 00:20:32,420 --> 00:20:34,770 dari array polos dan baris. 382 00:20:34,770 --> 00:20:37,550 >> Misalnya, sekarang ketika saya memiliki komentar mungkin, 383 00:20:37,550 --> 00:20:40,900 dan saya ingin ambil pasca induknya, 384 00:20:40,900 --> 00:20:43,440 dan saya mungkin komentar panah pos, 385 00:20:43,440 --> 00:20:45,230 maka benar-benar akan memberikan objek posting 386 00:20:45,230 --> 00:20:47,940 sesuai dengan pos induk yang sebenarnya, bukan hanya beberapa ID, 387 00:20:47,940 --> 00:20:52,210 yang saya dinyatakan akan harus menggunakan dan membuat SQL query lain untuk mengambil pos, 388 00:20:52,210 --> 00:20:57,430 yang rumit dan tidak perlu. 389 00:20:57,430 --> 00:21:01,840 Dan selanjutnya, dengan memetakan semua baris data ini menjadi benda-benda, 390 00:21:01,840 --> 00:21:03,760 Anda juga dapat melampirkan lebih banyak fungsi ke obyek, 391 00:21:03,760 --> 00:21:09,700 jadi misalnya, saya berbicara tentang bagaimana kelas pada dasarnya pengelompokan fungsi. 392 00:21:09,700 --> 00:21:11,620 Anda dapat menganggap seperti itu. 393 00:21:11,620 --> 00:21:15,290 Sebagai contoh, mungkin saya memiliki objek posting ini, 394 00:21:15,290 --> 00:21:17,830 dan mungkin saya ingin memiliki semacam fungsi yang melekat padanya 395 00:21:17,830 --> 00:21:20,300 yang pada dasarnya memberitahu saya itu baru-baru ini diposting? 396 00:21:20,300 --> 00:21:23,570 Apakah itu diposting dalam minggu terakhir, benar atau salah? 397 00:21:23,570 --> 00:21:27,320 Dan itulah fungsi saya dapat melampirkan ke objek, 398 00:21:27,320 --> 00:21:31,300 dan itu benar-benar nyaman untuk memilikinya di tempat yang sama, 399 00:21:31,300 --> 00:21:33,820 dan ada sejumlah fungsi yang berbeda Anda dapat membuat 400 00:21:33,820 --> 00:21:37,990 untuk benda-benda ini, dan itu benar-benar bagus untuk dapat melampirkan ke kelas, 401 00:21:37,990 --> 00:21:41,700 suatu benda, sedangkan jika Anda hanya memiliki baris yang berasal dari database Anda, 402 00:21:41,700 --> 00:21:43,790 maka Anda tidak bisa benar-benar melampirkan fungsi apapun itu. 403 00:21:43,790 --> 00:21:47,850 Ini benar-benar hanya data. 404 00:21:47,850 --> 00:21:50,550 Setiap pertanyaan tentang itu sama sekali? 405 00:21:50,550 --> 00:21:52,710 ORMs adalah pengembangan web sangat umum, 406 00:21:52,710 --> 00:21:56,330 dan ada banyak jenis ORMs, 407 00:21:56,330 --> 00:21:58,450 dan Kohana memiliki ORM sendiri. 408 00:21:58,450 --> 00:22:05,050 Itu sangat dasar, tetapi Anda akan mendapatkan rasa dari apa yang tampak seperti. 409 00:22:05,050 --> 00:22:08,780 >> Mari kita membuat model untuk posting blog kami, 410 00:22:08,780 --> 00:22:12,350 dan hal pertama yang kami jelas perlu lakukan adalah untuk membuat sebuah meja yang sebenarnya 411 00:22:12,350 --> 00:22:16,680 dalam database kami untuk benar-benar menyimpan data kita bagi mereka posting. 412 00:22:16,680 --> 00:22:19,260 Hal pertama yang akan saya lakukan adalah pergi ke phpMyAdmin. 413 00:22:19,260 --> 00:22:21,410 Apakah kalian menggunakan phpMyAdmin sebelumnya? 414 00:22:21,410 --> 00:22:23,400 Oke, mengagumkan, jadi kalian sudah tahu apa itu, 415 00:22:23,400 --> 00:22:32,200 dan aku akan membuat sebuah tabel baru yang disebut Kohana Posts, 416 00:22:32,200 --> 00:22:37,820 dan itu akan menjadi benar-benar sederhana. 417 00:22:37,820 --> 00:22:40,190 Aku harus masuk kembali masuk 418 00:23:02,620 --> 00:23:04,640 Semua kita akan lakukan hari ini adalah memiliki seorang penulis dan tubuh, 419 00:23:04,640 --> 00:23:11,930 hanya tetap sederhana. 420 00:23:11,930 --> 00:23:15,620 Aku akan membuat tabel itu, 421 00:23:15,620 --> 00:23:19,620 dan sekarang kita hanya memiliki tabel yang mewakili postingan kita 422 00:23:19,620 --> 00:23:23,370 dengan 2 kolom untuk penulis dan tubuh kita. 423 00:23:23,370 --> 00:23:26,290 Hal lain yang saya akan lakukan sekarang adalah 424 00:23:26,290 --> 00:23:29,820 mengkonfigurasi aplikasi web saya sehingga tahu bagaimana untuk menghubungkan ke database, 425 00:23:29,820 --> 00:23:31,950 dan ini, sekali lagi, adalah sesuatu yang Anda harus lakukan dengan semua aplikasi web. 426 00:23:31,950 --> 00:23:34,790 Anda harus memberitahu itu nama pengguna dan password 427 00:23:34,790 --> 00:23:36,990 dan nama database dan sebagainya dan sebagainya 428 00:23:36,990 --> 00:23:40,000 untuk mencari tahu bagaimana untuk benar-benar terhubung ke database Anda. 429 00:23:40,000 --> 00:23:58,710 >> Di Kohana, kita memiliki sesuatu yang disebut modul basis data, 430 00:23:58,710 --> 00:24:02,690 dan di folder konfigurasi kita memiliki folder ini disebut Database, 431 00:24:02,690 --> 00:24:07,330 dan seperti yang Anda lihat, ada banyak pengaturan yang harus ditetapkan di sini 432 00:24:07,330 --> 00:24:09,860 untuk menceritakannya apa nama pengguna dan password 433 00:24:09,860 --> 00:24:13,110 untuk database sehingga saya benar-benar dapat terhubung ke itu. 434 00:24:13,110 --> 00:24:15,010 Dan karena saya tidak ingin kalian benar-benar tahu 435 00:24:15,010 --> 00:24:17,190 nama pengguna dan password dari database saya, 436 00:24:17,190 --> 00:24:23,840 Aku punya file di mana saya sudah mengatur semuanya, dan aku akan copy dan paste di atas. 437 00:24:33,080 --> 00:24:36,870 Mengagumkan. 438 00:24:36,870 --> 00:24:39,880 Oke. Saya pikir itu semua konfigurasi yang harus saya lakukan, 439 00:24:39,880 --> 00:24:41,070 tapi mari kita lihat. 440 00:24:41,070 --> 00:24:43,720 Kami akan terus bekerja di dalamnya, dan jika sesuatu crash, 441 00:24:43,720 --> 00:24:47,490 maka kita akan memperbaikinya. 442 00:24:47,490 --> 00:24:51,830 Sekarang apa yang akan saya lakukan adalah saya akan membuat controller baru. 443 00:24:51,830 --> 00:24:53,190 Atau sebenarnya, maaf. 444 00:24:53,190 --> 00:24:55,080 Pertama, saya harus menciptakan model baru. 445 00:24:55,080 --> 00:25:01,620 Aku akan membuat model baru yang disebut post.php, 446 00:25:01,620 --> 00:25:12,440 dan apa yang akan kita lakukan adalah kita akan menyebutnya kelas Model_Post. 447 00:25:12,440 --> 00:25:15,390 Dapatkan beberapa sintaks pada, 448 00:25:15,390 --> 00:25:19,750 dan jadi ketika saya mengatakan, "meluas ORM," yang pada dasarnya 449 00:25:19,750 --> 00:25:21,210 beberapa object-oriented programming yang lebih, 450 00:25:21,210 --> 00:25:23,340 yang sayangnya kalian belum belajar di CS50 belum, 451 00:25:23,340 --> 00:25:25,290 tapi cukup mudah untuk mengambil. 452 00:25:25,290 --> 00:25:27,950 Ini memberi saya semua fungsi tambahan ini yang datang dalam paket ORM ini, 453 00:25:27,950 --> 00:25:31,120 dan jadi saya mendapatkan banyak fungsi dan yang lainnya secara gratis tambahan, 454 00:25:31,120 --> 00:25:34,810 yang akan Anda lihat sedikit dalam satu detik. 455 00:25:34,810 --> 00:25:37,670 >> Sekarang sebenarnya semua harus saya lakukan adalah membuat kelas ini. 456 00:25:37,670 --> 00:25:39,160 Aku bahkan tidak perlu membuat fungsi atau apa pun, 457 00:25:39,160 --> 00:25:41,770 tapi aku sudah membuat sebuah kelas yang mewakili meja, 458 00:25:41,770 --> 00:25:44,140 dan karena saya telah diperpanjang kelas ORM ini, 459 00:25:44,140 --> 00:25:51,080 Saya mendapatkan banyak hal-hal gratis, jadi untuk sekarang Anda tidak perlu mengatur apa-apa lagi up. 460 00:25:51,080 --> 00:25:53,530 Dan sekarang apa yang akan saya lakukan adalah saya akan membuat controller baru, 461 00:25:53,530 --> 00:25:58,480 yang aku akan nama blog.php, 462 00:25:58,480 --> 00:26:04,350 dan aku akan salin Welcome kontroler 463 00:26:04,350 --> 00:26:11,950 jadi saya tidak perlu mengetik ulang beberapa hal, 464 00:26:11,950 --> 00:26:20,720 dan sekarang saya harus mengubah nama ini. 465 00:26:20,720 --> 00:26:24,710 Sekarang apa yang akan saya lakukan untuk menguji untuk memastikan semuanya bekerja keluar, 466 00:26:24,710 --> 00:26:27,820 Aku akan ambil posting pertama dari database saya 467 00:26:27,820 --> 00:26:32,680 dan mencetak tubuh posting di layar. 468 00:26:32,680 --> 00:26:37,920 Untuk melakukan itu apa yang akan saya lakukan pertama adalah aku akan menyimpan posting 469 00:26:37,920 --> 00:26:48,770 ke variabel sehingga apa yang kita lakukan adalah - 470 00:26:48,770 --> 00:26:52,090 di Kohana apa yang Anda lakukan adalah untuk mengambil objek posting 471 00:26:52,090 --> 00:26:55,380 itu agak rumit, tetapi Anda harus melakukan hal ini disebut ORM :: pabrik, 472 00:26:55,380 --> 00:26:57,750 dan kemudian Anda lulus dalam nama model yang Anda inginkan, 473 00:26:57,750 --> 00:27:00,490 dan ia mengembalikan objek ORM yang mewakili model itu. 474 00:27:00,490 --> 00:27:04,860 Dan kemudian, seperti saya katakan, ketika kita memperpanjang objek ORM, 475 00:27:04,860 --> 00:27:07,320 kita mendapatkan semua metode ini secara gratis, jadi misalnya, 476 00:27:07,320 --> 00:27:09,200 kita mendapatkan fungsi baru ini disebut "menemukan semua," 477 00:27:09,200 --> 00:27:12,160 yang secara otomatis mengembalikan setiap posting dalam database, 478 00:27:12,160 --> 00:27:14,850 yang cukup nyaman. 479 00:27:14,850 --> 00:27:17,480 >> Dan sekarang dalam tubuh aku akan kembali 480 00:27:17,480 --> 00:27:24,860 posting pertama dan kembali tubuhnya. 481 00:27:24,860 --> 00:27:27,930 Dan tentu saja, saya harus membuat sebuah tulisan, 482 00:27:27,930 --> 00:27:31,880 jadi mari kita memasukkan posting baru. 483 00:27:31,880 --> 00:27:37,870 Aku akan mengatakan, "Brandon, posting pertama saya." 484 00:27:37,870 --> 00:27:40,010 Mengagumkan. 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 bekerja dengan baik - oh, ini adalah beberapa hal izin berkas bodoh lainnya lagi. 487 00:27:50,960 --> 00:27:56,090 Tunggu 1 detik. Ini semacam masuk akal. 488 00:28:06,700 --> 00:28:08,490 Di sana kami pergi. Oke. 489 00:28:08,490 --> 00:28:10,040 Saya tetap bahwa masalah izin. 490 00:28:10,040 --> 00:28:12,040 Itu mencoba untuk membuat beberapa file dan beberapa log, 491 00:28:12,040 --> 00:28:15,400 dan hak akses, sekali lagi, tidak benar diatur, jadi saya membuatnya 492 00:28:15,400 --> 00:28:18,320 sehingga file-file yang ditulis dan dieksekusi 493 00:28:18,320 --> 00:28:21,090 sehingga benar-benar bisa masuk ke hal-hal. 494 00:28:21,090 --> 00:28:24,220 Sekarang itu memberi saya mengatakan pengecualian lain, "kelas ORM tidak ditemukan," 495 00:28:24,220 --> 00:28:26,960 dan itu karena saya lupa langkah lain. 496 00:28:26,960 --> 00:28:37,010 Itu terlalu buruk. 497 00:28:37,010 --> 00:28:40,270 Dalam file folder bootstrap, ada modul ini di sini, 498 00:28:40,270 --> 00:28:42,480 yang dapat anda pilih untuk mengaktifkan atau menonaktifkan. 499 00:28:42,480 --> 00:28:44,340 Ini adalah banyak fitur yang berbeda yang dapat Anda pilih untuk menggunakan 500 00:28:44,340 --> 00:28:46,180 dalam Kohana, yang merupakan semacam bagus. 501 00:28:46,180 --> 00:28:49,090 >> Misalnya, mereka memiliki modul otentikasi 502 00:28:49,090 --> 00:28:51,170 yang dapat Anda gunakan untuk otentikasi pengguna. 503 00:28:51,170 --> 00:28:53,390 Mereka memiliki modul caching jika Anda ingin menerapkan 504 00:28:53,390 --> 00:28:57,870 semacam caching back end untuk membuat karya aplikasi lebih cepat dan yang lainnya. 505 00:28:57,870 --> 00:29:02,140 Kita harus mengaktifkan database dan modul ORM, 506 00:29:02,140 --> 00:29:04,280 karena seperti saya katakan, kami menggunakan database, jelas, 507 00:29:04,280 --> 00:29:08,200 dan kami juga harus mengaktifkan modul ORM, 508 00:29:08,200 --> 00:29:12,220 karena kami ingin memiliki fungsi tambahan, yang baik untuk memiliki. 509 00:29:12,220 --> 00:29:14,240 Semua yang harus saya lakukan adalah tanda komentar yang 2 baris, 510 00:29:14,240 --> 00:29:18,760 dan jika saya refresh, itu memberi saya kesalahan lain. 511 00:29:18,760 --> 00:29:22,100 Ia mengatakan, "Kelas Model_Post tidak ditemukan." 512 00:29:22,100 --> 00:29:30,210 Sekarang ini adalah masalah yang baik untuk memiliki. 513 00:29:30,210 --> 00:29:37,660 Mari kita lihat. 514 00:29:37,660 --> 00:29:42,200 Membuat publik. 515 00:29:42,200 --> 00:29:46,450 No Tunggu. 516 00:30:11,610 --> 00:30:13,160 Oh, sayang. 517 00:30:13,160 --> 00:30:18,590 Aku tidak tahu mengapa hal itu tidak dapat menemukan itu. 518 00:30:18,590 --> 00:30:21,030 Itu benar-benar aneh. 519 00:30:21,030 --> 00:30:23,820 Aku punya kelas ini di sini. 520 00:30:23,820 --> 00:30:28,650 Saya kira saya mungkin harus - oh. 521 00:30:28,650 --> 00:30:32,010 Saya sangat bodoh. Aku lupa untuk menambahkan tag PHP. 522 00:30:32,010 --> 00:30:34,670 Itu sebabnya. 523 00:30:34,670 --> 00:30:41,260 Sekarang aku harus membatalkan bahwa 1 perubahan aku baru saja melakukannya. 524 00:30:41,260 --> 00:30:44,270 >> Oke. Di sana kami pergi. 525 00:30:44,270 --> 00:30:47,500 Itu benar-benar konyol. Saya tidak memiliki pembukaan tag PHP. 526 00:30:47,500 --> 00:30:49,900 Tapi seperti yang Anda lihat, sekarang bekerja dengan baik, kan? 527 00:30:49,900 --> 00:30:51,240 Kami memiliki 1 post. 528 00:30:51,240 --> 00:30:54,730 Kami meraih posting pertama, dan sekarang kami dicetak tubuhnya. 529 00:30:54,730 --> 00:30:58,010 Besar. Fantastic. 530 00:30:58,010 --> 00:31:01,470 Ada pertanyaan sejauh ini? 531 00:31:01,470 --> 00:31:04,100 Nggak? Ada pertanyaan? 532 00:31:04,100 --> 00:31:08,340 Oke, jadi kami hanya menciptakan model pos, sangat dasar, 533 00:31:08,340 --> 00:31:10,930 dan kita akan menambahkan beberapa fungsi di kemudian hari. 534 00:31:10,930 --> 00:31:13,600 Kita bisa menambahkan validasi dan filtering. 535 00:31:13,600 --> 00:31:15,650 Validasi adalah salah satu hal yang 536 00:31:15,650 --> 00:31:18,150 bahwa kerangka memecahkan untuk Anda benar-benar, benar-benar baik, 537 00:31:18,150 --> 00:31:21,310 dan saya tidak berpikir kalian harus melakukan ini untuk pset CS50 Anda, 538 00:31:21,310 --> 00:31:24,000 tetapi jika Anda melakukan pengembangan web untuk proyek akhir Anda, 539 00:31:24,000 --> 00:31:26,280 Anda mungkin akan ingin melakukan semacam validasi, 540 00:31:26,280 --> 00:31:28,290 seperti tidak memiliki nama pengguna kosong, 541 00:31:28,290 --> 00:31:31,950 mungkin memiliki password dengan setidaknya beberapa panjang, hal-hal seperti itu. 542 00:31:31,950 --> 00:31:34,750 Dan itu benar-benar rumit untuk menerapkan hal-hal ini oleh diri kita sendiri, 543 00:31:34,750 --> 00:31:37,390 dan hampir semua kerangka web tunggal melakukannya untuk Anda 544 00:31:37,390 --> 00:31:41,140 dan memungkinkan Anda untuk melakukannya dengan cara yang sangat bersih. 545 00:31:41,140 --> 00:31:44,340 Dan model ini di mana Anda biasanya mengungkapkan aturan-aturan validasi, 546 00:31:44,340 --> 00:31:48,790 karena itu memvalidasi apakah model adalah valid atau tidak. 547 00:31:48,790 --> 00:31:51,350 >> Tapi untuk saat ini, kita akan menempatkan bahwa sampai nanti, 548 00:31:51,350 --> 00:31:53,520 dan untuk saat ini kita akan bekerja pada bagian lain, 549 00:31:53,520 --> 00:31:55,400 dan kami akan mencoba dan membuat tampilan baru 550 00:31:55,400 --> 00:31:59,580 yang berisi daftar semua posting. 551 00:31:59,580 --> 00:32:02,490 Langkah-langkah yang terlibat dalam membuat tindakan baru untuk daftar semua posting 552 00:32:02,490 --> 00:32:04,810 adalah untuk mengambil daftar semua posting 553 00:32:04,810 --> 00:32:11,990 dan kemudian membuat daftar semua posting melalui pandangan. 554 00:32:11,990 --> 00:32:16,420 Di sini, cukup untungnya, kita sudah meraih semua posting 555 00:32:16,420 --> 00:32:20,310 menggunakan baris pertama ini, menemukan semua fungsi, 556 00:32:20,310 --> 00:32:22,520 dan sekarang apa yang akan kita lakukan adalah sejauh 557 00:32:22,520 --> 00:32:25,350 Aku sudah langsung menetapkan tubuh respon 558 00:32:25,350 --> 00:32:29,090 dengan melewatkan string, tapi sekarang saya ingin menggunakan pandangan, 559 00:32:29,090 --> 00:32:31,870 dan perbedaan antara pandangan dan hanya melakukan hal ini 560 00:32:31,870 --> 00:32:35,330 adalah dengan melihat saya bisa memiliki bagus, template HTML besar, 561 00:32:35,330 --> 00:32:37,710 dan apa yang bisa saya lakukan adalah menyebarkannya variabel-variabel tertentu 562 00:32:37,710 --> 00:32:42,200 dan kemudian memiliki pandangan secara otomatis mengisi kerangkanya 563 00:32:42,200 --> 00:32:44,690 menggunakan variabel tersebut. 564 00:32:44,690 --> 00:32:50,780 Apa yang saya akan lakukan adalah saya akan membuat tampilan baru, 565 00:32:50,780 --> 00:32:55,940 dan aku akan nama tampilan seperti "blog / index," 566 00:32:55,940 --> 00:33:08,480 dan aku akan mengikat pada dasarnya ini - oh, apa yang saya tulis? 567 00:33:08,480 --> 00:33:12,910 Otak saya adalah di tempat lain. 568 00:33:12,910 --> 00:33:16,600 Aku akan mengikat posting variabel untuk melihat, 569 00:33:16,600 --> 00:33:19,950 sehingga cara pandangan memiliki akses ke variabel posting ini. 570 00:33:19,950 --> 00:33:26,140 >> Dan jadi sekarang saya harus membuat pandangan ini, 571 00:33:26,140 --> 00:33:28,500 jadi di sini kita memiliki folder ini disebut "Views," 572 00:33:28,500 --> 00:33:32,150 dan pertama kali, aku akan membuat folder baru di bawah yang disebut "Blog." 573 00:33:32,150 --> 00:33:35,810 Ini bagus. Dengan begitu kita dapat memiliki hirarki yang bagus untuk pandangan kita. 574 00:33:35,810 --> 00:33:43,910 Dan kemudian aku akan membuat file lain di sana disebut "index.php." 575 00:33:43,910 --> 00:33:45,780 Mengagumkan. 576 00:33:45,780 --> 00:33:52,930 Sebenarnya, mari kita mereka berdua di sini. 577 00:33:52,930 --> 00:33:56,760 Membuat tampilan file mungkin adalah bagian yang paling sederhana dari semua ini, 578 00:33:56,760 --> 00:33:59,090 dan ini mungkin hal-hal yang Anda sudah akrab dengan. 579 00:33:59,090 --> 00:34:01,240 Kita akan melakukan sesuatu yang sangat sederhana, 580 00:34:01,240 --> 00:34:05,360 mulai mengatakan, "List Saya posting blog." 581 00:34:05,360 --> 00:34:14,860 Kemudian kita bisa melalui, 582 00:34:14,860 --> 00:34:17,920 dan kita dapat iterate melalui posting array, 583 00:34:17,920 --> 00:34:21,760 ambil setiap posting dan mengatakan sesuatu seperti - 584 00:34:21,760 --> 00:34:25,290 mungkin menambahkan baris 585 00:34:25,290 --> 00:34:42,460 dan kemudian mencetak penulis dan tubuh. 586 00:34:42,460 --> 00:34:44,480 Itu masuk akal sejauh ini? 587 00:34:44,480 --> 00:34:50,870 Dan mari kita lihat apakah ia bekerja. 588 00:34:50,870 --> 00:34:53,489 Tidak ada yang terjadi. 589 00:34:53,489 --> 00:34:55,090 Aku bertanya-tanya mengapa. 590 00:34:55,090 --> 00:34:58,760 Oh, aku merindukan 1 step. Sangat konyol dari saya. 591 00:34:58,760 --> 00:35:01,640 Saya membuat pandangan, tapi aku tidak mengatur tampilan sebagai respon, 592 00:35:01,640 --> 00:35:03,190 sehingga Anda harus melakukan hal 1 lagi. 593 00:35:03,190 --> 00:35:12,610 Anda harus melakukan "respons tubuh ini" dan set menjadi pandangan. 594 00:35:12,610 --> 00:35:14,760 Di sana kami pergi. 595 00:35:14,760 --> 00:35:17,200 Kami memiliki pos kami, dan kemudian kita harus posting, 596 00:35:17,200 --> 00:35:20,500 dan hanya untuk iseng, mari kita masukkan pos lain 597 00:35:20,500 --> 00:35:23,390 sehingga kita dapat melihat daftar. 598 00:35:31,800 --> 00:35:36,650 Dan masukkan 2 tulisan ini, 599 00:35:36,650 --> 00:35:39,500 dan sekarang jika saya me-refresh halaman, 600 00:35:39,500 --> 00:35:42,060 kita melihat semua tulisan ini di sini. 601 00:35:42,060 --> 00:35:44,250 >> Apakah itu masuk akal sejauh ini? 602 00:35:44,250 --> 00:35:46,400 Ya, pertanyaan? Oh, oke. 603 00:35:46,400 --> 00:35:51,440 Seperti yang Anda lihat, kami telah mampu untuk memisahkan semua kode tersebut keluar 604 00:35:51,440 --> 00:35:53,920 menjadi beberapa bagian yang berbeda, dan kemudian Anda bisa melihat itu yang paling jelas dengan kode tampilan. 605 00:35:53,920 --> 00:35:57,810 File ini di sini yang mewakili pandangan, 606 00:35:57,810 --> 00:36:01,220 hanya peduli mewakili data, menampilkan data. 607 00:36:01,220 --> 00:36:04,310 Ini dilewatkan semacam data, dan semua hal ini hanya menunjukkan kepada Anda. 608 00:36:04,310 --> 00:36:07,660 Dalam semua bagian lain dari kode Anda, Anda tidak perlu khawatir tentang semua itu, 609 00:36:07,660 --> 00:36:10,480 dan sama, kode pandangan Anda tidak perlu khawatir apa-apa tentang 610 00:36:10,480 --> 00:36:13,390 cara mengakses database dan seterusnya dan sebagainya, 611 00:36:13,390 --> 00:36:19,950 yang benar-benar baik dan membuat kode Anda jauh lebih maintainable. 612 00:36:19,950 --> 00:36:23,390 Seperti saya katakan, pandangan, mereka dinamis dalam 613 00:36:23,390 --> 00:36:27,080 itu 1 file, tapi itu akan menghasilkan pandangan yang berbeda 614 00:36:27,080 --> 00:36:29,940 berdasarkan variabel Anda benar-benar lulus dalam, 615 00:36:29,940 --> 00:36:32,370 dan lebih jauh lagi, ada banyak fungsi pembantu yang berbeda 616 00:36:32,370 --> 00:36:34,230 yang dapat Anda gunakan untuk membantu Anda menulis kode Anda lebih cepat, 617 00:36:34,230 --> 00:36:36,320 mana saya akan menunjukkan Anda hanya dalam satu detik. 618 00:36:36,320 --> 00:36:38,050 Ya. 619 00:36:38,050 --> 00:36:42,490 >> [Student] Jadi $ 0 adalah controller, kan? 620 00:36:42,490 --> 00:36:44,000 Itu hal yang kedua. 621 00:36:44,000 --> 00:36:46,090 Pertanyaannya adalah adalah $ 0 controller? 622 00:36:46,090 --> 00:36:48,610 $ 0 adalah variabel yang saya buat di sini. 623 00:36:48,610 --> 00:36:51,320 Saya membuat pandangan pertama. Saya ditugaskan ke beberapa variabel. 624 00:36:51,320 --> 00:36:54,960 Lalu aku melewati ke fungsi ini, mengaturnya sebagai tubuh respon. 625 00:36:54,960 --> 00:36:57,260 Apakah itu masuk akal? 626 00:36:57,260 --> 00:37:02,200 [Mahasiswa] Jadi pandangan :: pabrik, adalah tampilan seperti kelas 627 00:37:02,200 --> 00:37:06,610 atau perpustakaan [tidak terdengar] fungsi pabrik? 628 00:37:06,610 --> 00:37:10,640 Pertanyaannya adalah tentang fungsi tampilan :: pabrik, 629 00:37:10,640 --> 00:37:14,020 dan pada dasarnya ini adalah beberapa objek yang lebih berorientasi pemrograman dasarnya. 630 00:37:14,020 --> 00:37:18,000 View adalah tampilan kelas, dan memiliki metode yang disebut "Factory," 631 00:37:18,000 --> 00:37:24,170 dan itulah cara untuk mengambil objek yang bernama "blog / index." 632 00:37:24,170 --> 00:37:27,140 Dan itu beberapa lebih banyak barang pemrograman berorientasi obyek 633 00:37:27,140 --> 00:37:33,010 bahwa aku tidak akan masuk ke sini terlalu banyak. 634 00:37:33,010 --> 00:37:36,400 Sekarang jelas, kita ingin membuat posting baru, 635 00:37:36,400 --> 00:37:38,790 tapi kami tidak mau harus melakukannya melalui database, 636 00:37:38,790 --> 00:37:41,280 jadi kita akan membuat tindakan baru untuk membuat posting baru, 637 00:37:41,280 --> 00:37:43,050 dan ada banyak hal yang harus kita lakukan. 638 00:37:43,050 --> 00:37:45,910 >> Hal pertama yang kita akan lakukan - mari kita menangani hal-hal ini satu per satu. 639 00:37:45,910 --> 00:37:48,320 Hal pertama yang akan kita lakukan adalah kita harus membuat formulir 640 00:37:48,320 --> 00:37:54,460 untuk memasukkan posting baru, 641 00:37:54,460 --> 00:37:57,360 tapi aku juga akan menambahkan tindakan baru pertama, 642 00:37:57,360 --> 00:38:01,050 sehingga menambahkan tindakan baru hanya semudah 643 00:38:01,050 --> 00:38:03,490 menambahkan fungsi baru dengan controller, 644 00:38:03,490 --> 00:38:13,710 dan untuk sekarang aku akan melakukan sesuatu yang sangat mendasar, 645 00:38:13,710 --> 00:38:20,850 hanya ambil pandangan ini dan posting, hanya menampilkannya untuk Anda. 646 00:38:20,850 --> 00:38:26,220 Dan kemudian sekarang aku akan membuat tampilan file baru, 647 00:38:26,220 --> 00:38:33,690 dan aku akan mulai menulis beberapa hal. 648 00:38:33,690 --> 00:38:36,540 Apa yang baik tentang Kohana adalah bahwa mereka menyediakan banyak fungsi pembantu yang berbeda 649 00:38:36,540 --> 00:38:38,790 bagi Anda untuk menulis tampilan kode lebih mudah, 650 00:38:38,790 --> 00:38:41,970 dan 1 dari fungsi-fungsi helper atau modul helper 651 00:38:41,970 --> 00:38:45,860 adalah sekitar menulis bentuk. 652 00:38:45,860 --> 00:38:49,460 Untuk menulis bentuk, saya tidak benar-benar harus langsung menulis HTML sendiri. 653 00:38:49,460 --> 00:38:51,100 Kalian telah menulis bentuk HTML. 654 00:38:51,100 --> 00:38:54,850 Kau tahu bagaimana itu dapat benar-benar, benar-benar menyakitkan dan rumit untuk menulis bentuk. 655 00:38:54,850 --> 00:38:59,970 Ini tidak menyenangkan, jadi untungnya, 656 00:38:59,970 --> 00:39:04,860 kita pada dasarnya dapat menulis bentuk menggunakan Kohana yang 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 Kita akan pada dasarnya memiliki kolom untuk setiap hal yang kita miliki, 659 00:39:17,340 --> 00:39:23,160 jadi satu untuk penulis dan satu untuk tubuh. 660 00:39:23,160 --> 00:39:27,090 Kita akan memiliki label, dan kita akan memiliki masukan. 661 00:39:37,450 --> 00:39:41,360 >> Dan akhirnya, kita akan memiliki submisi. 662 00:39:49,350 --> 00:39:52,230 Dan seperti yang Anda lihat, ini jauh lebih bersih untuk menulis 663 00:39:52,230 --> 00:39:58,150 dari semua itu HTML berantakan, yang jenis yang baik. 664 00:39:58,150 --> 00:40:00,930 Memang, ada kerangka kerja web lain yang memilikinya bahkan lebih bersih dari itu, 665 00:40:00,930 --> 00:40:04,440 tapi setidaknya ini lebih baik daripada menulis HTML 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 semacam berantakan, 668 00:40:13,530 --> 00:40:19,720 jadi saya akan menambahkan satu baris di sana 669 00:40:19,720 --> 00:40:21,180 untuk membuat yang terlihat sedikit lebih bagus. 670 00:40:21,180 --> 00:40:23,330 Nah, tentu saja, masih terlihat benar-benar, benar-benar buruk, tetapi kami hanya terfokus 671 00:40:23,330 --> 00:40:26,050 pada fungsi untuk saat ini dan bukan pada estetika. 672 00:40:26,050 --> 00:40:28,010 Tidak ada waktu untuk melakukan semuanya. 673 00:40:28,010 --> 00:40:30,600 Dan seperti yang Anda lihat, sekarang kita memiliki bentuk super dasar, 674 00:40:30,600 --> 00:40:32,080 yang agak manis. 675 00:40:32,080 --> 00:40:36,730 Kode ini saya akan mengatakan lebih bersih daripada mencoba 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 selanjutnya? 678 00:40:42,030 --> 00:40:49,260 Sekarang kita perlu melakukan hal-hal dengan tindakan. 679 00:40:49,260 --> 00:40:51,240 Biasanya, bila Anda menulis bentuk HTML, 680 00:40:51,240 --> 00:40:54,070 Anda harus mengatakan itu di mana itu akan mengirimkan formulir untuk. 681 00:40:54,070 --> 00:40:56,050 Secara default di sebagian besar kerangka web, 682 00:40:56,050 --> 00:40:58,200 itu menyerahkan ke URL yang sama persis, jadi masalahnya adalah, 683 00:40:58,200 --> 00:41:01,310 jika Anda mengirim permintaan untuk mendapatkan / blog / baru, 684 00:41:01,310 --> 00:41:03,240 Anda harus menampilkan form, 685 00:41:03,240 --> 00:41:06,810 tetapi jika Anda mengirim permintaan untuk posting / blog / baru dengan data, 686 00:41:06,810 --> 00:41:10,000 itu benar-benar harus mencoba untuk menyimpan posting yang 687 00:41:10,000 --> 00:41:13,300 dan melakukan sesuatu dengan itu. 688 00:41:20,630 --> 00:41:22,180 >> Apa yang akan kita lakukan adalah 689 00:41:22,180 --> 00:41:25,320 pada dasarnya semua yang harus kita lakukan untuk memeriksa apakah itu permintaan pos atau permintaan get 690 00:41:25,320 --> 00:41:29,350 adalah untuk memeriksa apa variabel posting Anda dapat mengatur. 691 00:41:29,350 --> 00:41:34,560 Dan jika variabel pos diatur, maka kita akan mencoba dan membuat posting baru. 692 00:41:34,560 --> 00:41:38,440 Sekali lagi, kita hanya melakukan hal ini, 693 00:41:38,440 --> 00:41:41,090 dan yang menciptakan posting baru, dan kita benar-benar akan 694 00:41:41,090 --> 00:41:51,150 mengatur bidang yang 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 aku akan mengarahkan 697 00:41:59,200 --> 00:42:07,660 ke halaman indeks sehingga mereka dapat melihat daftar posting lagi. 698 00:42:07,660 --> 00:42:09,620 Mari kita coba. 699 00:42:09,620 --> 00:42:15,160 Aku akan mengatakan, "Brandon," 700 00:42:15,160 --> 00:42:18,140 dan kemudian mengirimkan posting, dan jika semuanya berjalan dengan baik, 701 00:42:18,140 --> 00:42:21,390 seperti yang Anda lihat, itu diarahkan saya ke halaman indeks, 702 00:42:21,390 --> 00:42:24,140 dan jika saya gulir ke bawah, kami memiliki posting baru dimasukkan. 703 00:42:24,140 --> 00:42:26,430 Yay! 704 00:42:26,430 --> 00:42:28,430 Ya, pertanyaan. 705 00:42:28,430 --> 00:42:31,760 >> [Student] Bagaimana jika Anda telah memasuki hal yang sama persis 706 00:42:31,760 --> 00:42:33,380 Anda masukkan sebelumnya? 707 00:42:33,380 --> 00:42:36,950 Apakah itu memeriksa untuk memastikan Anda tidak diduplikasi 708 00:42:36,950 --> 00:42:38,810 pengajuan yang sama? 709 00:42:38,810 --> 00:42:41,660 Jadilah default, tidak ada, karena secara default - 710 00:42:41,660 --> 00:42:46,470 maaf, pertanyaannya adalah jika Anda memasukkan dalam data yang sama persis dalam bentuk 711 00:42:46,470 --> 00:42:50,180 dan menyampaikan bahwa, itu akan memungkinkan Anda untuk memasukkan objek duplikat, 712 00:42:50,180 --> 00:42:52,550 a duplikat entri, pada dasarnya? 713 00:42:52,550 --> 00:42:54,070 Sekarang, ya, itu akan memungkinkan Anda untuk melakukan itu, 714 00:42:54,070 --> 00:42:58,860 karena dalam database itu sangat valid untuk memiliki sepenuhnya duplikasi baris, 715 00:42:58,860 --> 00:43:02,260 tetapi jika itu adalah kekhawatiran, maka Anda dapat menambahkan validasi, misalnya, 716 00:43:02,260 --> 00:43:06,430 untuk memastikan bahwa jika ini adalah persis sama dengan sesuatu yang sudah ada, 717 00:43:06,430 --> 00:43:08,720 kemudian mengatakan bahwa itu suatu objek yang tidak valid, 718 00:43:08,720 --> 00:43:11,200 dan kemudian Anda bahkan dapat menentukan pesan kesalahan Anda 719 00:43:11,200 --> 00:43:14,390 dan berkata, "tidak valid karena ini sudah ada" atau sesuatu seperti itu. 720 00:43:14,390 --> 00:43:22,420 Tapi dalam kasus ini, saya hanya bisa menciptakan sesuatu yang duplikat. 721 00:43:22,420 --> 00:43:26,010 Sekarang mari kita coba dan menambahkan beberapa validasi. 722 00:43:26,010 --> 00:43:30,400 Masalah dengan hal ini sekarang adalah bahwa 723 00:43:30,400 --> 00:43:34,220 Aku benar-benar bisa mengirimkan posting benar-benar kosong. 724 00:43:34,220 --> 00:43:37,500 Saya dapat mengklik tombol ini sekarang, dan di sana kami pergi. 725 00:43:37,500 --> 00:43:40,290 Anda tidak bisa benar-benar melihatnya, tapi garis ekstra ini di sini 726 00:43:40,290 --> 00:43:43,830 menunjukkan bahwa saya benar-benar memiliki posting baru. 727 00:43:43,830 --> 00:43:46,050 Itu hanya memiliki seorang penulis kosong dan tubuh kosong, 728 00:43:46,050 --> 00:43:48,630 dan kita tidak ingin mengizinkan orang untuk melakukan itu. 729 00:43:48,630 --> 00:43:52,550 Di sinilah validasi masuk 730 00:43:52,550 --> 00:43:57,540 >> Aku bisa pergi ke objek model saya, 731 00:43:57,540 --> 00:43:59,530 dan sekarang saya dapat menambahkan fungsi baru yang menentukan 732 00:43:59,530 --> 00:44:02,000 apa aturan validasi yang harus saya tambahkan ke model ini 733 00:44:02,000 --> 00:44:06,840 memastikan bahwa itu sah atau untuk menentukan apa artinya menjadi pos yang valid? 734 00:44:06,840 --> 00:44:10,210 Dan saya ingin mengatakan itu hanya posting valid jika kedua penulis dan tubuh 735 00:44:10,210 --> 00:44:15,150 tidak kosong, dan ini adalah bagaimana Anda melakukannya di Kohana. 736 00:44:15,150 --> 00:44:18,750 Anda membuat fungsi baru yang disebut "Aturan," 737 00:44:18,750 --> 00:44:20,210 dan kemudian Anda pada dasarnya mengembalikan array asosiatif 738 00:44:20,210 --> 00:44:24,230 yang mendefinisikan aturan validasi untuk objek ini. 739 00:44:24,230 --> 00:44:27,530 Kita akan kembali array, dan kemudian apa yang kita akan lakukan adalah 740 00:44:27,530 --> 00:44:32,820 mengatakan "penulis," ia pergi ke array, 741 00:44:32,820 --> 00:44:37,720 yang pergi ke array yang lain yang disebut "tidak kosong." 742 00:44:37,720 --> 00:44:41,480 Dan kemudian aku akan mengatakan "tubuh." 743 00:44:50,980 --> 00:44:54,120 Oke, dan sintaks untuk ini dan struktur untuk ini 744 00:44:54,120 --> 00:44:56,530 mungkin terlihat sedikit rumit dan sedikit rumit. 745 00:44:56,530 --> 00:44:59,330 Jika Anda membaca dokumentasi, itu cukup mudah untuk mencari tahu, 746 00:44:59,330 --> 00:45:02,500 Tapi pada dasarnya ini adalah apa yang perlu Anda lakukan untuk menentukan 747 00:45:02,500 --> 00:45:04,130 beberapa aturan validasi, dan ada banyak aturan yang berbeda 748 00:45:04,130 --> 00:45:06,810 bahwa Kohana akan memberikan secara gratis, seperti Anda dapat menambahkan aturan untuk mengatakan 749 00:45:06,810 --> 00:45:08,410 itu harus setidaknya panjang ini. 750 00:45:08,410 --> 00:45:11,800 Mungkin itu harus numerik. Mungkin itu harus numerik alpha. 751 00:45:11,800 --> 00:45:14,410 Mungkin itu harus paling panjang ini, seterusnya dan sebagainya. 752 00:45:14,410 --> 00:45:17,730 Ada banyak aturan yang berbeda yang Kohana menyediakan untuk Anda, 753 00:45:17,730 --> 00:45:19,610 dan Anda dapat pergi pada website mereka, melihat dokumentasi, 754 00:45:19,610 --> 00:45:23,150 dan Anda dapat melihat semua hal yang berbeda yang dapat Anda lakukan. 755 00:45:23,150 --> 00:45:25,650 >> Tapi ini semua harus saya lakukan, 756 00:45:25,650 --> 00:45:30,490 dan sekarang mari kita lihat apa yang terjadi 757 00:45:30,490 --> 00:45:34,060 jika saya mengirimkan posting kosong. 758 00:45:34,060 --> 00:45:36,960 Apa yang akan terjadi? Oh, tidak, saya mendapatkan error. 759 00:45:36,960 --> 00:45:39,440 Saya mendapatkan pengecualian validasi. 760 00:45:39,440 --> 00:45:41,070 Yah, itu baik. 761 00:45:41,070 --> 00:45:43,200 Ini mengatakan kepada saya bahwa model saya tidak valid, 762 00:45:43,200 --> 00:45:45,780 tapi saya tidak ingin menampilkan pengecualian 763 00:45:45,780 --> 00:45:48,720 kepada pengguna ketika mereka mencoba untuk mengirimkan sesuatu yang tidak valid, kan? 764 00:45:48,720 --> 00:45:51,560 Saya ingin memberi mereka semacam pesan kesalahan ramah 765 00:45:51,560 --> 00:45:53,610 ketika sesuatu berjalan salah. 766 00:45:53,610 --> 00:46:01,830 Apa yang akan kita lakukan adalah kita akan 767 00:46:01,830 --> 00:46:04,490 membungkus semuanya dalam sebuah loop mencoba menangkap. 768 00:46:04,490 --> 00:46:06,750 Sebenarnya, saya pikir ini adalah juga sesuatu yang Anda belum belajar belum 769 00:46:06,750 --> 00:46:10,820 di CS50, karena C, bahasa pemrograman C, 770 00:46:10,820 --> 00:46:14,000 tidak memiliki pengecualian, tetapi hampir setiap bahasa tunggal lainnya 771 00:46:14,000 --> 00:46:16,700 memiliki pengecualian, sehingga benar-benar, benar-benar singkat, 772 00:46:16,700 --> 00:46:19,430 pengecualian adalah sesuatu yang sepotong kode dapat 773 00:46:19,430 --> 00:46:21,430 melempar pengecualian ketika sesuatu berjalan salah, 774 00:46:21,430 --> 00:46:23,410 tapi kemudian mungkin beberapa bagian lain dari kode yang lebih tinggi 775 00:46:23,410 --> 00:46:25,810 dapat menangkap pengecualian itu dan melakukan sesuatu dengan itu. 776 00:46:25,810 --> 00:46:27,710 >> Misalnya, dalam kasus ini, 777 00:46:27,710 --> 00:46:29,940 potongan kode yang mencoba untuk menyelamatkan model, 778 00:46:29,940 --> 00:46:33,170 memvalidasi model, dan jika ia mengatakan, "Oke, model ini tidak valid," 779 00:46:33,170 --> 00:46:36,150 itu akan melemparkan sebuah pengecualian, dan ini adalah jenis setara dengan 780 00:46:36,150 --> 00:46:39,870 di C Anda mungkin mengembalikan -1 atau sesuatu seperti itu. 781 00:46:39,870 --> 00:46:42,320 Dan kemudian bagi saya, fungsi ini, kode saya 782 00:46:42,320 --> 00:46:46,310 pada tingkat yang lebih tinggi, saya dapat mencoba dan menangkap pengecualian yang 783 00:46:46,310 --> 00:46:49,330 dan pada dasarnya berkata, "Oke, kalau aku menangkap pengecualian, apa yang akan saya lakukan?" 784 00:46:49,330 --> 00:46:51,570 Atau aku bisa memilih untuk tidak menangkap pengecualian itu dan membiarkan seseorang yang lebih tinggi 785 00:46:51,570 --> 00:46:54,400 menangkap pengecualian, atau jika tidak ada menangkap itu, 786 00:46:54,400 --> 00:46:56,820 maka seluruh program crash dan mengatakan, 787 00:46:56,820 --> 00:46:59,170 "Ada yang tidak beres, dan aku tidak bisa mengatasinya." 788 00:46:59,170 --> 00:47:04,490 >> Tapi apa yang kita lakukan adalah Anda membungkus sepotong kode dalam blok try, 789 00:47:04,490 --> 00:47:09,030 dan kemudian Anda juga menambahkan sesuatu yang disebut blok catch, 790 00:47:09,030 --> 00:47:17,300 yang merupakan semacam kode yang akan mencoba dan menangkap pengecualian yang mungkin terjadi. 791 00:47:17,300 --> 00:47:20,430 Dan jadi jika saya menangkap pengecualian tertentu 792 00:47:20,430 --> 00:47:23,110 atau pembatalan pengecualian, maka apa yang akan saya lakukan adalah 793 00:47:23,110 --> 00:47:31,210 Aku akan mengatur kesalahan - saya pikir itulah bagaimana saya melakukannya - 794 00:47:31,210 --> 00:47:35,370 dan aku akan mengatur kesalahan ke beberapa objek. 795 00:47:35,370 --> 00:47:40,920 Lalu apa yang akan saya lakukan adalah jika hits pengecualian ini, 796 00:47:40,920 --> 00:47:43,090 itu tidak akan untuk mengarahkan, dan jika tidak mengarahkan, 797 00:47:43,090 --> 00:47:46,160 itu akan keluar dari jika blog 798 00:47:46,160 --> 00:47:49,920 dan memukul blog ini / baru, yang ingin yang ingin saya lakukan. 799 00:47:49,920 --> 00:47:53,190 Jika ada kesalahan, maka saya ingin kembali ke bentuk 800 00:47:53,190 --> 00:47:55,100 dan menampilkan kesalahan-kesalahan. 801 00:47:55,100 --> 00:48:00,780 Sekarang apa yang ingin saya lakukan adalah saya ingin lulus dalam kesalahan-kesalahan 802 00:48:00,780 --> 00:48:07,010 untuk melihat. 803 00:48:07,010 --> 00:48:10,360 Oke, saya pikir saya memiliki pandangan di sini, 804 00:48:10,360 --> 00:48:14,660 dan pada dasarnya saya ingin menampilkan kesalahan-kesalahan jika mereka ada. 805 00:48:14,660 --> 00:48:19,740 Sebelum saya menulis HTML untuk itu, aku akan benar-benar cepat 806 00:48:19,740 --> 00:48:21,720 menunjukkan apa struktur kesalahan ini terlihat seperti variabel, 807 00:48:21,720 --> 00:48:23,080 dan ini adalah praktik yang baik secara umum. 808 00:48:23,080 --> 00:48:25,070 Banyak kali Anda mendapatkan sesuatu kembali dari beberapa metode, 809 00:48:25,070 --> 00:48:27,250 beberapa fungsi dalam kerangka web, 810 00:48:27,250 --> 00:48:29,410 dan Anda tidak tahu apa yang tampak seperti variabel, 811 00:48:29,410 --> 00:48:31,210 sehingga Anda tidak tahu bagaimana bekerja dengan itu. 812 00:48:31,210 --> 00:48:37,790 Aku akan menggunakan metode cetak r pada dasarnya mencetaknya. 813 00:48:37,790 --> 00:48:41,100 >> Dan seperti yang Anda lihat, ia memberitahu saya itu sebuah array asosiasi, 814 00:48:41,100 --> 00:48:44,880 dan Anda memiliki kunci, penulis, poin ke string ini, 815 00:48:44,880 --> 00:48:47,050 penulis tidak boleh kosong, dan tombol lain, tubuh, 816 00:48:47,050 --> 00:48:49,680 poin ke string lain, tubuh harus tidak boleh kosong. 817 00:48:49,680 --> 00:48:52,130 Aku seperti, oke, keren. 818 00:48:52,130 --> 00:48:56,230 Lalu aku bisa iterate melalui array dan mencetak setiap pesan. 819 00:48:56,230 --> 00:49:02,150 Pada dasarnya seperti sebuah array asosiatif dengan sekelompok pesan. 820 00:49:02,150 --> 00:49:13,500 Apa yang akan saya lakukan adalah "jika kesalahan," 821 00:49:13,500 --> 00:49:17,140 dan aku akan membuat daftar unordered, 822 00:49:17,140 --> 00:49:20,860 dan aku akan iterate melalui semua kesalahan. 823 00:49:33,730 --> 00:49:38,710 Dan ini, dan sekarang saya akan mencoba mengirimkan ini lagi, 824 00:49:38,710 --> 00:49:41,200 dan mari kita lihat apa yang kita dapatkan. 825 00:49:41,200 --> 00:49:45,370 Sekarang kita mendapatkan daftar ini bagus kesalahan, 826 00:49:45,370 --> 00:49:48,630 dan ini masih sangat jelek, tapi ini jelas dapat diformat untuk terlihat bagus, 827 00:49:48,630 --> 00:49:51,620 tetapi ide dasarnya adalah hanya dalam beberapa baris kode, 828 00:49:51,620 --> 00:49:53,720 kami mampu memvalidasi model kita, 829 00:49:53,720 --> 00:49:56,510 memastikan bahwa bidang-bidang tertentu yang tidak kosong, 830 00:49:56,510 --> 00:49:59,740 dan jika sesuatu yang tidak beres, kemudian kembali semacam pesan error 831 00:49:59,740 --> 00:50:01,760 Saya kemudian bisa hadir kembali ke pengguna. 832 00:50:01,760 --> 00:50:03,910 Anda juga dapat menyesuaikan validasi Anda 833 00:50:03,910 --> 00:50:07,590 sehingga Anda benar-benar dapat memiliki pesan kesalahan 834 00:50:07,590 --> 00:50:09,620 yang lebih spesifik untuk aplikasi Anda atau sesuatu seperti itu. 835 00:50:09,620 --> 00:50:14,600 Semua yang umumnya disesuaikan. 836 00:50:14,600 --> 00:50:17,150 >> Sayangnya, kita kehabisan waktu, 837 00:50:17,150 --> 00:50:20,040 jadi saya akan harus memotong sesi coding langsung di sini. 838 00:50:20,040 --> 00:50:22,980 Ada banyak fitur lain yang saya ingin menunjukkan untuk Anda 839 00:50:22,980 --> 00:50:25,650 dalam contoh ini. 840 00:50:25,650 --> 00:50:27,620 Misalnya, Anda dapat menambahkan template ke situs Anda, 841 00:50:27,620 --> 00:50:31,110 jadi mungkin ada semacam kode HTML yang ingin Anda terapkan 842 00:50:31,110 --> 00:50:35,190 ke setiap halaman di situs Anda, dan bukannya paste yang 843 00:50:35,190 --> 00:50:40,630 dalam setiap tampilan file tunggal yang Anda miliki, yang jelas akan menjadi praktek yang buruk, 844 00:50:40,630 --> 00:50:43,020 Anda pada dasarnya dapat menentukan template ini, 845 00:50:43,020 --> 00:50:46,660 dan kemudian di controller Anda berkata, "Oke, saya menggunakan template ini." 846 00:50:46,660 --> 00:50:50,130 "Apakah semua pandangan saya menggunakan template ini." 847 00:50:50,130 --> 00:50:52,470 Dan satu hal terakhir yang saya ingin menunjukkan kepada Anda juga 848 00:50:52,470 --> 00:50:57,800 bahwa kita tidak punya waktu adalah cross-site scripting, 849 00:50:57,800 --> 00:51:01,430 dan pada dasarnya saya pikir kalian mungkin telah melihat dalam CS50 - 850 00:51:01,430 --> 00:51:03,770 Saya pikir David Malan mungkin berbicara tentang bagaimana Anda biasanya dapat menyuntikkan 851 00:51:03,770 --> 00:51:08,040 JavaScript kode ke - Anda telah berbicara tentang hal ini? 852 00:51:08,040 --> 00:51:10,220 Mungkin? Mungkin tidak? 853 00:51:10,220 --> 00:51:12,670 >> Tapi banyak kali Anda dapat menyuntikkan kode JavaScript berbahaya 854 00:51:12,670 --> 00:51:15,630 ke dalam database seseorang, dan jika mereka tidak melarikan diri dengan benar, 855 00:51:15,630 --> 00:51:18,280 kemudian ketika mereka menyajikan data yang kembali ke pengguna, 856 00:51:18,280 --> 00:51:21,310 maka mungkin menjalankan semacam kode JavaScript acak Anda tidak inginkan terjadi, 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 sangat, sangat mudah. 859 00:51:25,380 --> 00:51:31,920 Aku bisa melakukannya sekarang dalam 2 detik harfiah. 860 00:51:31,920 --> 00:51:34,560 Yang harus Anda lakukan adalah pada dasarnya membungkus hal-hal ini 861 00:51:34,560 --> 00:51:46,920 dalam hal ini disebut entitas HTML. 862 00:51:46,920 --> 00:51:51,180 Dan yang secara otomatis akan lolos semua karakter dengan benar 863 00:51:51,180 --> 00:51:54,730 dan pastikan Anda tidak mendapatkan masalah ini. 864 00:51:54,730 --> 00:51:57,220 [Student] Anda dieja tes pertama salah. 865 00:51:57,220 --> 00:52:01,030 [Brandon Liu] Oh, oops. 866 00:52:01,030 --> 00:52:06,420 >> Oke, itu semua saya harus berbagi dengan Anda hari ini. 867 00:52:06,420 --> 00:52:09,930 Slide ini akan diposting, tetapi ini umumnya 868 00:52:09,930 --> 00:52:13,900 satu-satunya sumber daya yang Anda harus benar-benar perlu untuk memulai dengan Kohana. 869 00:52:13,900 --> 00:52:16,770 Anda dapat pergi ke situs web. Mereka memiliki buku petunjuk, dan mereka juga memiliki explorer API. 870 00:52:16,770 --> 00:52:20,630 Kita bisa mengeksplorasi semua fungsi yang berbeda dan fungsi pembantu mereka miliki untuk Anda. 871 00:52:20,630 --> 00:52:22,070 Mereka umumnya memiliki informasi yang cukup pada website 872 00:52:22,070 --> 00:52:25,310 yang dapat Anda gunakan untuk memulai dan pergi dengan Kohana. 873 00:52:25,310 --> 00:52:30,840 Ada tidak banyak tutorial, saya pikir, untuk Kohana, di luar 874 00:52:30,840 --> 00:52:33,880 apa yang mereka miliki di situs web di sini, jadi ini mungkin Anda terbaik. 875 00:52:33,880 --> 00:52:35,600 Tetapi jika Anda ingin pergi dengan kerangka web 876 00:52:35,600 --> 00:52:37,120 dan Anda tidak mau harus mengambil bahasa baru, 877 00:52:37,120 --> 00:52:39,780 dan Anda menginginkan sesuatu yang relatif ringan dan memiliki kurva belajar yang mudah, 878 00:52:39,780 --> 00:52:41,570 Saya pasti akan menyarankan Kohana. 879 00:52:41,570 --> 00:52:44,040 Itu mungkin korban terbaik untuk itu. 880 00:52:44,040 --> 00:52:46,830 Lucunya, meskipun, adalah jika kita menggunakan Ruby on Rails, 881 00:52:46,830 --> 00:52:48,550 kita bisa direplikasi apa yang baru saja kita lakukan 882 00:52:48,550 --> 00:52:51,430 dan mungkin lebih di bawah 3 menit. 883 00:52:51,430 --> 00:52:54,710 Tidak ada lelucon, tetapi belajar Ruby on Rails dibutuhkan jauh lebih lama 884 00:52:54,710 --> 00:52:56,780 daripada yang dibutuhkan untuk belajar Kohana. 885 00:52:56,780 --> 00:52:58,840 Pada dasarnya pilihan Anda pada apa yang Anda ingin memilih untuk belajar, 886 00:52:58,840 --> 00:53:01,260 tetapi jika Anda ingin bangun dan berjalan cepat, 887 00:53:01,260 --> 00:53:03,870 Kohana jelas merupakan suatu pilihan yang sangat baik. 888 00:53:03,870 --> 00:53:06,730 >> Pertanyaan terakhir sebelum kita berakhir? Ya. 889 00:53:06,730 --> 00:53:08,020 [Student] Bagaimana kita mengintegrasikan bahwa 890 00:53:08,020 --> 00:53:13,120 dalam kerangka CSS seperti Anda menggunakan ketika Anda memerintahkan? 891 00:53:13,120 --> 00:53:16,700 Pertanyaannya adalah bagaimana kita akan mengintegrasikan bahwa dengan kerangka CSS? 892 00:53:16,700 --> 00:53:18,740 Apa yang kita mungkin akan lakukan adalah kita mungkin akan mencakup 893 00:53:18,740 --> 00:53:21,090 folder baru di mana kita akan membuang semua file CSS kami, 894 00:53:21,090 --> 00:53:23,010 dan kemudian kami juga akan menambahkan template baru. 895 00:53:23,010 --> 00:53:26,090 Dalam template kami akan menyertakan file-file CSS 896 00:53:26,090 --> 00:53:28,410 untuk memastikan mereka direferensikan pada setiap halaman, 897 00:53:28,410 --> 00:53:32,220 dan kemudian ketika Anda benar-benar menulis HTML, 898 00:53:32,220 --> 00:53:34,010 Anda hanya menambahkan kelas yang tepat dan yang lainnya, 899 00:53:34,010 --> 00:53:36,100 dan misalnya, ketika Anda menggunakan sesuatu seperti bentuk 900 00:53:36,100 --> 00:53:40,710 fungsi pembantu, Anda dapat menambahkan lebih banyak parameter setelah itu 901 00:53:40,710 --> 00:53:42,830 untuk menentukan kelas apa yang Anda ingin melekat pada berbagai hal 902 00:53:42,830 --> 00:53:47,820 sehingga mereka bisa gaya itu dengan benar, dan itulah dasarnya bagaimana Anda akan pergi. 903 00:53:47,820 --> 00:53:50,100 >> Ada pertanyaan lain? 904 00:53:50,100 --> 00:53:52,090 Mengagumkan. 905 00:53:52,090 --> 00:53:58,540 Terima kasih untuk waktu Anda, dan terima kasih untuk datang. 906 00:53:58,540 --> 00:54:05,170 Aku tidak akan menambahkan sangat banyak yang lain, 907 00:54:05,170 --> 00:54:08,560 tapi 1 hal yang sangat cepat adalah kita tidak memiliki link 908 00:54:08,560 --> 00:54:12,590 ke form. 909 00:54:12,590 --> 00:54:14,310 Benar-benar bodoh. 910 00:54:14,310 --> 00:54:20,110 Mari menambahkan - sebenarnya dalam tampilan, blog, indeks, 911 00:54:20,110 --> 00:54:23,890 mari kita benar-benar cepat menambahkan link yang masuk ke halaman baru, 912 00:54:23,890 --> 00:54:26,770 halaman di mana kita dapat memasukkan posting baru. 913 00:54:26,770 --> 00:54:29,950 Kita akan melakukan hal ini. 914 00:54:29,950 --> 00:54:34,020 Apa yang baik adalah ada kelompok ini seluruh fungsi helper HTML 915 00:54:34,020 --> 00:54:37,090 yang melakukan hal yang berbeda untuk Anda, sehingga Anda sudah melihat entitas 916 00:54:37,090 --> 00:54:41,980 berfungsi di sini, tetapi mereka juga memiliki fungsi yang disebut "anchor," 917 00:54:41,980 --> 00:54:45,400 yang Anda dapat mengetikkan blog / new 918 00:54:45,400 --> 00:54:49,550 dan berkata, "Pasang blog baru." 919 00:54:49,550 --> 00:54:51,850 Dan itu akan membuat link untuk Anda, 920 00:54:51,850 --> 00:54:54,120 dan ini tampaknya benar-benar sepele untuk dilakukan, tapi ini bagus, 921 00:54:54,120 --> 00:54:58,720 karena mengira bahwa Anda pindah website Anda dari 1 domain yang lain. 922 00:54:58,720 --> 00:55:01,390 Dan jika Anda hanya menulis URL sendiri, 923 00:55:01,390 --> 00:55:04,350 maka Anda akan harus mengubah semua URL. 924 00:55:04,350 --> 00:55:06,850 Atau mungkin Anda pindah dari 1 subfolder ke subfolder lain. 925 00:55:06,850 --> 00:55:08,790 Anda akan harus mengubah semua URL tersebut sendiri, 926 00:55:08,790 --> 00:55:12,180 dan itu tidak menyenangkan. 927 00:55:12,180 --> 00:55:14,510 Anda dapat menggunakan jangkar ini di sini, 928 00:55:14,510 --> 00:55:18,950 dan Anda dapat mengubah domain atau awalan subfolder 929 00:55:18,950 --> 00:55:20,640 di file konfigurasi sekali, 930 00:55:20,640 --> 00:55:22,980 dan kemudian akan menerapkan bahwa di mana-mana, dan ini, sekali lagi, 931 00:55:22,980 --> 00:55:26,930 contoh yang bagus dari tidak mengulangi diri sendiri, mengeringkan kode Anda keluar. 932 00:55:26,930 --> 00:55:30,370 Di mana pun Anda mengulangi diri sendiri, mencoba dan ekstrak dalam beberapa jenis file konfigurasi 933 00:55:30,370 --> 00:55:34,160 atau fungsi yang berbeda dan telah menangani itu untuk Anda. 934 00:55:34,160 --> 00:55:42,930 >> Dan hal terakhir yang saya ingin menunjukkan Anda adalah 935 00:55:42,930 --> 00:55:50,250 misalkan kita kembali pada posting ini, dan saya telah menulis beberapa esai yang sangat panjang, 936 00:55:50,250 --> 00:55:52,670 tapi aku lupa untuk menyertakan penulis saya. 937 00:55:52,670 --> 00:55:55,210 Sekarang ketika saya klik "Kirim Post," 938 00:55:55,210 --> 00:55:57,270 Aku baru saja kehilangan segalanya. 939 00:55:57,270 --> 00:56:00,000 Tidak! Benar-benar menyedihkan. 940 00:56:00,000 --> 00:56:03,870 Jadi bagaimana Anda mengatasinya? 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 fungsi-fungsi input dan area teks, 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 bidang apa yang akan awalnya diisi dengan. 945 00:56:16,620 --> 00:56:23,570 Apa yang bisa kami lakukan adalah di controller blog kita, 946 00:56:23,570 --> 00:56:25,360 kita bisa mengikat variabel lain. 947 00:56:25,360 --> 00:56:27,050 Sebut saja "nilai-nilai" mungkin. 948 00:56:27,050 --> 00:56:30,620 Dan lulus di pos array, secara harfiah. 949 00:56:30,620 --> 00:56:32,620 Itu berarti bahwa jika validasi gagal, 950 00:56:32,620 --> 00:56:36,570 lolos ke saya array posting yang saya disampaikan dari permintaan terakhir, 951 00:56:36,570 --> 00:56:38,420 dan dengan cara itu saya bisa menggunakan nilai dari penyerahan terakhir saya 952 00:56:38,420 --> 00:56:44,540 untuk terisi kembali bidang. 953 00:56:44,540 --> 00:56:49,600 Sekarang saya dapat melakukan sesuatu seperti nilai-nilai penulis 954 00:56:49,600 --> 00:56:55,180 dan nilai-nilai tubuh, dan dengan cara itu jika saya melakukan beberapa hal acak 955 00:56:55,180 --> 00:57:01,490 dan klik "Kirim Post," maka itu tetap ada. 956 00:57:01,490 --> 00:57:03,830 Tapi kita akan mengalami masalah lain. 957 00:57:03,830 --> 00:57:07,670 Yang bekerja, tetapi jika aku pergi ke halaman pertama kalinya, 958 00:57:07,670 --> 00:57:09,720 itu akan kecelakaan, dan itu karena pertama kalinya 959 00:57:09,720 --> 00:57:13,730 kami pergi ke halaman, variabel posting ini belum ditetapkan belum. 960 00:57:13,730 --> 00:57:18,170 Ini null. Itu tidak ada. 961 00:57:18,170 --> 00:57:21,630 >> Dan apa yang ingin kita katakan adalah jika kunci ini ada, 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 ada, kemudian kembali string kosong. 964 00:57:30,450 --> 00:57:32,150 Itulah fungsi kita inginkan di sini. 965 00:57:32,150 --> 00:57:34,690 Kami ingin memeriksa apakah kunci ada sebelum mencoba untuk mengakses array, 966 00:57:34,690 --> 00:57:36,580 dan cukup untungnya, 967 00:57:36,580 --> 00:57:38,570 Kohana juga memberi kita fungsi pembantu untuk itu. 968 00:57:38,570 --> 00:57:41,040 Mereka memiliki seluruh suite ini fungsi 969 00:57:41,040 --> 00:57:43,660 dengan nama ARR, singkatan dari array, 970 00:57:43,660 --> 00:57:45,800 dan mereka memiliki 1 fungsi yang disebut "mendapatkan," 971 00:57:45,800 --> 00:57:48,690 dan Anda dapat lulus dalam array, 972 00:57:48,690 --> 00:57:50,740 dan Anda dapat lulus dalam nama kunci. 973 00:57:50,740 --> 00:57:54,330 Lalu dasarnya apa yang akan dilakukannya adalah ia akan mencoba untuk mendapatkan kunci itu, 974 00:57:54,330 --> 00:57:56,470 tetapi jika kunci yang tidak ada dalam array, 975 00:57:56,470 --> 00:58:00,900 maka akan kembali kosong, atau kita juga dapat menentukan default, 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 hal yang sama lagi, 978 00:58:13,150 --> 00:58:15,970 maka Anda lihat sekarang ia bekerja pertama kali sekitar, 979 00:58:15,970 --> 00:58:18,080 dan lagi, jika kita mengetikkan beberapa hal acak 980 00:58:18,080 --> 00:58:23,210 dan mencoba dan klik, maka itu tetap ada. 981 00:58:23,210 --> 00:58:31,640 >> Dan saya kira saya juga dapat menunjukkan cara untuk menambahkan template sangat cepat. 982 00:58:31,640 --> 00:58:36,140 Apa yang bisa kita lakukan pertama adalah kita dapat menambahkan tampilan baru yang disebut "template.php" 983 00:58:36,140 --> 00:58:38,890 dalam folder Views, 984 00:58:38,890 --> 00:58:44,730 dan apa yang akan saya lakukan adalah saya akan mencetak sesuatu yang disebut "konten," 985 00:58:44,730 --> 00:58:49,130 yang akan menjadi konten utama saya. 986 00:58:49,130 --> 00:58:51,380 Dan mungkin di bagian paling bawah saya akan menambahkan, katakanlah, 987 00:58:51,380 --> 00:58:53,340 hak cipta. 988 00:58:53,340 --> 00:58:56,150 [Pertanyaan mahasiswa terdengar] 989 00:58:56,150 --> 00:58:58,050 [Brandon Liu] Mungkin ini adalah template dasar super Saya ingin menggunakan. 990 00:58:58,050 --> 00:59:02,840 Saya ingin memiliki folder dengan hak cipta saya pada setiap halaman, 991 00:59:02,840 --> 00:59:05,560 dan sekarang apa yang akan saya lakukan dalam controller saya 992 00:59:05,560 --> 00:59:07,740 sekarang bukannya mengatakan, "meluas Pengawas" 993 00:59:07,740 --> 00:59:11,870 Aku akan mengatakan, "meluas Controller_Template," 994 00:59:11,870 --> 00:59:15,890 dan sekarang bukannya mengatakan, "respon tubuh sama dengan pandangan ini," 995 00:59:15,890 --> 00:59:24,110 Aku akan mengatakan, "isi template ini -" 996 00:59:24,110 --> 00:59:27,690 dan saya pikir - saya menempatkan tanda sama? 997 00:59:27,690 --> 00:59:32,710 Saya lupa. Ya, saya pikir begitu. 998 00:59:32,710 --> 00:59:37,710 Dan sekarang saya menetapkan bahwa variabel konten untuk sama tampilan. 999 00:59:37,710 --> 00:59:40,960 Aku bisa melakukan hal yang sama di sini. 1000 00:59:49,620 --> 00:59:57,170 Dan jika saya refresh, Anda dapat melihat sekarang hak cipta ini ditambahkan di sana, 1001 00:59:57,170 --> 01:00:00,350 dan hanya membuat beberapa posting acak, 1002 01:00:00,350 --> 01:00:06,760 dan kemudian, sekali lagi, Anda akan melihat bahwa hak cipta di bagian paling bawah halaman. 1003 01:00:06,760 --> 01:00:10,730 >> Besar. Itu saja yang saya ingin menunjukkan kalian. 1004 01:00:10,730 --> 01:00:14,970 [Tepuk tangan] 1005 01:00:14,970 --> 01:00:18,950 Ada pertanyaan? 1006 01:00:18,950 --> 01:00:21,000 [CS50.TV]