1 00:00:00,000 --> 00:00:02,150 >> [สัมมนา] [Kohana: น้ำหนักเบากรอบ PHP] 2 00:00:02,150 --> 00:00:04,000 [แบรนดอนหลิว] [ฮาร์วาร์มหาวิทยาลัย] 3 00:00:04,000 --> 00:00:07,270 [นี้เป็น CS50.] [CS50.TV] 4 00:00:07,270 --> 00:00:09,130 >> สวัสดีทุกคน ชื่อของฉันคือแบรนดอน 5 00:00:09,130 --> 00:00:11,000 ผมจูเนียร์ที่นี่ที่วิทยาลัยการทำวิทยาการคอมพิวเตอร์และวันนี้เรากำลังจะพูดคุยเกี่ยวกับ 6 00:00:11,000 --> 00:00:14,460 Kohana ซึ่งเป็นกรอบการพัฒนาเว็บ PHP 7 00:00:14,460 --> 00:00:17,260 วันนี้เป็นไปได้การสัมมนาการเข้ารหัสสด 8 00:00:17,260 --> 00:00:21,000 ดังนั้นฉันโดยทั่วไปจะใช้จ่ายประมาณ 5-10 นาทีอธิบายสิ่งที่ Kohana คือ 9 00:00:21,000 --> 00:00:25,000 และแล้วฉันอย่างแท้จริงจะสร้างบล็อกที่ง่ายสุด 10 00:00:25,000 --> 00:00:28,570 สำหรับคุณที่นี่อย่างแท้จริงตั้งแต่เริ่มต้น 11 00:00:28,570 --> 00:00:32,229 เรากำลังจะดาวน์โหลดโค้ดจากเว็บไซต์ Kohana, 12 00:00:32,229 --> 00:00:35,000 และเรากำลังจะเริ่มต้นสร้างบล็อกและหวังว่ามันจะให้คำแนะนำมาก 13 00:00:35,000 --> 00:00:37,000 เพราะคุณอาจจะเห็นบางทีฉันอาจจะทำผิดพลาดบางอย่าง 14 00:00:37,000 --> 00:00:39,000 และคุณจะเห็นฉันกู้คืนจากพวกเขา 15 00:00:39,000 --> 00:00:42,040 หรือคุณจะเห็นกระบวนการคิดของฉันเป็นฉันสร้างผ่านบล็อกนี้ 16 00:00:42,040 --> 00:00:44,000 และในขณะเดียวกันคุณยังจะได้รับคุ้นเคยกับกรอบตัวเอง 17 00:00:44,000 --> 00:00:48,000 หวังว่ามันจะให้คำแนะนำการออกกำลังกายมาก 18 00:00:48,000 --> 00:00:51,370 >> ก่อนว่าสิ่งที่เป็นกรอบหรือไม่ 19 00:00:51,370 --> 00:00:54,000 หากคุณได้รับการ CS50 จนถึงคุณยังไม่ได้ทำงานจริงๆกับใด ๆ 20 00:00:54,000 --> 00:00:56,000 กรอบยังและสิ่งที่เป็นนี้ 21 00:00:56,000 --> 00:01:00,000 คุณอาจจะได้ทำ 1 pset การพัฒนาเว็บอยู่แล้ว 22 00:01:00,000 --> 00:01:03,000 และสมมติว่าคุณยังคงสร้างเว็บไซต์และให้การสร้างเว็บไซต์ 23 00:01:03,000 --> 00:01:05,000 คุณจะเริ่มสังเกตเห็นบางสิ่งที่ 24 00:01:05,000 --> 00:01:07,000 สิ่งแรกที่คุณจะสังเกตเห็นว่าคุณอาจจะทำสิ่งเดียวกัน 25 00:01:07,000 --> 00:01:09,150 ซ้ำแล้วซ้ำอีกตลอดเวลา 26 00:01:09,150 --> 00:01:13,000 สิ่งที่ต้องการทำความสะอาดป้อนข้อมูลของผู้ใช้ 27 00:01:13,000 --> 00:01:17,250 สิ่งที่ต้องการจัดระเบียบไฟล์ของคุณในทางหนึ่ง 28 00:01:17,250 --> 00:01:19,000 สิ่งอื่น ๆ ที่คุณอาจจะยังสังเกตเห็นว่ารหัสของคุณ 29 00:01:19,000 --> 00:01:21,000 อาจจะเริ่มต้นที่จะเป็นมากยุ่งมาก 30 00:01:21,000 --> 00:01:24,000 และคุณอาจจะปล่อยให้มันยุ่งและก็มีช่วงเวลาที่ยากมากในการรักษานั้น 31 00:01:24,000 --> 00:01:26,000 หรือคุณอาจจะเริ่มต้นโครงสร้างรหัสของคุณและทำให้มันเป็นแบบแยกส่วน 32 00:01:26,000 --> 00:01:28,510 ในวิธีการบางอย่างเพื่อให้มันบำรุงรักษามากขึ้น 33 00:01:28,510 --> 00:01:31,020 >> นี่คือที่กรอบเว็บพื้นเข้ามา 34 00:01:31,020 --> 00:01:33,680 คนเหล่านี้ที่ได้สร้างจำนวนมากของเว็บไซต์ที่พวกเขากล่าวว่า 35 00:01:33,680 --> 00:01:35,820 "เราไม่จำเป็นต้องทำซ้ำนี้ทุกครั้งเดียวที่เราสร้างเว็บไซต์." 36 00:01:35,820 --> 00:01:39,050 "ทำไมเราไม่เพียงแค่ทำให้แพคเกจที่ทำสิ่งเหล่านี้สำหรับคุณ 37 00:01:39,050 --> 00:01:41,250 ทุกเวลาเดียวที่คุณต้องการที่จะสร้างเว็บไซต์ได้อย่างไร " 38 00:01:41,250 --> 00:01:43,030 และเพื่อที่ว่าเมื่อคุณทำเว็บไซต์ใหม่ 39 00:01:43,030 --> 00:01:45,880 คุณเพียงแค่มุ่งเน้นไปที่สิ่งที่ว่าเว็บไซต์นี้โดยเฉพาะอย่างยิ่งเป็นเรื่องเกี่ยวกับ 40 00:01:45,880 --> 00:01:48,630 คุณไม่จำเป็นต้องทำซ้ำทุกการกำหนดค่าต่างๆ 41 00:01:48,630 --> 00:01:53,070 และการแยกของรหัสและรหัสการเขียนใหม่ 42 00:01:53,070 --> 00:01:56,180 ที่คุณมักจะต้องทำเมื่อคุณกำลังทำเว็บไซต์ 43 00:01:56,180 --> 00:01:59,410 ความคิดก็คือกรอบช่วยให้คุณสามารถเขียนรหัสในระดับที่สูงขึ้น 44 00:01:59,410 --> 00:02:01,030 โดยไม่ต้องกังวลเกี่ยวกับรายละเอียดในระดับที่ต่ำกว่า 45 00:02:01,030 --> 00:02:03,670 รายละเอียดในระดับที่ต่ำกว่าอาจจะมีสิ่งที่ต้องการ 46 00:02:03,670 --> 00:02:07,250 จัดการกับการป้อนข้อมูลของผู้ใช้ในการทำความสะอาด 47 00:02:07,250 --> 00:02:09,320 นั่นคือสิ่งที่คุณไม่ควรจริงๆต้องกังวลเกี่ยวกับ 48 00:02:09,320 --> 00:02:12,370 คุณควรมุ่งเน้นไปที่สิ่งที่จัดสรรเว็บของคุณเป็นจริงเกี่ยวกับ 49 00:02:12,370 --> 00:02:14,790 มันลดมากรหัสสำเร็จรูป 50 00:02:14,790 --> 00:02:16,640 มันเป็นสถาปัตยกรรมสำหรับโครงการของคุณ 51 00:02:16,640 --> 00:02:18,680 >> นิยมมากที่สุดจะเป็น Model-View-Controller, 52 00:02:18,680 --> 00:02:20,380 ซึ่งฉันจะพูดคุยเกี่ยวกับในครั้งที่สอง 53 00:02:20,380 --> 00:02:22,790 และหลายครั้งกรอบเหล่านี้รวบรวมชุดของขั้นตอนที่ 54 00:02:22,790 --> 00:02:25,750 กฎระเบียบและการปฏิบัติที่ดีที่สุดสำหรับคุณที่จะใช้ 55 00:02:25,750 --> 00:02:28,190 เพื่อที่ว่าเมื่อคุณนำมาใช้กรอบเว็บ 56 00:02:28,190 --> 00:02:30,050 คุณต้องเขียนรหัสของคุณในวิธีการบางอย่าง 57 00:02:30,050 --> 00:02:32,430 และก็มักจะตกลงกันชุดของหลักการ 58 00:02:32,430 --> 00:02:34,290 โดยชุมชนที่ได้รับการยอมรับโดยทั่วไปจะเป็น 59 00:02:34,290 --> 00:02:36,230 วิธีที่ดีของการเขียนโค้ด 60 00:02:36,230 --> 00:02:38,260 มันทำให้รหัสของคุณบำรุงรักษามากขึ้นใช้งานได้มากขึ้น 61 00:02:38,260 --> 00:02:40,030 อื่น ๆ และอื่น ๆ 62 00:02:40,030 --> 00:02:42,740 และในที่สุดสิ่งที่ผมอยากจะเน้นเกี่ยวกับกรอบ 63 00:02:42,740 --> 00:02:45,980 เมื่อเทียบกับห้องสมุดเป็นความคิดเกี่ยวกับการรักร่วมเพศของการควบคุมนี้และสิ่งที่เป็นนี้ 64 00:02:45,980 --> 00:02:48,430 ความแตกต่างระหว่างห้องสมุดและกรอบเป็นที่ที่มีห้องสมุด 65 00:02:48,430 --> 00:02:51,990 คุณยังคงเขียนโปรแกรมหลัก 66 00:02:51,990 --> 00:02:54,460 และคุณกำลังจัดเรียงของการเรียกห้องสมุด 67 00:02:54,460 --> 00:02:56,810 และเรียกร้องให้ห้องสมุดที่จะทำบางสิ่งบางอย่างสำหรับคุณ 68 00:02:56,810 --> 00:02:58,180 ความแตกต่างระหว่างห้องสมุดและกรอบ 69 00:02:58,180 --> 00:03:01,620 คือกรอบเริ่มออกไปกับการควบคุม 70 00:03:01,620 --> 00:03:03,260 และมันจะเรียกรหัสของคุณ 71 00:03:03,260 --> 00:03:06,190 เพื่อให้คุณสามารถคิดว่ามันเป็น - นี่คือเหตุผลว่าทำไมจึงเรียกว่ากรอบ - 72 00:03:06,190 --> 00:03:09,700 กรอบให้กรอบนี้และโครงสร้างรหัสของคุณ 73 00:03:09,700 --> 00:03:11,320 และคุณกรอกข้อมูลลงในหลุมที่ 74 00:03:11,320 --> 00:03:13,990 และเรื่องนี้จะกลายเป็นชัดเจนมากขึ้นในการที่สอง 75 00:03:13,990 --> 00:03:16,670 เมื่อคุณเห็นฉันเริ่มต้นในการเขียนโค้ดในบริบทของกรอบ 76 00:03:16,670 --> 00:03:19,130 คุณจะเห็นว่าฉันกรอกในช่องว่างที่ 77 00:03:19,130 --> 00:03:22,450 และกรอบเป็นชนิดของการควบคุมทุกชิ้นย้าย 78 00:03:22,450 --> 00:03:27,420 และฉันต้องวางชิ้นในสถานที่ที่เหมาะสม 79 00:03:27,420 --> 00:03:29,360 >> วันนี้เรากำลังจะพูดคุยเกี่ยวกับ Kohana, 80 00:03:29,360 --> 00:03:31,610 ซึ่งเป็นหนึ่งในหลายกรอบ PHP 81 00:03:31,610 --> 00:03:34,550 มีกรอบเว็บและมีคนที่มีในเกือบทุกภาษาเดียว 82 00:03:34,550 --> 00:03:38,330 และฉันเลือกเพราะ Kohana Kohana เป็น arguably 83 00:03:38,330 --> 00:03:43,250 และเป็นที่ยอมรับโดยทั่วไปว่าเป็นวิธีที่ง่ายที่สุดกรอบ PHP ที่จะรับ 84 00:03:43,250 --> 00:03:45,940 มันมีน้ำหนักเบาที่สุด 85 00:03:45,940 --> 00:03:48,470 มีคนอื่น ๆ ออกมีที่มาพร้อมกับหลายคุณสมบัติอื่น ๆ อีกจำนวนมาก 86 00:03:48,470 --> 00:03:51,590 แต่พวกเขามีแนวโน้มที่จะเป็นเรื่องยากมากขึ้นในการรับ 87 00:03:51,590 --> 00:03:54,920 และสุดท้าย Kohana ใช้สถาปัตยกรรม 88 00:03:54,920 --> 00:03:57,780 มันเบาพอที่เราอย่างแท้จริงสามารถสร้างโครงการ 89 00:03:57,780 --> 00:03:59,620 ที่นี่อยู่ตรงหน้าของดวงตาของคุณและคุณสามารถสวยมาก 90 00:03:59,620 --> 00:04:02,780 ทำตามพร้อมสวยได้อย่างง่ายดาย 91 00:04:02,780 --> 00:04:04,420 >> สถาปัตยกรรมคืออะไร 92 00:04:04,420 --> 00:04:06,540 มันหมายถึง Model-View-Controller, 93 00:04:06,540 --> 00:04:09,560 และบางทีถ้าคุณคิดเกี่ยวกับรหัสที่คุณได้รับการเขียนเพื่อให้ห่างไกล 94 00:04:09,560 --> 00:04:11,280 สำหรับบางส่วนของ psets พัฒนาเว็บของคุณ 95 00:04:11,280 --> 00:04:14,710 คุณอาจจะสามารถที่จะเห็นบางส่วนของนี้ แต่โดยปกติเมื่อคุณเริ่มต้นการเขียน 96 00:04:14,710 --> 00:04:16,500 โปรแกรมเว็บที่ซับซ้อนมากขึ้น 97 00:04:16,500 --> 00:04:21,209 แบ่งระหว่างทั้ง 3 ส่วนจะมากขึ้นและชัดเจนมากขึ้น 98 00:04:21,209 --> 00:04:26,740 ฉันวาง MVC การจัดเรียงของที่นี่เป็นกองที่ 99 00:04:26,740 --> 00:04:29,920 และบ่อยครั้งที่คุณจะได้ยินคนพูดคุยเกี่ยวกับกองในการพัฒนาเว็บ 100 00:04:29,920 --> 00:04:33,760 และนี้คือการแสดงให้เห็นถึงความคิดที่ว่า 101 00:04:33,760 --> 00:04:37,510 แต่ละชั้นแต่ละองค์ประกอบจริงๆพยายามที่จะติดต่อสื่อสารเท่านั้น 102 00:04:37,510 --> 00:04:40,750 ระหว่าง 2 ส่วนประกอบอื่น ๆ 103 00:04:40,750 --> 00:04:44,550 คนที่เข้าถึงเว็บไซต์ของคุณเป็นลูกค้าหรือเบราว์เซอร์ 104 00:04:44,550 --> 00:04:48,870 พวกเขามีปฏิสัมพันธ์กับโปรแกรมของคุณรหัสผ่านมุมมอง 105 00:04:48,870 --> 00:04:50,500 รหัสดูการโต้ตอบกับตัวควบคุม 106 00:04:50,500 --> 00:04:52,400 ควบคุมการโต้ตอบกับรูปแบบที่ 107 00:04:52,400 --> 00:04:55,090 และรูปแบบการโต้ตอบกับฐานข้อมูล 108 00:04:55,090 --> 00:04:59,670 และมีการกระโดดในระหว่างที่ไม่มีถ้าคุณเขียนรหัสของคุณอย่างถูกต้อง 109 00:04:59,670 --> 00:05:01,670 >> สิ่งใดที่สิ่งเหล่านี้จะทำอย่างไร 110 00:05:01,670 --> 00:05:06,020 รูปแบบที่เป็นหลักเป็นชิ้นส่วนของรหัสที่เกี่ยวข้องกับข้อมูลของคุณ 111 00:05:06,020 --> 00:05:09,100 อะไรที่เกี่ยวข้องกับฐานข้อมูลของคุณกับวัตถุที่คุณเก็บ 112 00:05:09,100 --> 00:05:11,280 หรือเรียกวัตถ​​ุเหล่านั้นในฐานข้อมูล 113 00:05:11,280 --> 00:05:13,450 ที่จัดการโดยรูปแบบ 114 00:05:13,450 --> 00:05:15,290 บางทีคุณอาจมีวัตถุในฐานข้อมูลของคุณ 115 00:05:15,290 --> 00:05:17,700 เรากำลังจะสร้างรูปแบบที่มีจะทำอย่างไรกับการโพสต์, 116 00:05:17,700 --> 00:05:19,760 เพื่อโพสต์อาจจะมีคุณลักษณะบางอย่างกับมัน 117 00:05:19,760 --> 00:05:23,900 คุณอาจจะมีฟังก์ชั่นการจัดเก็บรอบการโพสต์เหล่านั้นหรือเรียกการโพสต์ 118 00:05:23,900 --> 00:05:26,270 หรือการกรองการโพสต์และอื่น ๆ และอื่น ๆ 119 00:05:26,270 --> 00:05:28,880 และนั่นคือทั้งหมดรหัสที่จัดการโดยรูปแบบ 120 00:05:28,880 --> 00:05:31,780 ควบคุมการจัดเรียงของตรรกะโปรแกรม 121 00:05:31,780 --> 00:05:37,910 และหลายสิ่งหลายอย่างที่แตกต่างกันสามารถไปในตรรกะโปรแกรม 122 00:05:37,910 --> 00:05:39,790 หากคุณกำลังพูดคุยกับ API ที่แตกต่างกัน 123 00:05:39,790 --> 00:05:42,310 ที่อาจจะมีที่คุณจัดการกับตรรกะโปรแกรม 124 00:05:42,310 --> 00:05:47,990 ถ้าคุณกำลังพยายามที่จะต้องนำข้อมูลจากแบบจำลองที่แตกต่างกันหลาย 125 00:05:47,990 --> 00:05:51,540 และมีการรวมพวกเขาในทางใดทางหนึ่งที่มักจะได้รับการจัดการโดยคอนโทรลเลอร์ 126 00:05:51,540 --> 00:05:53,820 ตัวอย่างเช่นใน Facebook, ถ้าคุณเพื่อนใครสักคน 127 00:05:53,820 --> 00:05:58,500 แล้วบางทีการกระทำของการสร้างความสัมพันธ์ที่ว่า 128 00:05:58,500 --> 00:06:00,490 อาจทำได้โดยการควบคุม 129 00:06:00,490 --> 00:06:04,350 >> และสุดท้ายมุมมองที่เป็นรหัสที่สร้างสิ่งที่คุณเห็นจริง 130 00:06:04,350 --> 00:06:07,410 หลายครั้งที่ฉันคิดว่าใน psets CS50 131 00:06:07,410 --> 00:06:10,050 พวกเขาไม่ได้จริงๆขอแนะนำให้คุณผู้ชายที่จะแยกสิ่งเหล่านี้ 3 132 00:06:10,050 --> 00:06:12,430 คุณอาจจะมีขนาดใหญ่แฟ้มยาวนี้ที่ด้านบน 133 00:06:12,430 --> 00:06:15,130 คุณทำให้บางแบบสอบถามและอาจจะดำเนินการบางอย่าง 134 00:06:15,130 --> 00:06:17,020 กับข้อมูลที่คุณเรียกข้อมูลจากฐานข้อมูล 135 00:06:17,020 --> 00:06:19,370 แล้วคุณมี HTML ของคุณที่ด้านล่าง 136 00:06:19,370 --> 00:06:22,840 และคุณอาจพบว่าในขณะที่คุณสร้างหน้ามากขึ้นและมากขึ้น 137 00:06:22,840 --> 00:06:25,790 ที่คุณกำลังจะต้องทำซ้ำรหัสบางส่วนและยัง 138 00:06:25,790 --> 00:06:29,600 สิ่งที่เป็นไฟล์ของคุณได้รับจริงๆขนาดใหญ่และยาว 139 00:06:29,600 --> 00:06:32,370 และจะกลายเป็นเทอะทะในการจัดการ 140 00:06:32,370 --> 00:06:34,500 เหตุผลว่าทำไม MVC จึงได้รับการยกย่องเป็นอย่างดี 141 00:06:34,500 --> 00:06:36,120 สำหรับจำนวนเหตุผล 142 00:06:36,120 --> 00:06:38,110 สิ่งแรกคือสิ่งที่เรียกว่าการแยกของความกังวล 143 00:06:38,110 --> 00:06:40,370 ซึ่งเป็นความคิดที่ว่าเมื่อคุณมี - 144 00:06:40,370 --> 00:06:43,520 นึกคิด 1 ชิ้นส่วนของรหัสควรจะทำสิ่งที่ 1 และทำมันได้ดีจริงๆ 145 00:06:43,520 --> 00:06:47,210 และคุณไม่ควรรวมชิ้นส่วนของรหัสที่ทำสิ่งที่แตกต่างกัน 146 00:06:47,210 --> 00:06:49,230 ตัวอย่างเช่นดูรหัสและรหัสรุ่น 147 00:06:49,230 --> 00:06:51,040 พวกเขาไม่ได้จริงๆจะต้องเกี่ยวข้อง 148 00:06:51,040 --> 00:06:53,290 พวกเขาไม่ได้ที่จะอยู่ในไฟล์เดียวกันดังนั้นเมื่อคุณสามารถแยกพวกเขาออก 149 00:06:53,290 --> 00:06:55,300 ดังนั้นจึงเป็นเรื่องง่ายต่อการรักษา 150 00:06:55,300 --> 00:06:57,130 >> สิ่งอื่น ๆ นำมาใช้รหัส 151 00:06:57,130 --> 00:06:59,770 คุณอาจพบว่าตัวเองเขียนแบบสอบถามเดียวกันหรือทำ 152 00:06:59,770 --> 00:07:03,060 คำสั่งที่คล้ายกันที่อาจจะแยกเป็น 1 ฟังก์ชั่น 153 00:07:03,060 --> 00:07:05,440 และนั่นคือความคิดที่อยู่เบื้องหลังรูปแบบและควบคุม 154 00:07:05,440 --> 00:07:09,690 มีในฟังก์ชั่นที่แยกต่างหากที่คุณสามารถนำมาใช้ในสถานที่ที่แตกต่างกันในโครงการของคุณ 155 00:07:09,690 --> 00:07:12,420 และสุดท้ายที่ผูกติดอยู่กับการอบแห้งรหัสของคุณ 156 00:07:12,420 --> 00:07:14,700 หรือไม่ทำซ้ำตัวเองไม่ซ้ำตัวเอง 157 00:07:14,700 --> 00:07:18,090 นี่คือการเข้าใจในการพัฒนา 158 00:07:18,090 --> 00:07:20,110 เมื่อใดก็ตามที่คุณสามารถที่คุณไม่ต้องการที่จะทำซ้ำตัวเองเพราะถ้าคุณทำซ้ำตัวเอง 159 00:07:20,760 --> 00:07:23,400  มันมากขึ้นค่าใช้จ่ายในการรักษา 160 00:07:23,400 --> 00:07:26,040 ถ้าคุณต้องการที่จะเปลี่ยน 1 สิ่งที่คุณจะต้องเปลี่ยนทุก 161 00:07:26,040 --> 00:07:30,230 และที่นำไปสู่​​ข้อผิดพลาดและเป็นที่น่ากลัว 162 00:07:30,230 --> 00:07:32,010 >> ขวาทั้งหมด 163 00:07:32,010 --> 00:07:37,270 คำถามใด ๆ เพื่อให้ห่างไกลเกี่ยวกับ Kohana ที่ทั้งหมดหรือไม่ 164 00:07:37,270 --> 00:07:39,200 ยิ่งใหญ่ 165 00:07:39,200 --> 00:07:42,300 ตอนนี้เรากำลังจะไปดำน้ำในเซสชั่นการเข้ารหัสสด 166 00:07:42,300 --> 00:07:48,050 และหวังว่าทุกอย่างเป็นไปด้วยดี 167 00:07:57,200 --> 00:08:00,050 ฉันจะสร้างเว็บไซต์โดยทั่วไปนี้ 168 00:08:00,050 --> 00:08:03,910 บนเซิร์ฟเวอร์ระยะไกลของฉันและวิธีการที่พวกคุณยังสามารถที่ 169 00:08:03,910 --> 00:08:06,310 โปรดดูที่เว็บไซต์และการเข้าถึงเว็บไซต์ที่ 170 00:08:06,310 --> 00:08:10,990 และสภาพแวดล้อมที่ดีกว่าที่กำหนดค่ากว่าเครื่องระยะไกลของฉัน 171 00:08:10,990 --> 00:08:14,580 เพราะใช้ Linux แทน OS X. 172 00:08:14,580 --> 00:08:16,260 แท้จริงเรากำลังจะเริ่มต้น 173 00:08:16,260 --> 00:08:18,110 KohanaFramework.org 174 00:08:18,110 --> 00:08:21,350 ฉันจะดาวน์โหลดโค้ดจากเว็บไซต์ 175 00:08:21,350 --> 00:08:24,610 ฉันจะคัดลอกที่อยู่ลิงค์ 176 00:08:24,610 --> 00:08:29,770 ไปที่เซิร์ฟเวอร์ของฉันดาวน์โหลดได้ 177 00:08:29,770 --> 00:08:33,000 และฉันจะดึงมัน 178 00:08:38,330 --> 00:08:45,710 >> [นักศึกษา] สิ่งที่เป็นที่ใหญ่ที่สุดที่คุณสามารถทำให้ข้อความหรือไม่ 179 00:08:45,710 --> 00:08:47,330 [แบรนดอนหลิว] คือการที่ดีขึ้นหรือไม่ 180 00:08:47,330 --> 00:08:50,070 [นักศึกษา] ที่เป็น doable? >> [แบรนดอนหลิว] ใช่ว่าดี 181 00:08:50,070 --> 00:08:54,500 ผมดาวน์โหลดไฟล์ ZIP และซิปที่เป็นไดเรกทอรีที่เรียกว่า Kohana, 182 00:08:54,500 --> 00:08:58,820 และเรากำลังจะเปลี่ยนชื่อที่ CS50-Kohana, 183 00:08:58,820 --> 00:09:01,140 และขอไปค่ะ 184 00:09:01,140 --> 00:09:03,610 น่ากลัว 185 00:09:03,610 --> 00:09:06,870 ที่นี่คุณจะเห็นพวงของไฟล์ที่แตกต่างกัน 186 00:09:06,870 --> 00:09:10,140 ส่วนใหญ่ของคุณสามารถละเลย - we're ไม่ไปผ่านทุกไฟล์เดียวที่อยู่ในที่นี่ 187 00:09:10,140 --> 00:09:13,130 เนื่องจากข้อ จำกัด เวลาของเรา 188 00:09:13,130 --> 00:09:16,310 แต่โดยทั่วไปเมื่อคุณติดตั้ง Kohana, สิ่งแรกที่คุณทำ 189 00:09:16,310 --> 00:09:23,210 คือคุณไปที่ไดเรกทอรี 190 00:09:23,210 --> 00:09:26,050 และคุณโดยทั่วไปจะทำแบบทดสอบสภาพแวดล้อมบางอย่างและ whatnot 191 00:09:26,050 --> 00:09:28,640 เพื่อให้แน่ใจว่าสภาพแวดล้อมของคุณมีการตั้งค่าอย่างถูกต้องในการทำงาน Kohana 192 00:09:28,640 --> 00:09:31,450 และทำให้แน่ใจว่าทุกอย่างถูกต้อง 193 00:09:31,450 --> 00:09:35,510 คุณสามารถมองเห็นสิ่งที่ส่วนใหญ่ผ่านไป แต่โดยทั่วไปมักจะใช้เป็นที่ 1 ปัญหานี้ 194 00:09:35,510 --> 00:09:38,180 ที่บ่นว่าไดเรกทอรีบางอย่างไม่ได้เขียน 195 00:09:38,180 --> 00:09:40,410 และว่าเป็นเพราะของสิทธิ์บางอย่าง 196 00:09:40,410 --> 00:09:43,080 ผมไม่ทราบว่าเท่าไหร่ที่พวกคุณได้เรียนรู้เกี่ยวกับสิทธิ์ของแฟ้มใน CS50, 197 00:09:43,080 --> 00:09:47,920 แต่ถ้าคุณทำพัฒนาเว็บที่คุณจะทำงานในเรื่องนี้มาก 198 00:09:47,920 --> 00:09:58,340 ฉันจะทำให้มันสามารถเขียนได้ 199 00:09:58,340 --> 00:10:03,390 และผมคิดว่าผมยังมี - มีที่เราไป 200 00:10:03,390 --> 00:10:07,040 >> Okay ดังนั้นตอนนี้คุณสามารถเห็นทุกอย่างผ่านไป 201 00:10:07,040 --> 00:10:10,000 และตอนนี้ก็จะบอกคุณที่จะเปลี่ยนชื่อไฟล์ install.php 202 00:10:10,000 --> 00:10:15,630 ฉันจะย้ายไฟล์ install.php เพื่อ installed.php, 203 00:10:15,630 --> 00:10:19,610 และตอนนี้ถ้าผมรีเฟรช 204 00:10:19,610 --> 00:10:22,810 มันทำให้ฉันมีข้อผิดพลาดบางอย่างและนี่คือที่การแก้จุดบกพร่องมา 205 00:10:22,810 --> 00:10:25,610 ซึ่งเป็นที่ที่คุณสามารถมองเห็นสิ่งที่เป็นจริงที่จะเกิดขึ้น 206 00:10:25,610 --> 00:10:28,460 สิ่งที่เป็นตามค่าเริ่มต้น Kohana สันนิษฐานว่า 207 00:10:28,460 --> 00:10:31,480 โครงการของคุณที่ไดเรกทอรีรากของโดเมนของคุณ 208 00:10:31,480 --> 00:10:35,920 ดังนั้นจึงคาดหวังว่าคุณจะเป็นที่ demo.brandonkliu.com 209 00:10:35,920 --> 00:10:37,540 เราต้องบอกว่ามันเป็นจริงในโฟลเดอร์ย่อย 210 00:10:37,540 --> 00:10:39,820 มันอยู่ในโฟลเดอร์ย่อยที่เรียกว่า CS50 Kohana 211 00:10:39,820 --> 00:10:42,640 สิ่งที่เป็นก็ตีความ CS50-Kohana 212 00:10:42,640 --> 00:10:45,680 เป็นอย่างอื่นที่ฉันจะอธิบายให้คุณในที่สอง 213 00:10:45,680 --> 00:10:49,910 แต่ผมจะบอกคุณว่าเป็นสิ่งที่เป็นที่คาดหวัง 214 00:10:49,910 --> 00:10:53,700 สิ่งที่เรากำลังจะทำคือการที่เรากำลังจะไปลงในโฟลเดอร์ที่เรียกว่า bootstrap.php นี้ 215 00:10:53,700 --> 00:10:59,260 ซึ่งเป็นโฟลเดอร์การกำหนดค่าที่มากของสิ่งที่แตกต่างกันมีการตั้งค่า 216 00:10:59,260 --> 00:11:01,570 ฉันเปิดขึ้นมา 217 00:11:01,570 --> 00:11:09,790 จากนั้นก็อาจจะเป็นหนึ่งในสิ่งแรกที่ผมจะทำคือการเปลี่ยนโซนเวลา 218 00:11:09,790 --> 00:11:13,910 >> แล้วเรามาดู 219 00:11:13,910 --> 00:11:15,180 อ้าว! ขวาที่นี่ 220 00:11:15,180 --> 00:11:18,690 มีพวงของคำพูดการกำหนดค่าที่แตกต่างกันในที่นี่ 221 00:11:18,690 --> 00:11:21,700 แต่ฉันกำลังมองหาสิ่งที่เรียกว่า URL ที่ฐานนี้ 222 00:11:21,700 --> 00:11:24,570 โดยค่าเริ่มต้นและฉันได้รับมันตั้งค่าให้ Kohana, 223 00:11:24,570 --> 00:11:29,020 แต่ฉันจะเปลี่ยนที่ไป CS50-Kohana, 224 00:11:29,020 --> 00:11:32,880 และผมคิดว่าควรจะแก้ไขมัน 225 00:11:32,880 --> 00:11:34,150 ใช่ที่ดี 226 00:11:34,150 --> 00:11:39,530 โดยค่าเริ่มต้นที่จะเห็นว่ามันทำงานก็บอกว่า "Hello World." 227 00:11:39,530 --> 00:11:42,930 ที่ไม่ว่ามาจากไหน เราไม่ได้รับการ Hello World? 228 00:11:42,930 --> 00:11:47,640 ที่ว่าเป็นรหัสที่จริงเขียนว่า? 229 00:11:47,640 --> 00:11:50,240 เพื่อให้เข้าใจว่าผมจะแนะนำแนวคิดที่เรียกว่าเส้นทางนี้ 230 00:11:50,240 --> 00:11:52,590 สวยมากทุกกรอบเว็บมีแนวคิดที่เรียกว่าเส้นทาง 231 00:11:52,590 --> 00:11:57,230 ซึ่งเป็นชิ้นส่วนของซอฟต์แวร์ที่จะแมป URL ที่บาง 232 00:11:57,230 --> 00:12:01,550 ไปชิ้นหนึ่งของรหัสภายในกรอบการทำงานของคุณ 233 00:12:01,550 --> 00:12:07,510 ตัวอย่างเช่นถ้าคุณมี URL ที่บางและคุณจะไปยัง URL บางอย่างเช่น foo.com / บล็อก / ทั้งหมด 234 00:12:07,510 --> 00:12:11,170 แล้วสิ่งที่กรอบจะทำ - หรืออย่างน้อยสิ่งที่ Kohana จะไปทำ - 235 00:12:11,170 --> 00:12:15,540 มันจะหาชั้นเรียนที่เรียกว่าบล็อกของตัวควบคุม 236 00:12:15,540 --> 00:12:18,720 และก็จะต้องเรียกใช้ฟังก์ชั่นการตั้งชื่อการกระทำทั้งหมด 237 00:12:18,720 --> 00:12:20,160 ฉันรู้ว่าฉันพูดคุยเกี่ยวกับการเรียนและการทำงาน 238 00:12:20,160 --> 00:12:23,860 และฉันรู้ว่าพวกคุณยังไม่ได้ครอบคลุมการเรียนและการทำงาน 239 00:12:23,860 --> 00:12:26,470 ใน CS50 แต่สำหรับตอนนี้ 240 00:12:26,470 --> 00:12:29,800 คุณสามารถคิดของชั้นเรียนเช่นเดียวกับกลุ่มของฟังก์ชั่นที่ 241 00:12:29,800 --> 00:12:32,900 วิธีการจัดกลุ่มการทำงานร่วมกัน 242 00:12:32,900 --> 00:12:37,690 นั่นคือทั้งหมดที่คุณจำเป็นต้องรู้ 243 00:12:37,690 --> 00:12:43,120 >> ตอนนี้ถ้าเรามองไปที่โครงสร้างโฟลเดอร์ของเรา 244 00:12:43,120 --> 00:12:47,110 ในโฟลเดอร์โปรแกรมมีโฟลเดอร์อื่นที่เรียกว่าชั้นเรียน 245 00:12:47,110 --> 00:12:49,200 และโฟลเดอร์อื่น ๆ จะเรียกว่าควบคุมและรุ่น 246 00:12:49,200 --> 00:12:52,530 ถ้าคุณดูในโฟลเดอร์ควบคุมที่ 247 00:12:52,530 --> 00:12:56,330 เราจะเห็นว่ามีไฟล์ที่เรียกว่ายินดีต้อนรับ, 248 00:12:56,330 --> 00:13:00,370 และคุณสามารถเห็นที่นี่เป็นชั้นที่เรียกว่าควบคุมยินดีต้อนรับ, 249 00:13:00,370 --> 00:13:02,340 และมีฟังก์ชั่นที่เรียกว่าการดำเนินการของดัชนีที่ 250 00:13:02,340 --> 00:13:06,360 และสิ่งที่มันไม่เป็นมันชุดร่างกายของการตอบสนองของคุณเพื่อ Hello World 251 00:13:06,360 --> 00:13:08,730 นั่นคือสิ่งที่รหัสจะถูกเขียน 252 00:13:08,730 --> 00:13:11,610 คำถามอื่น ๆ ผมไม่ได้ไป 253 00:13:11,610 --> 00:13:13,680 blah, blah, blah, / ต้อนรับ / ดัชนี 254 00:13:13,680 --> 00:13:16,250 ฉันไม่สิ้นสุดนี่ได้อย่างไร 255 00:13:16,250 --> 00:13:20,410 ดีที่เป็นเพียงเพราะ 256 00:13:20,410 --> 00:13:22,410 ที่นี่ที่ด้านล่างของไฟล์บูตของเรา 257 00:13:22,410 --> 00:13:24,550 ที่เรากำหนดเส้นทางของเรา 258 00:13:24,550 --> 00:13:26,570 คุณจะเห็นว่าพวกเขาตั้งค่าเริ่มต้นบางอย่างสำหรับคุณ 259 00:13:26,570 --> 00:13:28,990 ควบคุมค่าเริ่มต้นคือยินดีต้อนรับคุณ การดำเนินการเริ่มต้นคือดัชนี 260 00:13:28,990 --> 00:13:31,600 นั่นเป็นเหตุผลที่เมื่อเราใส่อะไรอยู่ในนั้นมันจะไปควบคุมยินดีต้อนรับคุณ 261 00:13:31,600 --> 00:13:33,940 และการดำเนินการที่ดัชนี 262 00:13:33,940 --> 00:13:37,460 >> ทุกสิ่งที่ทำให้รู้สึกเพื่อให้ห่างไกล 263 00:13:37,460 --> 00:13:40,850 ตอนนี้คุณสามารถทำได้มากกว่าเพียงแค่ไปที่การควบคุม 264 00:13:40,850 --> 00:13:43,670 และการกระทำที่เฉพาะเจาะจง 265 00:13:43,670 --> 00:13:48,480 นอกจากนี้คุณยังสามารถส่งผ่านพารามิเตอร์ไปยังตัวควบคุม 266 00:13:48,480 --> 00:13:56,390 เพียงแค่เป็นตัวอย่าง 267 00:13:56,390 --> 00:14:04,070 ฉันจะเพิ่มการดำเนินการอื่นที่จะควบคุมนี้เพื่อแสดงให้คุณเห็น 268 00:14:04,070 --> 00:14:09,130 ขอเรียกการกระทำนี้สะท้อนเพราะมันจะบอกคุณในสิ่งที่คุณให้มัน 269 00:14:09,130 --> 00:14:17,510 และดังนั้นฉันโดยทั่วไปจะคว้า 270 00:14:17,510 --> 00:14:20,960 พารามิเตอร์ที่จะถูกส่งผ่านฉันไปยังโปรแกรมเส้นทาง 271 00:14:20,960 --> 00:14:24,440 และเป็นคุณสามารถดูที่นี่ 272 00:14:24,440 --> 00:14:28,440 บรรทัดนี้ที่นี่คุณจะเห็นว่า 273 00:14:28,440 --> 00:14:31,270 นี้โดยทั่วไปหมายความว่าคุณมีตัวควบคุมและคุณมี /, 274 00:14:31,270 --> 00:14:33,480 และคุณมีการดำเนินการและคุณมี / อื่น 275 00:14:33,480 --> 00:14:39,140 และที่จะเป็นพารามิเตอร์และเพราะเรามีชื่อ ID นี้ 276 00:14:39,140 --> 00:14:42,450 ภายในวงเล็บมุมซึ่งหมายความว่าเรากำลังตั้งชื่อ ID พารามิเตอร์นี้ 277 00:14:42,450 --> 00:14:45,490 ต่อมาในรหัสควบคุมของฉันหากฉันต้องการที่จะคว้าถือของพารามิเตอร์นั้น 278 00:14:45,490 --> 00:14:51,790 ฉันสามารถใช้รหัสที่ผมเขียนหาพารามิเตอร์ชื่อ ID 279 00:14:51,790 --> 00:14:59,290 นั่นคือสิ่งที่ผมทำที่นี่และฉันจะกลับมาและพูดว่า 280 00:14:59,290 --> 00:15:07,090 "คุณบอกว่า" ที่ 281 00:15:07,090 --> 00:15:10,760 และอื่น ๆ ตอนนี้ถ้าผมไปที่เว็บไซต์ของเรา 282 00:15:10,760 --> 00:15:19,550 ผมไป cs50-kohana/welcome/echo/Helloooo-- 283 00:15:19,550 --> 00:15:21,420 โอ้ที่เหมาะสม 284 00:15:21,420 --> 00:15:23,930 มีขั้นตอนที่ 1 ฉันซ้ายออกเป็น 285 00:15:23,930 --> 00:15:27,020 นี้เป็นส่วนหนึ่งของความคิดที่สดการเข้ารหัส 286 00:15:27,020 --> 00:15:36,100 >> นี่คือ 1 สิ่งที่ ลองมาดูกัน 287 00:15:36,100 --> 00:15:38,870 ดังนั้นตามปกติโดยเริ่มต้นที่มีจำนวนมากของการใช้งานเว็บเหล่านี้ 288 00:15:38,870 --> 00:15:42,820 คุณต้องมีสิ่ง index.php นี้อยู่ใน URL ของคุณ 289 00:15:42,820 --> 00:15:46,410 เพราะความคิดเป็น index.php เป็นประเภทของจุดเริ่มต้น 290 00:15:46,410 --> 00:15:48,250 ของโปรแกรมของคุณ แต่แน่นอน 291 00:15:48,250 --> 00:15:50,110 นั่นคือการจัดเรียงของที่น่ารำคาญที่จะมี 292 00:15:50,110 --> 00:15:53,790 คุณไม่ต้องการที่จะมี index.php ปรากฏใน URL ของคุณ 293 00:15:53,790 --> 00:15:56,080 และสวยมากทุกกรอบเว็บออกมาจากกล่อง 294 00:15:56,080 --> 00:15:58,440 มีปัญหา index.php นี้ 295 00:15:58,440 --> 00:16:03,370 และเพื่อให้คุณมีที่จะใช้มาตรการบางอย่างเพื่อจะเอาที่ 296 00:16:03,370 --> 00:16:07,540 และอื่น ๆ ในกรณีนี้ 297 00:16:07,540 --> 00:16:11,450 สิ่งที่เรากำลังจะทำคือเรากำลังจะใช้ไฟล์ที่เรียกว่า. htaccess, 298 00:16:11,450 --> 00:16:13,900 และนี่คือสิ่งที่เฉพาะเจาะจงไปยังเว็บเซิร์ฟเวอร์อาปาเช่ 299 00:16:13,900 --> 00:16:16,290 และสามารถทำสิ่งที่ต้องการเขียน URL ที่ 300 00:16:16,290 --> 00:16:19,350 และการเปลี่ยนเส้นทาง URL และอื่น ๆ และอื่น ๆ 301 00:16:19,350 --> 00:16:24,280 Kohana และเป็นสิ่งที่ดีพอที่จะให้ไฟล์มีแม่แบบ. ที่เราสามารถใช้ 302 00:16:24,280 --> 00:16:28,300 >> ในขณะที่คุณสามารถดูมีเป็นไฟล์ที่มีเรียกว่า example.htaccess, 303 00:16:28,300 --> 00:16:33,410 และเรากำลังจะคัดลอกที่. htaccess 304 00:16:33,410 --> 00:16:36,950 ฉันจะเปิดนี้และแก้ไข 305 00:16:36,950 --> 00:16:40,840 และพื้นมันไม่พวงของสิ่งที่แตกต่างกัน 306 00:16:40,840 --> 00:16:45,320 สายสำคัญที่คุณอาจต้องการที่จะดูที่เป็นที่นี่ 307 00:16:45,320 --> 00:16:49,840 ความคิดที่ว่านี้ตั้งค่ากฎที่ระบุว่าเป็น 308 00:16:49,840 --> 00:16:56,400 "เอาล่ะสิ่งที่คุณพิมพ์ใน index.php ย่อหน้าที่." 309 00:16:56,400 --> 00:16:58,710 คุณจะเห็นว่า 310 00:16:58,710 --> 00:17:00,370 *. ย่อมาจากอะไรตรงกับอะไร 311 00:17:00,370 --> 00:17:03,300 แล้วส่วนที่สองคือ index.php / $ 0, 312 00:17:03,300 --> 00:17:07,410 และ $ 0 หมายถึงสิ่งที่ได้รับการจับคู่ก่อนหน้านี้ 313 00:17:07,410 --> 00:17:09,500 ไม่ที่ทำให้รู้สึก? 314 00:17:09,500 --> 00:17:12,190 แต่สิ่งที่สำคัญจริงๆผมอยากจะเปลี่ยนคือการเปลี่ยนฐานเขียนนี้ 315 00:17:12,190 --> 00:17:14,300 ซึ่งเป็นฐาน URL 316 00:17:14,300 --> 00:17:17,780 มันเรียงลำดับของสมมติว่าคุณกำลังทำงานจาก 317 00:17:17,780 --> 00:17:22,560 ฉันจะเพิ่ม CS50 Kohana นั้น 318 00:17:22,560 --> 00:17:26,530 และวิธีการที่ตอนนี้ถ้าผมเอา index.php, 319 00:17:26,530 --> 00:17:32,110 มันควรจะทำงานและฉันจะเพิ่มตัวเลขบาง 320 00:17:32,110 --> 00:17:36,380 ที่จะแสดงให้คุณเห็นว่ามันแน่นอนไม่ทำงาน 321 00:17:36,380 --> 00:17:38,130 เสียงดี 322 00:17:38,130 --> 00:17:40,260 >> คำถามใด ๆ เพื่อให้ห่างไกล 323 00:17:40,260 --> 00:17:42,300 [นักศึกษา] มันรู้เพื่อให้ 123 ได้อย่างไร 324 00:17:42,300 --> 00:17:44,120 คืออาร์กิวเมนต์? 325 00:17:44,120 --> 00:17:46,560 อย่างแน่นอน คุณสามารถคิดว่ามันเช่นเดียวกับข้อโต้แย้ง 326 00:17:46,560 --> 00:17:52,410 แต่สิ่งที่แปลก แต่เป็นวิธีการที่ Kohana ไม่ได้ 327 00:17:52,410 --> 00:17:54,910 คือพวกเขาไม่ทำมันเหมือนกับการโต้แย้ง 328 00:17:54,910 --> 00:17:56,930 คุณต้องคว้ามันเช่นนี้ 329 00:17:56,930 --> 00:18:01,030 คุณต้องคว้าวัตถุคำขอและขอพารามิเตอร์ที่ตั้งชื่อ ID ที่ 330 00:18:01,030 --> 00:18:03,240 ID และชื่อที่มาจากไฟล์บูตที่ 331 00:18:03,240 --> 00:18:06,990 ที่ผมแสดงให้เห็นว่าก่อนหน้านี้และชื่อ ID ที่อยู่ในวงเล็บที่มุม 332 00:18:06,990 --> 00:18:11,580 และนั่นคือวิธีการที่คุณคว้าพารามิเตอร์เหล่านั้น 333 00:18:11,580 --> 00:18:14,010 น่ากลัว 334 00:18:14,010 --> 00:18:17,550 คำถามใด ๆ อื่น ๆ 335 00:18:17,550 --> 00:18:20,500 เช่นฉันกล่าวว่าการควบคุมพวกเขาจัดการกับตรรกะของโปรแกรมประยุกต์ 336 00:18:20,500 --> 00:18:22,980 เพื่อให้เป็น 1 ตัวอย่างที่คุณสามารถดูที่ 's - 337 00:18:22,980 --> 00:18:24,830 มันเป็นเรื่องพื้นฐานมาก แต่ก็ยังคงตรรกะของโปรแกรมประยุกต์ 338 00:18:24,830 --> 00:18:27,980 ความคิดของโลภพารามิเตอร์และการสร้างสายใหม่ 339 00:18:27,980 --> 00:18:31,920 ว่า "คุณบอกว่า blah" แล้วคายที่กลับมาให้คุณ 340 00:18:31,920 --> 00:18:34,030 และโดยทั่วไปสิ่งที่คุณทำคือการที่คุณสร้างตัวควบคุมที่แตกต่างกัน 341 00:18:34,030 --> 00:18:36,450 คุณสามารถสร้างตัวควบคุมที่แยกต่างหากสำหรับชิ้นส่วนที่แตกต่างกันของเว็บไซต์ของคุณ 342 00:18:36,450 --> 00:18:38,160 >> วันนี้เรากำลังจะสร้างเว็บไซต์ที่ง่ายมาก 343 00:18:38,160 --> 00:18:40,420 และมันจะเป็นบล็อกขั้นพื้นฐานมาก 344 00:18:40,420 --> 00:18:43,780 เรากำลังจะทำให้ควบคุมใหม่เพียงสำหรับการโพสต์ในบล็อกของ 345 00:18:43,780 --> 00:18:47,060 แต่แล้วถ้าผมยังเพิ่มความเห็นที่จะโพสต์บล็อก 346 00:18:47,060 --> 00:18:50,140 แล้วผมก็อาจจะต้องการให้ตัวควบคุมใหม่สำหรับความคิดเห็นที่ 347 00:18:50,140 --> 00:18:53,380 ถ้าผมต้องการที่จะเพิ่มผู้ใช้ผมก็อาจจะเพิ่มตัวควบคุมใหม่สำหรับผู้ใช้เหล่านั้น 348 00:18:53,380 --> 00:18:57,000 และโดยทั่วไปความคิดที่ว่าเมื่อใดก็ตามที่คุณมีรูปแบบใหม่ 349 00:18:57,000 --> 00:18:59,630 ข้อมูลวัตถุใหม่ที่คุณกำลังติดต่อกับ 350 00:18:59,630 --> 00:19:02,970 คุณมีตัวควบคุมเดียวสำหรับข้อมูลวัตถุที่ 351 00:19:02,970 --> 00:19:04,370 วันนี้เราเท่านั้นที่จะได้ทำงานร่วมกับวัตถุที่ 1 ข้อมูล 352 00:19:04,370 --> 00:19:06,250 และที่จะโพสต์ 353 00:19:06,250 --> 00:19:08,710 และคุณยังสามารถคิดของวัตถุที่เป็นข้อมูลที่ตรงกับตาราง 354 00:19:08,710 --> 00:19:12,160 โดยทั่วไปแต่ละตารางที่ 1 สอดคล้องกับชนิดของวัตถุข้อมูล 355 00:19:12,160 --> 00:19:15,160 ดังนั้นตารางการโพสต์จะมี 1 รูปแบบการโพสต์ 356 00:19:15,160 --> 00:19:18,230 ซึ่งจะมี 1 ตัวควบคุมการโพสต์ตรงกับที่ 357 00:19:18,230 --> 00:19:22,190 และเหมือนกันสำหรับความเห็นที่เหมือนกันสำหรับผู้ใช้และอื่น ๆ และอื่น ๆ 358 00:19:22,190 --> 00:19:24,070 และที่เป็นกฎทั่วไปของหัวแม่มือ 359 00:19:24,070 --> 00:19:27,460 มีกำลังจะเป็นกรณีพิเศษที่คุณอาจแตกต่างจากที่ 360 00:19:27,460 --> 00:19:29,300 แต่ 90% ของเวลาที่สิ่งที่คุณกำลังจะทำที่ 361 00:19:29,300 --> 00:19:32,810 และฉันจะแสดงให้คุณเห็นว่าเป็นสิ่งที่เรากำลังจะทำในวันนี้ 362 00:19:32,810 --> 00:19:35,490 1 แนวคิดมากขึ้นก่อนที่เราจะดำน้ำกลับเข้ามาในรหัส 363 00:19:35,490 --> 00:19:37,710 ความคิดของการทำแผนที่วัตถุสัมพันธ์นี้ 364 00:19:37,710 --> 00:19:41,200 >> พวกคุณได้ทำมาแล้ว pset การพัฒนาเว็บ 365 00:19:41,200 --> 00:19:43,820 และคุณได้เห็นที่คุณทำแบบสอบถาม SQL, 366 00:19:43,820 --> 00:19:46,510 และสิ่งที่มันจะกลับไปที่คุณอยู่แถว 367 00:19:46,510 --> 00:19:50,040 คุณจะได้รับแถวเหล่านี้และคุณดัชนีพวกเขาตามชื่อบางส่วน 368 00:19:50,040 --> 00:19:55,480 ชื่อของคอลัมน์และตาราง 369 00:19:55,480 --> 00:19:57,630 และนั่นคือวิธีการที่คุณทำงานกับมัน 370 00:19:57,630 --> 00:19:59,290 และก็สามารถเป็นบิตยุ่งยาก 371 00:19:59,290 --> 00:20:01,810 แต่ยิ่งไปกว่านั้นถ้าคุณมีความสัมพันธ์ภายในฐานข้อมูลของคุณ 372 00:20:01,810 --> 00:20:05,280 อย่างเช่นถ้าผมมีความคิดเห็นและโพสต์ 373 00:20:05,280 --> 00:20:11,240 แล้วบางทีผมต้องการที่จะคว้าโพสต์แม่ของความคิดเห็น 374 00:20:11,240 --> 00:20:14,350 หากฉันใช้แถวเดียวใน SQL แล้วสิ่งที่ฉันจะได้รับเป็นรหัส 375 00:20:14,350 --> 00:20:19,310 โพสต์ของผู้ปกครองและไม่โพสต์จริงตัวเอง 376 00:20:19,310 --> 00:20:21,680 แต่เมื่อเรากำลังเขียนสิ่งที่เราต้องการจริงคือการคว้าจริง 377 00:20:21,680 --> 00:20:23,550  โพสต์ของผู้ปกครองของตัวเองบางครั้ง 378 00:20:23,550 --> 00:20:25,730 สิ่งที่ทำแผนที่วัตถุสัมพันธ์ไม่เป็น 379 00:20:25,730 --> 00:20:29,480 มันต้องใช้ผลที่ได้จากการสืบค้นฐานข้อมูล 380 00:20:29,480 --> 00:20:32,420 และทำให้มันเป็นวัตถุสำหรับคุณที่มีมากดีกว่าที่จะทำงานกับ 381 00:20:32,420 --> 00:20:34,770 กว่าอาร์เรย์ธรรมดาและแถว 382 00:20:34,770 --> 00:20:37,550 >> ตัวอย่างเช่นตอนนี้เมื่อผมมีความคิดเห็นบางที 383 00:20:37,550 --> 00:20:40,900 และผมต้องการที่จะคว้าโพสต์แม่ของมัน 384 00:20:40,900 --> 00:20:43,440 และฉันไม่อาจจะแสดงความคิดเห็นโพสต์ลูกศร 385 00:20:43,440 --> 00:20:45,230 แล้วมันจริงจะให้ฉันโพสต์วัตถุ 386 00:20:45,230 --> 00:20:47,940 สอดคล้องกับการโพสต์ของผู้ปกครองที่เกิดขึ้นจริงไม่ได้เป็นเพียง ID บาง 387 00:20:47,940 --> 00:20:52,210 ซึ่งผมอาจจะต้องใช้และทำแบบสอบถามอื่นที่จะคว้าการโพสต์ 388 00:20:52,210 --> 00:20:57,430 ซึ่งเป็นที่ยุ่งยากและไม่จำเป็น 389 00:20:57,430 --> 00:21:01,840 และยิ่งไปกว่าโดยการทำแผนที่เหล่านี้แถวข้อมูลลงในวัตถุ 390 00:21:01,840 --> 00:21:03,760 คุณยังสามารถแนบฟังก์ชั่นมากขึ้นเพื่อวัตถุ 391 00:21:03,760 --> 00:21:09,700 ดังนั้นตัวอย่างเช่นผมได้พูดคุยเกี่ยวกับวิธีการเรียนเป็นหลักของการทำงานของกลุ่ม 392 00:21:09,700 --> 00:21:11,620 คุณสามารถคิดว่ามันเหมือนว่า 393 00:21:11,620 --> 00:21:15,290 ตัวอย่างเช่นอาจจะมีวัตถุโพสต์นี้ 394 00:21:15,290 --> 00:21:17,830 และบางทีฉันต้องการที่จะมีการจัดเรียงบางส่วนของฟังก์ชั่นที่ติดอยู่กับมัน 395 00:21:17,830 --> 00:21:20,300 ที่พื้นบอกฉันว่ามันถูกโพสต์เมื่อเร็ว ๆ นี้? 396 00:21:20,300 --> 00:21:23,570 ถูกมันโพสต์ในสัปดาห์ที่ผ่านมาจริงหรือเท็จ? 397 00:21:23,570 --> 00:21:27,320 และที่ทำงานของฉันสามารถแนบลงบนวัตถุนั้น 398 00:21:27,320 --> 00:21:31,300 และมันก็สะดวกมากที่จะมีในสถานที่เดียวกัน 399 00:21:31,300 --> 00:21:33,820 และมีโฮสต์ของฟังก์ชั่นที่แตกต่างกันคุณสามารถสร้าง 400 00:21:33,820 --> 00:21:37,990 สำหรับวัตถุเหล่านี้และมันเป็นเรื่องที่ดีจริงๆเพื่อให้สามารถแนบไปกับชั้นเรียน 401 00:21:37,990 --> 00:21:41,700 ไปยังวัตถุในขณะที่ถ้าคุณเพียงแค่มีแถวที่มาจากฐานข้อมูลของคุณ 402 00:21:41,700 --> 00:21:43,790 แล้วคุณไม่สามารถจริงๆแนบฟังก์ชั่นใด ๆ กับที่ 403 00:21:43,790 --> 00:21:47,850 มันเป็นข้อมูลที่แท้จริงเพียง 404 00:21:47,850 --> 00:21:50,550 คำถามใด ๆ เกี่ยวกับว่าที่ทั้งหมดหรือไม่ 405 00:21:50,550 --> 00:21:52,710 ORMs มีการพัฒนาเว็บกันมาก 406 00:21:52,710 --> 00:21:56,330 และมีมากชนิดที่แตกต่างกันของ ORMs มี 407 00:21:56,330 --> 00:21:58,450 และ Kohana มีออมของตัวเอง 408 00:21:58,450 --> 00:22:05,050 มันเป็นพื้นฐานมาก แต่คุณจะได้รับรสชาติของสิ่งที่ดูเหมือนว่า 409 00:22:05,050 --> 00:22:08,780 >> ลองสร้างแบบจำลองสำหรับการโพสต์บล็อกของเรา 410 00:22:08,780 --> 00:22:12,350 และสิ่งแรกที่เราเห็นได้ชัดต้องทำคือการสร้างตารางที่เกิดขึ้นจริง 411 00:22:12,350 --> 00:22:16,680 ภายในฐานข้อมูลของเราที่จริงการจัดเก็บข้อมูลของเราโพสต์ที่ 412 00:22:16,680 --> 00:22:19,260 สิ่งแรกที่ผมจะทำคือไปที่ phpMyAdmin 413 00:22:19,260 --> 00:22:21,410 ได้พวกคุณใช้ phpMyAdmin มาก่อนหรือไม่ 414 00:22:21,410 --> 00:22:23,400 เอาล่ะที่น่ากลัวเพื่อให้พวกคุณรู้อยู่แล้วว่าสิ่งที่เป็น 415 00:22:23,400 --> 00:22:32,200 และฉันจะสร้างตารางใหม่ที่เรียกว่า Kohana กระทู้, 416 00:22:32,200 --> 00:22:37,820 และมันจะเป็นเรื่องง่ายมาก 417 00:22:37,820 --> 00:22:40,190 ฉันจะต้องกลับเข้าสู่ระบบ 418 00:23:02,620 --> 00:23:04,640 ทั้งหมดที่เรากำลังจะทำในวันนี้คือมีนักเขียนและร่างกาย 419 00:23:04,640 --> 00:23:11,930 เพียงแค่ให้มันง่าย 420 00:23:11,930 --> 00:23:15,620 ฉันจะสร้างตารางที่ 421 00:23:15,620 --> 00:23:19,620 และตอนนี้เราก็มีตารางที่เป็นตัวแทนของการโพสต์ของเรา 422 00:23:19,620 --> 00:23:23,370 2 ฟิลด์สำหรับผู้เขียนและร่างกายของเรา 423 00:23:23,370 --> 00:23:26,290 สิ่งอื่น ๆ ที่ฉันจะทำตอนนี้คือ 424 00:23:26,290 --> 00:23:29,820 กำหนดค่าโปรแกรมประยุกต์เว็บของฉันจึงรู้วิธีการเชื่อมต่อกับฐานข้อมูล 425 00:23:29,820 --> 00:23:31,950 และนี้อีกครั้งเป็นสิ่งที่คุณจะต้องทำกับทุกการใช้งานเว็บ 426 00:23:31,950 --> 00:23:34,790 คุณต้องบอกว่าชื่อผู้ใช้และรหัสผ่าน 427 00:23:34,790 --> 00:23:36,990 และชื่อของฐานข้อมูลและอื่น ๆ และอื่น ๆ 428 00:23:36,990 --> 00:23:40,000 ที่จะคิดออกวิธีการที่จริงการเชื่อมต่อกับฐานข้อมูลของคุณ 429 00:23:40,000 --> 00:23:58,710 >> ใน Kohana เรามีสิ่งที่เรียกว่าโมดูลฐานข้อมูล 430 00:23:58,710 --> 00:24:02,690 และการกำหนดค่าในโฟลเดอร์ที่เรามีโฟลเดอร์ที่เรียกว่าฐานข้อมูลนี้ 431 00:24:02,690 --> 00:24:07,330 และในขณะที่คุณสามารถดูมีพวงของการตั้งค่าที่คุณจะต้องตั้งที่นี่ 432 00:24:07,330 --> 00:24:09,860 ที่จะบอกว่าสิ่งที่เป็นชื่อผู้ใช้และรหัสผ่าน 433 00:24:09,860 --> 00:24:13,110 สำหรับฐานข้อมูลเพื่อให้ฉันจริงสามารถเชื่อมต่อกับมัน 434 00:24:13,110 --> 00:24:15,010 และตั้งแต่ฉันไม่ต้องการให้พวกคุณรู้จริง 435 00:24:15,010 --> 00:24:17,190 ชื่อผู้ใช้และรหัสผ่านของฐานข้อมูลของฉัน 436 00:24:17,190 --> 00:24:23,840 ผมมีไฟล์ที่ฉันตั้งแล้วมันทั้งหมดขึ้นและผมจะคัดลอกและวางมันไป 437 00:24:33,080 --> 00:24:36,870 น่ากลัว 438 00:24:36,870 --> 00:24:39,880 ถูก ผมคิดว่าการตั้งค่าทั้งหมดที่ผมต้องทำ 439 00:24:39,880 --> 00:24:41,070 แต่เรามาดู 440 00:24:41,070 --> 00:24:43,720 เราจะให้ทำงานในนั้นและหากสิ่งที่เกิดปัญหา 441 00:24:43,720 --> 00:24:47,490 แล้วเราจะแก้ไขได้ 442 00:24:47,490 --> 00:24:51,830 ตอนนี้สิ่งที่ผมจะทำคือผมจะสร้างตัวควบคุมใหม่ 443 00:24:51,830 --> 00:24:53,190 จริงหรือขอโทษ 444 00:24:53,190 --> 00:24:55,080 ครั้งแรกที่ฉันต้องสร้างรูปแบบใหม่ 445 00:24:55,080 --> 00:25:01,620 ฉันจะสร้างรูปแบบใหม่ที่เรียกว่า Post.php, 446 00:25:01,620 --> 00:25:12,440 และสิ่งที่เรากำลังจะทำคือเรากำลังจะเรียกว่าชั้น Model_Post 447 00:25:12,440 --> 00:25:15,390 ได้รับการเน้นไวยากรณ์บางอย่างเกี่ยวกับ 448 00:25:15,390 --> 00:25:19,750 และดังนั้นเมื่อผมพูดว่า "ขยายออม" ที่เป็นพื้น 449 00:25:19,750 --> 00:25:21,210 บางคนเขียนโปรแกรมเชิงวัตถุมากขึ้น 450 00:25:21,210 --> 00:25:23,340 ซึ่งน่าเสียดายที่พวกคุณไม่ได้เรียนรู้ใน CS50 ยัง 451 00:25:23,340 --> 00:25:25,290 แต่ก็สวยง่ายที่จะรับ 452 00:25:25,290 --> 00:25:27,950 มันทำให้ฉันทั้งหมดนี้ฟังก์ชั่นพิเศษที่มาในแพคเกจออมนี้ 453 00:25:27,950 --> 00:25:31,120 และเพื่อให้ฉันได้รับพวงของฟังก์ชั่นพิเศษและ whatnot ฟรี, 454 00:25:31,120 --> 00:25:34,810 ซึ่งคุณจะเห็นบิตของในที่สอง 455 00:25:34,810 --> 00:25:37,670 >> ตอนนี้จริงทั้งหมดที่ผมต้องทำคือการสร้างชั้นนี้ 456 00:25:37,670 --> 00:25:39,160 ฉันไม่ได้ต้องการที่จะทำให้ฟังก์ชั่นใดหรืออะไร 457 00:25:39,160 --> 00:25:41,770 แต่เราได้สร้างชั้นที่แสดงถึงตารางที่ 458 00:25:41,770 --> 00:25:44,140 และเพราะฉันได้ขยายชั้นเรียนออมนี้ 459 00:25:44,140 --> 00:25:51,080 ฉันจะได้รับพวงของสิ่งฟรีดังนั้นสำหรับตอนนี้คุณไม่จำเป็นต้องตั้งค่าอะไรมากขึ้น 460 00:25:51,080 --> 00:25:53,530 และตอนนี้สิ่งที่ผมจะทำคือผมจะสร้างตัวควบคุมใหม่ 461 00:25:53,530 --> 00:25:58,480 ซึ่งผมจะตั้งชื่อ blog.php, 462 00:25:58,480 --> 00:26:04,350 และผมจะคัดลอกไปควบคุมยินดีต้อนรับคุณ 463 00:26:04,350 --> 00:26:11,950 ดังนั้นผมจึงไม่จำเป็นต้องพิมพ์สิ่งบางอย่าง 464 00:26:11,950 --> 00:26:20,720 และตอนนี้ฉันมีการเปลี่ยนชื่อนี้ 465 00:26:20,720 --> 00:26:24,710 ตอนนี้สิ่งที่ฉันจะทำอย่างไรที่จะทดสอบเพื่อให้แน่ใจว่าทุกอย่างจะทำงานออก 466 00:26:24,710 --> 00:26:27,820 ฉันจะคว้าโพสต์ครั้งแรกจากฐานข้อมูลของฉัน 467 00:26:27,820 --> 00:26:32,680 และพิมพ์เนื้อหาของการโพสต์บนหน้าจอ 468 00:26:32,680 --> 00:26:37,920 ที่จะทำสิ่งที่ฉันจะทำก่อนที่ฉันจะบันทึกการโพสต์ 469 00:26:37,920 --> 00:26:48,770 กับตัวแปรดังนั้นสิ่งที่เรากำลังจะทำคือ - 470 00:26:48,770 --> 00:26:52,090 ใน Kohana สิ่งที่คุณทำคือการคว้าวัตถุที่โพสต์ 471 00:26:52,090 --> 00:26:55,380 มันเป็นชนิดของยุ่งยาก แต่คุณต้องทำสิ่งนี้เรียกว่าออม :: โรงงาน 472 00:26:55,380 --> 00:26:57,750 แล้วคุณจะผ่านในชื่อของรูปแบบที่คุณต้องการ 473 00:26:57,750 --> 00:27:00,490 และจะส่งกลับวัตถุออมที่แสดงถึงรูปแบบที่ 474 00:27:00,490 --> 00:27:04,860 แล้วเหมือนที่ผมกล่าวว่าเมื่อเราขยายวัตถุออม, 475 00:27:04,860 --> 00:27:07,320 เราได้รับวิธีการเหล่านี้ทั้งหมดฟรีดังนั้นสำหรับตัวอย่างเช่น 476 00:27:07,320 --> 00:27:09,200 เราได้รับฟังก์ชั่นใหม่นี้เรียกว่า "พบ" 477 00:27:09,200 --> 00:27:12,160 ซึ่งจะกลับทุกโพสต์เดียวในฐานข้อมูล 478 00:27:12,160 --> 00:27:14,850 ซึ่งเป็นวิธีที่สะดวกสวย 479 00:27:14,850 --> 00:27:17,480 >> และตอนนี้อยู่ในร่างกายของฉันจะกลับมา 480 00:27:17,480 --> 00:27:24,860 โพสต์แรกและกลับร่างของมัน 481 00:27:24,860 --> 00:27:27,930 และแน่นอนฉันต้องสร้างโพสต์ 482 00:27:27,930 --> 00:27:31,880 จึงขอแทรกโพสต์ใหม่ 483 00:27:31,880 --> 00:27:37,870 ฉันจะพูดว่า "แบรนดอน, โพสต์แรกของฉัน." 484 00:27:37,870 --> 00:27:40,010 น่ากลัว 485 00:27:40,010 --> 00:27:45,910 และตอนนี้เรากำลังจะไปยังบล็อก 486 00:27:45,910 --> 00:27:50,960 และถ้าทุกอย่างทำงานได้ดี - โอ้นี้เป็นบางสิ่งอื่น ๆ ที่ได้รับอนุญาตแฟ้มใบ้อีกครั้ง 487 00:27:50,960 --> 00:27:56,090 ยึดมั่นใน 1 วินาที เป็นชนิดของไร้สาระ 488 00:28:06,700 --> 00:28:08,490 มีเราไป ถูก 489 00:28:08,490 --> 00:28:10,040 ฉันคงปัญหาที่ได้รับอนุญาต 490 00:28:10,040 --> 00:28:12,040 มันก็พยายามที่จะสร้างบางไฟล์และเข้าสู่ระบบบางอย่าง 491 00:28:12,040 --> 00:28:15,400 และการอนุญาตอีกครั้งที่ไม่ได้กำหนดอย่างถูกต้องเพื่อให้ฉันทำมัน 492 00:28:15,400 --> 00:28:18,320 ไฟล์เหล่านั้นเพื่อให้มีการเขียนและปฏิบัติการ 493 00:28:18,320 --> 00:28:21,090 เพื่อที่จะสามารถเข้าสู่ระบบจริงกับสิ่งที่ 494 00:28:21,090 --> 00:28:24,220 ตอนนี้ก็ให้ฉันอีกว่าข้อยกเว้น "ออมชั้นไม่พบ" 495 00:28:24,220 --> 00:28:26,960 และที่ว่าเพราะผมลืมขั้นตอนอื่น 496 00:28:26,960 --> 00:28:37,010 ที่เลวร้ายเกินไป 497 00:28:37,010 --> 00:28:40,270 ในแฟ้มโฟลเดอร์บูตมีโมดูลเหล่านี้ที่นี่ 498 00:28:40,270 --> 00:28:42,480 ซึ่งคุณสามารถเลือกที่จะเปิดหรือปิดการใช้งาน 499 00:28:42,480 --> 00:28:44,340 เหล่านี้เป็นพวงของคุณสมบัติที่แตกต่างที่คุณสามารถเลือกที่จะใช้ 500 00:28:44,340 --> 00:28:46,180 Kohana ภายในซึ่งเป็นประเภทของดี 501 00:28:46,180 --> 00:28:49,090 >> ตัวอย่างเช่นพวกเขามีโมดูลการตรวจสอบ 502 00:28:49,090 --> 00:28:51,170 ซึ่งคุณสามารถใช้สำหรับการตรวจสอบผู้ใช้ 503 00:28:51,170 --> 00:28:53,390 พวกเขามีโมดูลแคชถ้าคุณต้องการที่จะใช้ 504 00:28:53,390 --> 00:28:57,870 การเรียงลำดับของแคชบางหลังจบที่จะทำให้งานโปรแกรมได้เร็วขึ้นและ whatnot 505 00:28:57,870 --> 00:29:02,140 เราจำเป็นที่จะต้องเปิดการใช้งานฐานข้อมูลและโมดูลออม, 506 00:29:02,140 --> 00:29:04,280 เพราะเหมือนที่ผมกล่าวว่าเรากำลังใช้ฐานข้อมูลชัด 507 00:29:04,280 --> 00:29:08,200 และเรายังจำเป็นที่จะต้องเปิดการใช้งานโมดูลออม, 508 00:29:08,200 --> 00:29:12,220 เพราะเราต้องการที่จะมีการทำงานพิเศษซึ่งเป็นสิ่งที่ดีที่จะมี 509 00:29:12,220 --> 00:29:14,240 ทั้งหมดที่ฉันต้องทำคือการ uncomment ที่ 2 เส้น 510 00:29:14,240 --> 00:29:18,760 และตอนนี้ถ้าผมฟื้นฟูจะให้ฉันข้อผิดพลาดอื่น 511 00:29:18,760 --> 00:29:22,100 มันบอกว่า "ชั้น Model_Post ไม่พบ." 512 00:29:22,100 --> 00:29:30,210 ตอนนี้เป็นปัญหาที่ดีที่จะมี 513 00:29:30,210 --> 00:29:37,660 ลองมาดูกัน 514 00:29:37,660 --> 00:29:42,200 ทำให้ประชาชน 515 00:29:42,200 --> 00:29:46,450 ที่ยึดมั่นใน 516 00:30:11,610 --> 00:30:13,160 โธ่เอ๊ย 517 00:30:13,160 --> 00:30:18,590 ผมไม่ทราบว่าทำไมมันไม่สามารถที่จะพบว่า 518 00:30:18,590 --> 00:30:21,030 ที่แปลกจริงๆ 519 00:30:21,030 --> 00:30:23,820 ฉันได้เรียนนี้ที่นี่ 520 00:30:23,820 --> 00:30:28,650 ผมคิดว่าผมอาจจะต้อง - โอ้ 521 00:30:28,650 --> 00:30:32,010 ผมใบ้เพื่อ ฉันลืมที่จะเพิ่มแท็ก PHP 522 00:30:32,010 --> 00:30:34,670 นั่นเป็นเหตุผลที่ 523 00:30:34,670 --> 00:30:41,260 ตอนนี้ผมต้องยกเลิกการเปลี่ยนแปลงที่ 1 ฉันไม่ 524 00:30:41,260 --> 00:30:44,270 เอาล่ะ >> มีเราไป 525 00:30:44,270 --> 00:30:47,500 นั่นคือโง่จริงๆ ฉันไม่ได้มีแท็ก PHP เปิด 526 00:30:47,500 --> 00:30:49,900 แต่ในขณะที่คุณสามารถดูตอนนี้ก็ทำงานอย่างถูกต้องใช่ไหม 527 00:30:49,900 --> 00:30:51,240 เรามี 1 โพสต์ 528 00:30:51,240 --> 00:30:54,730 เราคว้าโพสต์แรกและตอนนี้เราพิมพ์ออกมาร่างของมัน 529 00:30:54,730 --> 00:30:58,010 ยิ่งใหญ่ น่าอัศจรรย์ 530 00:30:58,010 --> 00:31:01,470 คำถามใด ๆ เพื่อให้ห่างไกล 531 00:31:01,470 --> 00:31:04,100 Nope? คำถามใด? 532 00:31:04,100 --> 00:31:08,340 เอาล่ะเพื่อที่เราเพิ่งสร้างรูปแบบการโพสต์พื้นฐานมาก 533 00:31:08,340 --> 00:31:10,930 และเราจะเพิ่มฟังก์ชั่นบางอย่างในภายหลัง 534 00:31:10,930 --> 00:31:13,600 เราสามารถเพิ่มการตรวจสอบและการกรอง 535 00:31:13,600 --> 00:31:15,650 การตรวจสอบเป็นส่วนหนึ่งของสิ่งที่ 536 00:31:15,650 --> 00:31:18,150 ที่กรอบแก้ปัญหาสำหรับคุณจริงๆดีจริงๆ 537 00:31:18,150 --> 00:31:21,310 และฉันไม่คิดว่าพวกคุณต้องทำเช่นนี้สำหรับ pset CS50 ของคุณ 538 00:31:21,310 --> 00:31:24,000 แต่ถ้าคุณทำในการพัฒนาเว็บสำหรับโครงการสุดท้ายของคุณ 539 00:31:24,000 --> 00:31:26,280 คุณกำลังมีแนวโน้มที่จะต้องการที่จะทำเรียงลำดับของการตรวจสอบบางอย่าง 540 00:31:26,280 --> 00:31:28,290 เช่นไม่ได้มีชื่อผู้ใช้เปล่า 541 00:31:28,290 --> 00:31:31,950 อาจจะมีรหัสผ่านที่มีความยาวอย่างน้อยบางสิ่งที่ต้องการที่ 542 00:31:31,950 --> 00:31:34,750 และมันเป็นเรื่องยุ่งยากจริงๆที่จะใช้สิ่งเหล่านี้ด้วยตัวเอง 543 00:31:34,750 --> 00:31:37,390 และสวยมากทุกกรอบเว็บเดียวไม่ได้สำหรับคุณ 544 00:31:37,390 --> 00:31:41,140 และช่วยให้คุณที่จะทำมันในทางที่สะอาดมาก 545 00:31:41,140 --> 00:31:44,340 และรูปแบบเป็นที่ที่คุณมักจะแสดงกฎการตรวจสอบนั้น 546 00:31:44,340 --> 00:31:48,790 เพราะการตรวจสอบไม่ว่าจะเป็นรูปแบบที่ถูกต้องหรือไม่ 547 00:31:48,790 --> 00:31:51,350 >> แต่ตอนนี้เรากำลังจะใส่ที่จนกระทั่งต่อมา 548 00:31:51,350 --> 00:31:53,520 และตอนนี้เรากำลังจะไปทำงานในส่วนอื่น 549 00:31:53,520 --> 00:31:55,400 และเราจะพยายามทำให้มุมมองใหม่ 550 00:31:55,400 --> 00:31:59,580 ที่แสดงข้อความทั้งหมด 551 00:31:59,580 --> 00:32:02,490 ขั้นตอนที่เกี่ยวข้องในการดำเนินการใหม่สำหรับรายการข้อความทั้งหมด 552 00:32:02,490 --> 00:32:04,810 คือการคว้ารายการจากโพสทั้งหมด 553 00:32:04,810 --> 00:32:11,990 แล้วทำให้รายการของข้อความทั้งหมดผ่านมุมมอง 554 00:32:11,990 --> 00:32:16,420 ที่นี่โชคดีพอเราอยู่แล้วคว้าข้อความทั้งหมด 555 00:32:16,420 --> 00:32:20,310 โดยใช้บรรทัดแรกนี้หาฟังก์ชั่นทั้งหมด 556 00:32:20,310 --> 00:32:22,520 และตอนนี้สิ่งที่เรากำลังจะทำคือเพื่อให้ห่างไกล 557 00:32:22,520 --> 00:32:25,350 ฉันได้รับการตั้งค่าของการตอบสนองของร่างกายโดยตรง 558 00:32:25,350 --> 00:32:29,090 โดยผ่านสาย แต่ตอนนี้ฉันต้องการที่จะใช้มุมมอง 559 00:32:29,090 --> 00:32:31,870 และความแตกต่างระหว่างมุมมองและเพียงแค่การทำเช่นนี้ 560 00:32:31,870 --> 00:32:35,330 คือการมีมุมมองที่ฉันสามารถมีดี HTML แม่แบบขนาดใหญ่ 561 00:32:35,330 --> 00:32:37,710 และสิ่งที่ฉันสามารถทำได้คือผ่านมันตัวแปรบางอย่าง 562 00:32:37,710 --> 00:32:42,200 แล้วได้มุมมองที่เติมแม่แบบโดยอัตโนมัติ 563 00:32:42,200 --> 00:32:44,690 โดยใช้ตัวแปรเหล่านั้น 564 00:32:44,690 --> 00:32:50,780 สิ่งที่ผมจะทำคือผมจะสร้างมุมมองใหม่ 565 00:32:50,780 --> 00:32:55,940 และฉันจะตั้งชื่อมุมมองบางอย่างเช่น "บล็อก / ดัชนี" 566 00:32:55,940 --> 00:33:08,480 และฉันจะเป็นพื้นผูกนี้ - โอ้, สิ่งที่ฉันเขียน? 567 00:33:08,480 --> 00:33:12,910 สมองของฉันเป็นที่อื่น 568 00:33:12,910 --> 00:33:16,600 ฉันจะผูกกระทู้ตัวแปรมุมมอง 569 00:33:16,600 --> 00:33:19,950 ดังนั้นวิธีการที่มุมมองที่มีการเข้าถึงตัวแปรโพสต์นี้ 570 00:33:19,950 --> 00:33:26,140 >> และดังนั้นตอนนี้ฉันต้องการที่จะสร้างมุมมองนี้ 571 00:33:26,140 --> 00:33:28,500 ดังนั้นที่นี่เรามีโฟลเดอร์ที่เรียกว่า "มุมมอง" นี้ 572 00:33:28,500 --> 00:33:32,150 และเป็นครั้งแรกที่ผมจะสร้างโฟลเดอร์ใหม่ภายใต้ที่เรียกว่า "บล็อก". 573 00:33:32,150 --> 00:33:35,810 นี้เป็นสิ่งที่ดี วิธีที่เราสามารถมีลำดับชั้นที่ดีสำหรับมุมมองของเราที่ 574 00:33:35,810 --> 00:33:43,910 แล้วฉันจะสร้างไฟล์อื่นในนั้นเรียกว่า "index.php." 575 00:33:43,910 --> 00:33:45,780 น่ากลัว 576 00:33:45,780 --> 00:33:52,930 ที่จริงแล้วการปล่อยให้มีพวกเขาทั้งสองที่นี่ 577 00:33:52,930 --> 00:33:56,760 ทำให้ไฟล์มุมมองน่าจะเป็นส่วนที่ง่ายที่สุดของทั้งหมดนี้ 578 00:33:56,760 --> 00:33:59,090 และเหล่านี้อาจเป็นสิ่งที่คุณคุ้นเคยกับ 579 00:33:59,090 --> 00:34:01,240 เรากำลังจะทำสิ่งที่ง่ายจริงๆ 580 00:34:01,240 --> 00:34:05,360 เริ่มต้นว่า "รายการของฉันโพสต์บล็อก." 581 00:34:05,360 --> 00:34:14,860 แล้วเราสามารถผ่าน 582 00:34:14,860 --> 00:34:17,920 และเราสามารถย้ำผ่านแถวโพสต์ 583 00:34:17,920 --> 00:34:21,760 คว้าทุกโพสต์เดียวและพูดอะไรบางอย่างเช่น - 584 00:34:21,760 --> 00:34:25,290 อาจจะเพิ่มบรรทัด 585 00:34:25,290 --> 00:34:42,460 แล้วพิมพ์ออกมาผู้เขียนและร่างกาย 586 00:34:42,460 --> 00:34:44,480 ที่ทำให้รู้สึกเพื่อให้ห่างไกล 587 00:34:44,480 --> 00:34:50,870 และให้ดูว่าการทำงาน 588 00:34:50,870 --> 00:34:53,489 ไม่มีอะไรเกิดขึ้น 589 00:34:53,489 --> 00:34:55,090 ผมสงสัยว่าทำไม 590 00:34:55,090 --> 00:34:58,760 โอ้ฉันพลาดขั้นตอนที่ 1 มากโง่ของฉัน 591 00:34:58,760 --> 00:35:01,640 ฉันสร้างมุมมอง แต่ผมก็ไม่ได้ตั้งค่ามุมมองที่การตอบสนอง 592 00:35:01,640 --> 00:35:03,190 ดังนั้นคุณต้องทำสิ่งที่ 1 593 00:35:03,190 --> 00:35:12,610 ที่คุณต้องทำ "ร่างกายตอบสนองนี้" และตั้งค่าให้เป็นมุมมอง 594 00:35:12,610 --> 00:35:14,760 มีเราไป 595 00:35:14,760 --> 00:35:17,200 เรามีส่วนหัวของเราและเราก็มีการโพสต์ 596 00:35:17,200 --> 00:35:20,500 และเพียง kicks ขอแทรกโพสต์อื่น 597 00:35:20,500 --> 00:35:23,390 เพื่อให้เราสามารถดูรายการ 598 00:35:31,800 --> 00:35:36,650 และใส่เหล่านี้ 2 โพสต์ 599 00:35:36,650 --> 00:35:39,500 และตอนนี้ถ้าผมรีเฟรชหน้า 600 00:35:39,500 --> 00:35:42,060 เราจะเห็นการโพสต์เหล่านี้ทั้งหมดที่นี่ 601 00:35:42,060 --> 00:35:44,250 >> ที่ไม่ทำให้รู้สึกเพื่อให้ห่างไกล 602 00:35:44,250 --> 00:35:46,400 ใช่คำถามหรือไม่ โอ้โอเค 603 00:35:46,400 --> 00:35:51,440 ที่คุณสามารถดูเราได้รับสามารถที่จะแยกรหัสเหล่านี้ออกทั้งหมด 604 00:35:51,440 --> 00:35:53,920 เป็นส่วนที่แตกต่างกันและจากนั้นคุณสามารถมองเห็นได้ชัดเจนมากที่สุดกับรหัสมุมมอง 605 00:35:53,920 --> 00:35:57,810 ไฟล์นี้ที่นี่ที่แสดงให้เห็นถึงมุมมอง 606 00:35:57,810 --> 00:36:01,220 มันเพียง แต่ให้ความสำคัญกับการเป็นตัวแทนของข้อมูลการแสดงข้อมูล 607 00:36:01,220 --> 00:36:04,310 จะได้รับการผ่านการจัดเรียงของข้อมูลบางส่วนและทั้งหมดก็จะเป็นเพียงการแสดงให้คุณ 608 00:36:04,310 --> 00:36:07,660 ในส่วนอื่น ๆ ทั้งหมดของรหัสของคุณคุณจะไม่ต้องกังวลเกี่ยวกับการใด ๆ ที่ 609 00:36:07,660 --> 00:36:10,480 และเช่นเดียวกันรหัสมุมมองของคุณไม่ต้องกังวลอะไรเกี่ยวกับ 610 00:36:10,480 --> 00:36:13,390 วิธีการเข้าถึงฐานข้อมูลและอื่น ๆ และอื่น ๆ 611 00:36:13,390 --> 00:36:19,950 ซึ่งเป็นสิ่งที่ดีมากและจะทำให้รหัสของคุณมากขึ้น maintainable 612 00:36:19,950 --> 00:36:23,390 เช่นฉันกล่าวว่ามุมมองที่พวกเขากำลังแบบไดนามิกในที่ 613 00:36:23,390 --> 00:36:27,080 เป็น 1 ไฟล์ แต่มันจะสร้างมุมมองที่แตกต่างกัน 614 00:36:27,080 --> 00:36:29,940 ขึ้นอยู่กับตัวแปรที่คุณผ่านการจริงในการที่ 615 00:36:29,940 --> 00:36:32,370 และยิ่งมีจำนวนมากของฟังก์ชั่นที่แตกต่างกันผู้ช่วย 616 00:36:32,370 --> 00:36:34,230 ที่คุณสามารถใช้เพื่อช่วยให้คุณเขียนรหัสของคุณได้เร็วขึ้น 617 00:36:34,230 --> 00:36:36,320 ที่ผมจะแสดงให้คุณในเวลาเพียงสอง 618 00:36:36,320 --> 00:36:38,050 ใช่ 619 00:36:38,050 --> 00:36:42,490 >> [นักศึกษา] ดังนั้น $ 0 ขวาเป็นตัวควบคุม? 620 00:36:42,490 --> 00:36:44,000 ว่าสิ่งที่สอง 621 00:36:44,000 --> 00:36:46,090 คำถามคือเป็น 0 $ ควบคุมได้หรือไม่ 622 00:36:46,090 --> 00:36:48,610 0 $ เป็นตัวแปรฉันสร้างขึ้นที่นี่ 623 00:36:48,610 --> 00:36:51,320 ฉันสร้างมุมมองแรก ผมได้รับมอบหมายให้กับตัวแปรบาง 624 00:36:51,320 --> 00:36:54,960 จากนั้นฉันก็ผ่านมันเป็นฟังก์ชั่นนี้ตั้งเป็นร่างกายของการตอบสนอง 625 00:36:54,960 --> 00:36:57,260 ไม่ที่ทำให้รู้สึก? 626 00:36:57,260 --> 00:37:02,200 [นักศึกษา] ดังนั้นมุมมอง :: โรงงานเป็นมุมมองเช่น class 627 00:37:02,200 --> 00:37:06,610 หรือห้องสมุด [ไม่ได้ยิน] ฟังก์ชั่นโรงงาน 628 00:37:06,610 --> 00:37:10,640 คำถามคือเกี่ยวกับฟังก์ชั่นมุมมอง :: โรงงาน 629 00:37:10,640 --> 00:37:14,020 และพื้นนี้เป็นโปรแกรมเชิงวัตถุบางอย่างมากขึ้นเป็นหลัก 630 00:37:14,020 --> 00:37:18,000 มุมมองเป็นมุมมองการเรียนและจะมีวิธีการที่เรียกว่า "โรงงาน" 631 00:37:18,000 --> 00:37:24,170 และนั่นคือวิธีการที่จะคว้าวัตถุที่ชื่อ "บล็อก / ดัชนี." 632 00:37:24,170 --> 00:37:27,140 และที่ว่าบางเชิงวัตถุสิ่งที่เขียนโปรแกรมเพิ่มเติม 633 00:37:27,140 --> 00:37:33,010 ว่าฉันจะไม่ไปลงที่นี่มากเกินไป 634 00:37:33,010 --> 00:37:36,400 ตอนนี้เห็นได้ชัดว่าเราต้องการที่จะสร้างการโพสต์ใหม่ 635 00:37:36,400 --> 00:37:38,790 แต่เราไม่ต้องการให้มีการทำผ่านฐานข้อมูล 636 00:37:38,790 --> 00:37:41,280 ดังนั้นเราจะสร้างการดำเนินการใหม่สำหรับการสร้างการโพสต์ใหม่ 637 00:37:41,280 --> 00:37:43,050 และมีจำนวนมากของสิ่งที่เราต้องทำ 638 00:37:43,050 --> 00:37:45,910 >> สิ่งแรกที่เรากำลังจะทำ - ให้ต่อสู้กับสิ่งเหล่านี้อย่างใดอย่างหนึ่งโดยหนึ่ง 639 00:37:45,910 --> 00:37:48,320 สิ่งแรกที่เราจะทำคือการที่เราได้มีการสร้างฟอร์ม 640 00:37:48,320 --> 00:37:54,460 ในการแทรกการโพสต์ใหม่ 641 00:37:54,460 --> 00:37:57,360 แต่ฉันยังจะเพิ่มการดำเนินการใหม่เป็นครั้งแรก 642 00:37:57,360 --> 00:38:01,050 ดังนั้นการเพิ่มการดำเนินการใหม่เป็นเพียงเป็นเรื่องง่ายที่ 643 00:38:01,050 --> 00:38:03,490 เพิ่มฟังก์ชั่นใหม่ที่มีตัวควบคุมของคุณ 644 00:38:03,490 --> 00:38:13,710 และตอนนี้ผมกำลังจะไปทำอะไรที่พื้นฐานมาก 645 00:38:13,710 --> 00:38:20,850 เพียงคว้ามุมมองนี้และโพสต์เพียงแค่แสดงให้คุณ 646 00:38:20,850 --> 00:38:26,220 แล้วตอนนี้ผมกำลังจะไปสร้างไฟล์มุมมองใหม่ 647 00:38:26,220 --> 00:38:33,690 และฉันจะเริ่มต้นการเขียนสิ่งบางอย่าง 648 00:38:33,690 --> 00:38:36,540 มีอะไรที่ดีเกี่ยวกับ Kohana ที่พวกเขาให้มากของฟังก์ชั่นที่แตกต่างกันผู้ช่วย 649 00:38:36,540 --> 00:38:38,790 สำหรับคุณที่จะเขียนรหัสดูได้ง่ายขึ้น 650 00:38:38,790 --> 00:38:41,970 และ 1 ของผู้ที่ทำหน้าที่ผู้ช่วยผู้ช่วยหรือโมดูล 651 00:38:41,970 --> 00:38:45,860 เป็นรอบการเขียนในรูปแบบ 652 00:38:45,860 --> 00:38:49,460 สำหรับการเขียนในรูปแบบที่ผมไม่ได้จริงๆต้องเขียนโดยตรง HTM​​L ใด ๆ ที่ตัวเอง 653 00:38:49,460 --> 00:38:51,100 พวกคุณได้เขียนในรูปแบบ HTML 654 00:38:51,100 --> 00:38:54,850 คุณจะรู้ว่าวิธีที่จะสามารถจริงๆเจ็บปวดและยุ่งยากในการเขียนรูปแบบ 655 00:38:54,850 --> 00:38:59,970 มันไม่สนุกเพื่อให้โชคดี 656 00:38:59,970 --> 00:39:04,860 เราก็สามารถเขียนในรูปแบบของการใช้ Kohana 657 00:39:04,860 --> 00:39:11,190 รูปแบบฟังก์ชั่นผู้ช่วยที่จะทำเพื่อเรา 658 00:39:11,190 --> 00:39:17,340 เรากำลังจะไปโดยทั่วไปมีฟิลด์สำหรับทุกสิ่งเดียวที่เรามี 659 00:39:17,340 --> 00:39:23,160 ดังนั้นหนึ่งสำหรับผู้เขียนและหนึ่งสำหรับร่างกาย 660 00:39:23,160 --> 00:39:27,090 เรากำลังจะมีป้ายชื่อและเรากำลังจะมีการป้อนข้อมูล 661 00:39:37,450 --> 00:39:41,360 >> และแล้วในที่สุดเรากำลังจะมีการส่ง 662 00:39:49,350 --> 00:39:52,230 และในขณะที่คุณสามารถดูนี้เป็นทำความสะอาดมากในการเขียน 663 00:39:52,230 --> 00:39:58,150 กว่าทุกที่ HTML ยุ่งซึ่งเป็นชนิดที่ดี 664 00:39:58,150 --> 00:40:00,930 รับมีกรอบเว็บอื่น ๆ ที่มีก็ยังสะอาดกว่าที่ 665 00:40:00,930 --> 00:40:04,440 แต่อย่างน้อยนี้จะดีกว่าการเขียน HTML ด้วยตัวคุณเอง 666 00:40:09,400 --> 00:40:11,130 น่ากลัวดังนั้นนี่คือสิ่งที่คุณเห็น 667 00:40:11,130 --> 00:40:13,530 นั่นคือชนิดของยุ่ง 668 00:40:13,530 --> 00:40:19,720 ดังนั้นฉันจะเพิ่มตัวแบ่งบรรทัดมี 669 00:40:19,720 --> 00:40:21,180 เพื่อให้ที่ดูดีกว่าเล็กน้อย 670 00:40:21,180 --> 00:40:23,330 ดีแน่นอนก็ยังคงดูจริงๆดีจริงๆ แต่เรากำลังมุ่งเน้นเพียงแค่ 671 00:40:23,330 --> 00:40:26,050 ในการทำงานในขณะนี้และไม่ได้อยู่ในความงาม 672 00:40:26,050 --> 00:40:28,010 เวลาที่จะทำทุกอย่างไม่มี 673 00:40:28,010 --> 00:40:30,600 และอย่างที่คุณเห็นตอนนี้เรามีรูปแบบซุปเปอร์ขั้นพื้นฐาน 674 00:40:30,600 --> 00:40:32,080 ซึ่งเป็นชนิดที่ดี 675 00:40:32,080 --> 00:40:36,730 รหัสนี้ผมจะบอกว่าสะอาดกว่าการพยายามที่จะเขียน HTML รูปแบบตัวเอง 676 00:40:36,730 --> 00:40:40,290 เพื่อให้เป็นที่ดี 677 00:40:40,290 --> 00:40:42,030 ถัดไปคืออะไร 678 00:40:42,030 --> 00:40:49,260 ตอนนี้เราต้องทำสิ่งที่มีการกระทำ 679 00:40:49,260 --> 00:40:51,240 โดยปกติเมื่อคุณเขียนในรูปแบบ HTML, 680 00:40:51,240 --> 00:40:54,070 คุณต้องบอกว่าที่มันจะส่งแบบฟอร์มการ 681 00:40:54,070 --> 00:40:56,050 โดยเริ่มต้นในที่สุดกรอบเว็บ 682 00:40:56,050 --> 00:40:58,200 มันส่งไปยัง URL เดียวกันแน่นอนดังนั้นสิ่งที่เป็น 683 00:40:58,200 --> 00:41:01,310 ถ้าคุณได้รับการส่งคำขอไปยัง / บล็อก / ใหม่ 684 00:41:01,310 --> 00:41:03,240 มันจะแสดงให้คุณในรูปแบบที่ 685 00:41:03,240 --> 00:41:06,810 แต่ถ้าคุณส่งคำขอไปยังโพสต์ / บล็อก / ใหม่ที่มีข้อมูล 686 00:41:06,810 --> 00:41:10,000 จริง ๆ แล้วมันควรจะพยายามที่จะบันทึกโพสต์ที่ 687 00:41:10,000 --> 00:41:13,300 และทำอะไรกับมัน 688 00:41:20,630 --> 00:41:22,180 >> สิ่งที่เรากำลังจะทำคือ 689 00:41:22,180 --> 00:41:25,320 พื้นทั้งหมดที่เราต้องทำในการตรวจสอบไม่ว่าจะเป็นขอโพสต์หรือได้รับการร้องขอ 690 00:41:25,320 --> 00:41:29,350 คือการตรวจสอบสิ่งที่เป็นตัวแปรการโพสต์คุณสามารถตั้งค่า 691 00:41:29,350 --> 00:41:34,560 และถ้าตัวแปรการโพสต์ตั้งแล้วเราจะลองและสร้างโพสต์ใหม่ 692 00:41:34,560 --> 00:41:38,440 อีกครั้งเราก็ทำเช่นนี้ 693 00:41:38,440 --> 00:41:41,090 และที่สร้างโพสต์ใหม่และเรากำลังจะไปตามตัวอักษร 694 00:41:41,090 --> 00:41:51,150 การตั้งค่าเขตข้อมูลเช่นนี้ 695 00:41:51,150 --> 00:41:55,640 และจากนั้นเราจะบันทึกไว้ 696 00:41:55,640 --> 00:41:59,200 แล้วฉันจะเปลี่ยนเส้นทาง 697 00:41:59,200 --> 00:42:07,660 ไปที่เพจดัชนีเพื่อให้พวกเขาสามารถดูรายชื่อของการโพสต์อีกครั้ง 698 00:42:07,660 --> 00:42:09,620 ลองว่า 699 00:42:09,620 --> 00:42:15,160 ฉันจะพูดว่า "แบรนดอน" 700 00:42:15,160 --> 00:42:18,140 แล้วส่งโพสต์และถ้าทุกอย่างเป็นไปด้วยดี 701 00:42:18,140 --> 00:42:21,390 ที่คุณสามารถเห็นมันเปลี่ยนเส้นทางฉันไปที่หน้าดัชนี 702 00:42:21,390 --> 00:42:24,140 และถ้าผมเลื่อนไปด้านล่างเรามีการโพสต์แทรกใหม่ 703 00:42:24,140 --> 00:42:26,430 เย้! 704 00:42:26,430 --> 00:42:28,430 ใช่คำถาม 705 00:42:28,430 --> 00:42:31,760 >> [นักศึกษา] สิ่งที่ถ้าคุณได้เข้ามาสิ่งเดียวที่แน่นอน 706 00:42:31,760 --> 00:42:33,380 คุณป้อนมาก่อนหรือไม่ 707 00:42:33,380 --> 00:42:36,950 ที่ไม่ได้ตรวจสอบเพื่อให้แน่ใจว่าคุณได้ไม่ซ้ำ 708 00:42:36,950 --> 00:42:38,810 ส่งเดียวกันได้หรือไม่ 709 00:42:38,810 --> 00:42:41,660 เป็นค่าเริ่มต้นไม่เพราะโดยค่าเริ่มต้น - 710 00:42:41,660 --> 00:42:46,470 เสียใจคำถามคือถ้าคุณใส่ในข้อมูลเดียวกันในรูปแบบที่แน่นอน 711 00:42:46,470 --> 00:42:50,180 และส่งที่จะช่วยให้คุณสามารถแทรกวัตถ​​ุที่ซ้ำกัน 712 00:42:50,180 --> 00:42:52,550 ซ้ำรายการหลัก? 713 00:42:52,550 --> 00:42:54,070 ตอนนี้ใช่มันจะช่วยให้คุณทำอย่างนั้น 714 00:42:54,070 --> 00:42:58,860 เพราะอยู่ในฐานข้อมูลก็ถูกต้องสมบูรณ์จะมีแถวที่ซ้ำกันอย่างสมบูรณ์ 715 00:42:58,860 --> 00:43:02,260 แต่ถ้าที่เป็นกังวลแล้วคุณสามารถเพิ่มการตรวจสอบตัวอย่างเช่น 716 00:43:02,260 --> 00:43:06,430 เพื่อให้แน่ใจว่าถ้าตรงนี้เป็นเช่นเดียวกับสิ่งที่มีอยู่แล้ว 717 00:43:06,430 --> 00:43:08,720 แล้วพูดว่ามันเป็นวัตถุที่ไม่ถูกต้อง 718 00:43:08,720 --> 00:43:11,200 แล้วคุณยังสามารถระบุข้อผิดพลาดของคุณ 719 00:43:11,200 --> 00:43:14,390 และพูดว่า "ไม่ถูกต้องเพราะมีอยู่แล้ว" หรือสิ่งที่ต้องการที่ 720 00:43:14,390 --> 00:43:22,420 แต่ในกรณีนี้ผมก็สามารถสร้างสิ่งที่ซ้ำกัน 721 00:43:22,420 --> 00:43:26,010 ตอนนี้ขอลองและเพิ่มการตรวจสอบบางอย่าง 722 00:43:26,010 --> 00:43:30,400 ปัญหานี้ได้ในขณะนี้คือ 723 00:43:30,400 --> 00:43:34,220 แท้จริงฉันจะส่งโพสต์ที่ว่างเปล่าอย่างสมบูรณ์ 724 00:43:34,220 --> 00:43:37,500 ฉันสามารถคลิกที่ปุ่มนี้ในขณะนี้และมีเราไป 725 00:43:37,500 --> 00:43:40,290 คุณไม่สามารถจริงๆเห็น แต่สายพิเศษที่นี่ 726 00:43:40,290 --> 00:43:43,830 แสดงให้เห็นว่าแท้จริงฉันมีโพสต์ใหม่ 727 00:43:43,830 --> 00:43:46,050 มันก็มีนักเขียนที่ว่างเปล่าและร่างกายว่างเปล่า 728 00:43:46,050 --> 00:43:48,630 และเราไม่ต้องการที่จะช่วยให้คนที่จะทำเช่นนั้น 729 00:43:48,630 --> 00:43:52,550 ซึ่งเป็นที่ที่การตรวจสอบเข้ามา 730 00:43:52,550 --> 00:43:57,540 >> ฉันสามารถไปกับวัตถุรูปแบบของฉัน 731 00:43:57,540 --> 00:43:59,530 และตอนนี้ฉันสามารถเพิ่มฟังก์ชั่นใหม่ที่ระบุ 732 00:43:59,530 --> 00:44:02,000 กฎการตรวจสอบสิ่งที่ฉันควรจะเพิ่มในรุ่นนี้ 733 00:44:02,000 --> 00:44:06,840 เพื่อให้แน่ใจว่ามันถูกต้องหรือเพื่อระบุสิ่งที่ไม่ได้หมายความว่าจะโพสต์ที่ถูกต้อง 734 00:44:06,840 --> 00:44:10,210 และผมอยากจะบอกว่ามันเป็นเพียงการโพสต์ที่ถูกต้องเมื่อทั้งสองเขียนและร่างกาย 735 00:44:10,210 --> 00:44:15,150 ไม่ว่างและนี่คือวิธีที่คุณทำมันใน Kohana 736 00:44:15,150 --> 00:44:18,750 คุณสร้างฟังก์ชั่นใหม่ที่เรียกว่า "กฎ" 737 00:44:18,750 --> 00:44:20,210 แล้วคุณโดยทั่วไปกลับแถวที่สมาคม 738 00:44:20,210 --> 00:44:24,230 ที่กำหนดกฎการตรวจสอบสำหรับวัตถุนี้ 739 00:44:24,230 --> 00:44:27,530 เรากำลังจะกลับอาร์เรย์และจากนั้นสิ่งที่เรากำลังจะทำคือ 740 00:44:27,530 --> 00:44:32,820 พูดว่า "ผู้เขียน" มันจะไปอาร์เรย์ 741 00:44:32,820 --> 00:44:37,720 ซึ่งจะไปแถวอื่นเรียกว่า "ไม่ว่าง". 742 00:44:37,720 --> 00:44:41,480 แล้วฉันจะพูดว่า "ร่างกาย". 743 00:44:50,980 --> 00:44:54,120 เอาล่ะและไวยากรณ์สำหรับนี้และโครงสร้างนี้ 744 00:44:54,120 --> 00:44:56,530 อาจจะดูยุ่งยากน้อยและมีความซับซ้อนน้อย 745 00:44:56,530 --> 00:44:59,330 ถ้าคุณอ่านเอกสารก็ตรงไปตรงสวยที่จะคิดออก 746 00:44:59,330 --> 00:45:02,500 แต่เป็นหลักนี้เป็นสิ่งที่คุณต้องทำเพื่อระบุ 747 00:45:02,500 --> 00:45:04,130 บางกฎการตรวจสอบและมีจำนวนมากของกฎระเบียบที่แตกต่างกัน 748 00:45:04,130 --> 00:45:06,810 Kohana ที่จะให้คุณฟรีเช่นคุณสามารถเพิ่มกฎระเบียบที่จะบอกว่า 749 00:45:06,810 --> 00:45:08,410 มันต้องมีอย่างน้อยระยะเวลานี้ 750 00:45:08,410 --> 00:45:11,800 บางทีมันอาจจะเป็นตัวเลขได้ บางทีมันอาจจะเป็นตัวเลขอัลฟามี 751 00:45:11,800 --> 00:45:14,410 บางทีมันอาจจะเป็นระยะเวลาที่มากที่สุดนี้เป็นต้นและอื่น ๆ มี 752 00:45:14,410 --> 00:45:17,730 มีจำนวนมากของกฎระเบียบที่แตกต่างกันที่ Kohana ให้คุณมี 753 00:45:17,730 --> 00:45:19,610 และคุณสามารถไปที่เว็บไซต์ของพวกเขามองไปที่เอกสาร 754 00:45:19,610 --> 00:45:23,150 และคุณสามารถเห็นทุกสิ่งที่แตกต่างกันที่คุณสามารถทำได้ 755 00:45:23,150 --> 00:45:25,650 >> แต่นี้คือทั้งหมดที่ฉันต้องทำ 756 00:45:25,650 --> 00:45:30,490 และตอนนี้เรามาดูสิ่งที่เกิดขึ้น 757 00:45:30,490 --> 00:45:34,060 ถ้าผมส่งโพสต์ที่ว่างเปล่า 758 00:45:34,060 --> 00:45:36,960 สิ่งที่จะเกิดขึ้นได้อย่างไร โอ้ไม่ฉันได้รับข้อผิดพลาด 759 00:45:36,960 --> 00:45:39,440 ฉันได้รับการยกเว้นการตรวจสอบ 760 00:45:39,440 --> 00:45:41,070 ดีก็เป็นสิ่งที่ดี 761 00:45:41,070 --> 00:45:43,200 มันบอกว่ารูปแบบของฉันคือการที่ไม่ถูกต้อง 762 00:45:43,200 --> 00:45:45,780 แต่ฉันไม่ต้องการที่จะแสดงข้อยกเว้น 763 00:45:45,780 --> 00:45:48,720 ให้กับผู้ใช้ของฉันเมื่อพวกเขาพยายามที่จะส่งสิ่งที่ไม่ถูกต้องใช่ไหม 764 00:45:48,720 --> 00:45:51,560 ผมต้องการที่จะให้พวกเขามีการจัดเรียงของข้อผิดพลาดบางอย่างเป็นมิตร 765 00:45:51,560 --> 00:45:53,610 เมื่ออะไรผิดพลาด 766 00:45:53,610 --> 00:46:01,830 สิ่งที่เรากำลังจะทำคือการที่เรากำลังจะ 767 00:46:01,830 --> 00:46:04,490 ห่อทุกอย่างในวงลองจับ 768 00:46:04,490 --> 00:46:06,750 จริงๆแล้วผมคิดว่านี่เป็นสิ่งที่คุณยังไม่ได้เรียนยัง 769 00:46:06,750 --> 00:46:10,820 ใน CS50 เพราะ C, การเขียนโปรแกรมภาษาซี 770 00:46:10,820 --> 00:46:14,000 ไม่ได้มีข้อยกเว้น แต่เกือบทุกภาษาอื่น ๆ เดียว 771 00:46:14,000 --> 00:46:16,700 มีข้อยกเว้นดังนั้นจริงๆสั้นจริงๆ 772 00:46:16,700 --> 00:46:19,430 ข้อยกเว้นคือสิ่งที่ชิ้นส่วนของรหัสสามารถ 773 00:46:19,430 --> 00:46:21,430 โยนข้อยกเว้นเมื่ออะไรผิดพลาด 774 00:46:21,430 --> 00:46:23,410 แต่แล้วบางทีบางชิ้นอื่น ๆ ของรหัสที่สูงขึ้น 775 00:46:23,410 --> 00:46:25,810 สามารถจับข้อยกเว้นที่และทำอะไรกับมัน 776 00:46:25,810 --> 00:46:27,710 >> ตัวอย่างเช่นในกรณีนี้ 777 00:46:27,710 --> 00:46:29,940 ชิ้นส่วนของรหัสที่พยายามที่จะบันทึกแบบ 778 00:46:29,940 --> 00:46:33,170 มันตรวจสอบรูปแบบและถ้ามันบอกว่า "เอาล่ะแบบนี้ไม่ถูกต้อง" 779 00:46:33,170 --> 00:46:36,150 ก็จะโยนข้อยกเว้นและนี่คือชนิดของเทียบเท่ากับ 780 00:46:36,150 --> 00:46:39,870 ใน C คุณอาจกลับ -1 หรือสิ่งที่ต้องการที่ 781 00:46:39,870 --> 00:46:42,320 แล้วสำหรับผมที่ฟังก์ชั่นนี้รหัสของฉัน 782 00:46:42,320 --> 00:46:46,310 ในระดับที่สูงที่ฉันสามารถลองและจับข้อยกเว้นว่า 783 00:46:46,310 --> 00:46:49,330 และโดยทั่วไปพูดว่า "เอาล่ะถ้าผมจับข้อยกเว้นสิ่งที่ฉันจะทำอย่างไร" 784 00:46:49,330 --> 00:46:51,570 หรือฉันสามารถเลือกที่จะไม่จับข้อยกเว้นที่และปล่อยให้คนสูงขึ้น 785 00:46:51,570 --> 00:46:54,400 จับข้อยกเว้นหรือถ้าไม่มีใครจับมัน 786 00:46:54,400 --> 00:46:56,820 แล้วโปรแกรมทั้งหมดเกิดปัญหาและบอกว่า 787 00:46:56,820 --> 00:46:59,170 "อะไรบางอย่างผิดพลาดไปและผมก็ไม่สามารถจัดการกับมัน." 788 00:46:59,170 --> 00:47:04,490 >> แต่สิ่งที่เราทำคือคุณตัดชิ้นส่วนของรหัสในบล็อกลอง 789 00:47:04,490 --> 00:47:09,030 แล้วคุณจะยังเพิ่มสิ่งที่เรียกว่าบล็อกจับ 790 00:47:09,030 --> 00:47:17,300 ซึ่งเป็นประเภทของรหัสที่จะพยายามและจับข้อยกเว้นที่อาจเกิดขึ้น 791 00:47:17,300 --> 00:47:20,430 และอื่น ๆ ถ้าผมจับข้อยกเว้นนี้โดยเฉพาะ 792 00:47:20,430 --> 00:47:23,110 หรือการทำให้ข้อยกเว้นแล้วสิ่งที่ผมจะทำคือ 793 00:47:23,110 --> 00:47:31,210 ฉันจะตั้งข้อผิดพลาด - ผมคิดว่าเป็นวิธีที่ฉันทำมัน - 794 00:47:31,210 --> 00:47:35,370 และผมจะตั้งข้อผิดพลาดไปยังวัตถุบางอย่าง 795 00:47:35,370 --> 00:47:40,920 และแล้วสิ่งที่ผมจะทำคือถ้ามันกระทบข้อยกเว้นนี้ 796 00:47:40,920 --> 00:47:43,090 ก็จะไม่เปลี่ยนเส้นทางและถ้ามันไม่ได้เปลี่ยนเส้นทาง 797 00:47:43,090 --> 00:47:46,160 มันจะออกมาจากถ้าบล็อกมา 798 00:47:46,160 --> 00:47:49,920 และตีบล็อกนี้ / ใหม่ซึ่งต้องการที่ฉันต้องการทำ 799 00:47:49,920 --> 00:47:53,190 หากมีข้อผิดพลาดแล้วผมต้องการที่จะกลับไปที่รูปแบบ 800 00:47:53,190 --> 00:47:55,100 และแสดงข้อผิดพลาดที่ 801 00:47:55,100 --> 00:48:00,780 ตอนนี้สิ่งที่ฉันต้องการจะทำคือผมต้องการที่จะผ่านในข้อผิดพลาดที่ 802 00:48:00,780 --> 00:48:07,010 ในมุมมองของ 803 00:48:07,010 --> 00:48:10,360 เอาล่ะฉันคิดว่าฉันมีมุมมองที่ถูกต้องที่นี่ 804 00:48:10,360 --> 00:48:14,660 และโดยทั่วไปฉันต้องการที่จะแสดงข้อผิดพลาดเหล่านั้นถ้าพวกเขาอยู่ 805 00:48:14,660 --> 00:48:19,740 ก่อนที่ผมจะเขียน HTML สำหรับว่าฉันจะได้อย่างรวดเร็วจริงๆ 806 00:48:19,740 --> 00:48:21,720 แสดงให้คุณเห็นสิ่งที่โครงสร้างของข้อผิดพลาดนี้ลักษณะตัวแปรต้องการ 807 00:48:21,720 --> 00:48:23,080 และนี่คือการปฏิบัติที่ดีในทั่วไป 808 00:48:23,080 --> 00:48:25,070 หลายครั้งที่คุณจะได้รับสิ่งที่กลับมาจากวิธีการบางอย่าง 809 00:48:25,070 --> 00:48:27,250 ฟังก์ชั่นบางอย่างในกรอบเว็บ 810 00:48:27,250 --> 00:48:29,410 และคุณไม่ทราบว่าตัวแปรที่มีลักษณะเหมือน 811 00:48:29,410 --> 00:48:31,210 เพื่อให้คุณไม่ทราบวิธีการทำงานกับมัน 812 00:48:31,210 --> 00:48:37,790 ผมจะใช้วิธีการพิมพ์ r เพื่อพื้นพิมพ์ออกมา 813 00:48:37,790 --> 00:48:41,100 >> และในขณะที่คุณสามารถเห็นมันบอกฉันว่ามันเป็นแถวร่วม 814 00:48:41,100 --> 00:48:44,880 และคุณมีความสำคัญที่ผู้เขียนชี้ไปยังสตริงนี้ 815 00:48:44,880 --> 00:48:47,050 ผู้เขียนจะต้องไม่ว่างเปล่าและที่สำคัญอื่นของร่างกาย 816 00:48:47,050 --> 00:48:49,680 ชี้ไปยังสตริงอื่นของร่างกายต้องไม่ว่างเปล่า 817 00:48:49,680 --> 00:48:52,130 ฉันชอบเป็นไรเย็น 818 00:48:52,130 --> 00:48:56,230 แล้วฉันสามารถย้ำผ่านแถวและพิมพ์ออกทุกข้อความเดียว 819 00:48:56,230 --> 00:49:02,150 มันเป็นพื้นเช่นอาเรย์ที่มีพวงของข้อความ 820 00:49:02,150 --> 00:49:13,500 สิ่งที่ผมจะทำคือ "ถ้าข้อผิดพลาด" 821 00:49:13,500 --> 00:49:17,140 และฉันจะสร้างรายการเรียงลำดับ 822 00:49:17,140 --> 00:49:20,860 และฉันจะย้ำถึงข้อผิดพลาดทั้งหมด 823 00:49:33,730 --> 00:49:38,710 และนี่และตอนนี้ฉันจะลองส่งนี้อีกครั้ง 824 00:49:38,710 --> 00:49:41,200 และขอดูสิ่งที่เราได้รับ 825 00:49:41,200 --> 00:49:45,370 ตอนนี้เราได้รับรายชื่อนี้ดีข้อผิดพลาด 826 00:49:45,370 --> 00:49:48,630 และนี้ยังคงเป็นที่น่าเกลียดสวย แต่นี้เห็นได้ชัดว่าสามารถจัดรูปแบบให้ดูดี 827 00:49:48,630 --> 00:49:51,620 แต่แนวคิดพื้นฐานเป็นเพียงในไม่กี่บรรทัดของรหัส 828 00:49:51,620 --> 00:49:53,720 เราสามารถที่จะตรวจสอบรูปแบบของเรา 829 00:49:53,720 --> 00:49:56,510 ให้แน่ใจว่าบางเขตข้อมูลไม่ว่างเปล่า 830 00:49:56,510 --> 00:49:59,740 และหากสิ่งที่ผิดพลาดไปแล้วกลับการจัดเรียงของข้อผิดพลาดบางอย่าง 831 00:49:59,740 --> 00:50:01,760 จากนั้นผมก็จะนำเสนอกลับไปยังผู้ 832 00:50:01,760 --> 00:50:03,910 นอกจากนี้คุณยังสามารถปรับแต่งการตรวจสอบของคุณ 833 00:50:03,910 --> 00:50:07,590 เพื่อให้คุณจริงจะมีข้อผิดพลาด 834 00:50:07,590 --> 00:50:09,620 ที่มีมากขึ้นโดยเฉพาะการใช้งานหรือสิ่งที่ต้องการของคุณ 835 00:50:09,620 --> 00:50:14,600 สิ่งที่อยู่โดยทั่วไปที่ปรับแต่งได้ 836 00:50:14,600 --> 00:50:17,150 >> แต่น่าเสียดายที่เรากำลังวิ่งออกมาจากเวลา 837 00:50:17,150 --> 00:50:20,040 ดังนั้นฉันจะต้องถูกตัดออกจากเซสชั่นการเข้ารหัสอยู่ที่นี่ 838 00:50:20,040 --> 00:50:22,980 มีพวงของคุณสมบัติอื่น ๆ ที่ผมต้องการที่จะแสดงให้เห็นถึงสำหรับคุณ 839 00:50:22,980 --> 00:50:25,650 ในตัวอย่างนี้ 840 00:50:25,650 --> 00:50:27,620 ตัวอย่างเช่นคุณสามารถเพิ่มแม่แบบในเว็บไซต์ของคุณ 841 00:50:27,620 --> 00:50:31,110 ดังนั้นอาจจะมีการจัดเรียงบางส่วนของรหัส HTML ที่คุณต้องการใช้ 842 00:50:31,110 --> 00:50:35,190 ทุกหน้าเดียวในเว็บไซต์ของคุณและแทนวางที่ 843 00:50:35,190 --> 00:50:40,630 ในมุมมองของไฟล์ทุกเดียวที่คุณมีและที่เห็นได้ชัดว่าจะมีการปฏิบัติที่ไม่ดี 844 00:50:40,630 --> 00:50:43,020 คุณโดยทั่วไปสามารถกำหนดแม่แบบเหล่านี้ 845 00:50:43,020 --> 00:50:46,660 และจากนั้นในการควบคุมของคุณพูดว่า "เอาล่ะฉันใช้แม่แบบนี้." 846 00:50:46,660 --> 00:50:50,130 "ได้ทุกมุมมองของฉันใช้แม่แบบนี้." 847 00:50:50,130 --> 00:50:52,470 และสิ่งสุดท้ายที่ฉันต้องการที่จะแสดงให้คุณได้เป็นอย่างดี 848 00:50:52,470 --> 00:50:57,800 ที่เราไม่ได้มีเวลาสำหรับเป็นสคริปต์ข้ามไซต์ 849 00:50:57,800 --> 00:51:01,430 และโดยทั่วไปผมคิดว่าพวกคุณอาจจะได้เห็นใน CS50 - 850 00:51:01,430 --> 00:51:03,770 ผมคิดว่าเดวิดลันอาจจะพูดคุยเกี่ยวกับวิธีการที่คุณมักจะสามารถฉีด 851 00:51:03,770 --> 00:51:08,040 รหัสจาวาสคริปต์เป็น - มีคุณพูดคุยเกี่ยวกับเรื่องนี้ 852 00:51:08,040 --> 00:51:10,220 บางที? อาจจะไม่? 853 00:51:10,220 --> 00:51:12,670 >> แต่หลายครั้งที่คุณสามารถฉีดรหัสจาวาสคริปต์ที่เป็นอันตราย 854 00:51:12,670 --> 00:51:15,630 ลงในฐานข้อมูลของใครบางคนและถ้าพวกเขาไม่ได้หลบหนีที่ถูกต้อง 855 00:51:15,630 --> 00:51:18,280 แล้วเมื่อพวกเขานำเสนอข้อมูลที่กลับมาให้กับผู้ใช้ 856 00:51:18,280 --> 00:51:21,310 แล้วมันอาจจะเรียงลำดับของรหัสจาวาสคริปต์แบบสุ่มที่คุณไม่ต้องการที่จะเกิดขึ้น 857 00:51:21,310 --> 00:51:23,050 และผมจะแสดงให้เห็นถึงวิธีการที่คุณควรจะทำว่าภายใน Kohana 858 00:51:23,050 --> 00:51:25,380 เป็นจริงจริงๆเรื่องง่าย 859 00:51:25,380 --> 00:51:31,920 ฉันจะทำมันได้ในขณะนี้ใน 2 วินาทีอย่างแท้จริง 860 00:51:31,920 --> 00:51:34,560 สิ่งที่คุณต้องทำคือการตัดพื้นสิ่งเหล่านี้ 861 00:51:34,560 --> 00:51:46,920 ในสิ่งที่เรียกว่าหน่วยงาน HTML นี้ 862 00:51:46,920 --> 00:51:51,180 และที่จะหลบหนีทุกตัวอักษรอย่างถูกต้อง 863 00:51:51,180 --> 00:51:54,730 และให้แน่ใจว่าคุณไม่ได้รับปัญหานี้ 864 00:51:54,730 --> 00:51:57,220 [นักศึกษา] คุณสะกดการทดสอบครั้งแรกไม่ถูกต้อง 865 00:51:57,220 --> 00:52:01,030 [แบรนดอนหลิว] โอ้โอ๊ะ 866 00:52:01,030 --> 00:52:06,420 >> เอาล่ะนั่นคือทั้งหมดที่ผมจะร่วมกับคุณสำหรับวันนี้ 867 00:52:06,420 --> 00:52:09,930 สไลด์เหล่านี้จะได้รับการโพสต์ แต่เหล่านี้มักจะ 868 00:52:09,930 --> 00:52:13,900 ทรัพยากรเดียวที่คุณควรจะต้องได้รับการเริ่มต้นกับ Kohana 869 00:52:13,900 --> 00:52:16,770 คุณสามารถไปที่เว็บไซต์ พวกเขามีคู่มือการใช้งานและพวกเขายังมี API สำรวจ 870 00:52:16,770 --> 00:52:20,630 เราสามารถสำรวจทั้งหมดหน้าที่แตกต่างกันและฟังก์ชั่นช่วยพวกเขาได้สำหรับคุณ 871 00:52:20,630 --> 00:52:22,070 พวกเขามักมีข้อมูลเพียงพอในเว็บไซต์ 872 00:52:22,070 --> 00:52:25,310 ที่คุณสามารถใช้ในการเริ่มต้นและได้รับไปกับ Kohana 873 00:52:25,310 --> 00:52:30,840 มีบทเรียนที่ไม่มากผมคิดว่าสำหรับ Kohana นอก 874 00:52:30,840 --> 00:52:33,880 สิ่งที่พวกเขามีในเว็บไซต์ของที่นี่จึงน่าจะเป็นทางออกที่ดีที่สุดของคุณ 875 00:52:33,880 --> 00:52:35,600 แต่ถ้าคุณต้องการที่จะไปกับกรอบเว็บ 876 00:52:35,600 --> 00:52:37,120 และคุณไม่ต้องการให้มีการรับภาษาใหม่ 877 00:52:37,120 --> 00:52:39,780 และคุณต้องการบางสิ่งบางอย่างที่ค่อนข้างมีน้ำหนักเบาและมีเส้นโค้งการเรียนรู้ได้ง่าย 878 00:52:39,780 --> 00:52:41,570 แน่นอนผมจะแนะนำ Kohana 879 00:52:41,570 --> 00:52:44,040 นั่นอาจเป็นข้อเสนอที่ดีที่สุดสำหรับที่ 880 00:52:44,040 --> 00:52:46,830 สิ่งที่ตลก แต่เป็นถ้าเราใช้ Ruby on Rails, 881 00:52:46,830 --> 00:52:48,550 เราจะได้ทำซ้ำสิ่งที่เราเพิ่งได้ 882 00:52:48,550 --> 00:52:51,430 และอาจจะมากขึ้นในภายใต้ 3 นาที 883 00:52:51,430 --> 00:52:54,710 ไม่มีเรื่องตลก แต่การเรียนรู้ Ruby on Rails จะใช้เวลานานมาก 884 00:52:54,710 --> 00:52:56,780 กว่ามันจะใช้เวลาในการเรียนรู้ Kohana 885 00:52:56,780 --> 00:52:58,840 มันเป็นพื้นทางเลือกของคุณในสิ่งที่คุณต้องการที่จะเลือกที่จะเรียนรู้ 886 00:52:58,840 --> 00:53:01,260 แต่ถ้าคุณต้องการที่จะได้รับขึ้นและทำงานได้อย่างรวดเร็ว 887 00:53:01,260 --> 00:53:03,870 Kohana แน่นอนเป็นทางเลือกที่ดีมาก 888 00:53:03,870 --> 00:53:06,730 >> คำถามใด ๆ ที่ผ่านมาก่อนที่เราจะจบ ใช่ 889 00:53:06,730 --> 00:53:08,020 [นักศึกษา] วิธีที่เราจะบูรณาการที่ 890 00:53:08,020 --> 00:53:13,120 ในกรอบ CSS เหมือนที่คุณกำลังใช้เมื่อคุณได้รับการสอน? 891 00:53:13,120 --> 00:53:16,700 คำถามคือวิธีการที่เราจะบูรณาการกับกรอบ CSS? 892 00:53:16,700 --> 00:53:18,740 สิ่งที่เราอาจจะทำคือเราอาจจะรวมถึง 893 00:53:18,740 --> 00:53:21,090 โฟลเดอร์ใหม่ที่เราจะถ่ายโอนข้อมูลทุกไฟล์ CSS ของเรา 894 00:53:21,090 --> 00:53:23,010 แล้วเรายังต้องการเพิ่มแม่แบบใหม่ 895 00:53:23,010 --> 00:53:26,090 ในแม่แบบที่เราต้องการรวมถึงผู้ที่ CSS ไฟล์ 896 00:53:26,090 --> 00:53:28,410 เพื่อให้แน่ใจว่าพวกเขากำลังมีการอ้างอิงในทุกหน้าเดียว 897 00:53:28,410 --> 00:53:32,220 และจากนั้นเมื่อคุณจริงเขียน HTML, 898 00:53:32,220 --> 00:53:34,010 คุณเพียงแค่เพิ่มการเรียนที่เหมาะสมและ whatnot, 899 00:53:34,010 --> 00:53:36,100 และตัวอย่างเช่นเมื่อคุณกำลังใช้สิ่งที่ต้องการรูปแบบ 900 00:53:36,100 --> 00:53:40,710 ฟังก์ชั่นช่วยคุณสามารถเพิ่มค่าเพิ่มเติมในภายหลัง 901 00:53:40,710 --> 00:53:42,830 เพื่อระบุสิ่งที่เรียนคุณต้องการที่จะยึดติดอยู่กับสิ่งต่างๆ 902 00:53:42,830 --> 00:53:47,820 เพื่อพวกเขาจะได้รูปแบบได้อย่างถูกต้องและที่เป็นพื้นวิธีการที่คุณจะไป 903 00:53:47,820 --> 00:53:50,100 >> คำถามใด ๆ อื่น ๆ 904 00:53:50,100 --> 00:53:52,090 น่ากลัว 905 00:53:52,090 --> 00:53:58,540 ขอขอบคุณสำหรับเวลาของคุณและขอขอบคุณสำหรับการมา 906 00:53:58,540 --> 00:54:05,170 ฉันไม่ได้จะเพิ่มมากอื่น 907 00:54:05,170 --> 00:54:08,560 แต่สิ่งที่รวดเร็วจริงๆที่ 1 คือเราไม่ได้มีการเชื่อมโยง 908 00:54:08,560 --> 00:54:12,590 ในรูปแบบ 909 00:54:12,590 --> 00:54:14,310 โง่จริงๆ 910 00:54:14,310 --> 00:54:20,110 ขอเพิ่ม - จริงในมุมมองบล็อกดัชนี 911 00:54:20,110 --> 00:54:23,890 ขออย่างรวดเร็วจริงๆเพิ่มการเชื่อมโยงที่จะไปยังหน้าใหม่ที่ 912 00:54:23,890 --> 00:54:26,770 หน้าเว็บที่เราสามารถแทรกโพสต์ใหม่ 913 00:54:26,770 --> 00:54:29,950 เรากำลังจะทำนี้ 914 00:54:29,950 --> 00:54:34,020 มีอะไรที่ดีที่จะมีในกลุ่มนี้ทั้ง HTM​​L หน้าที่ผู้ช่วย 915 00:54:34,020 --> 00:54:37,090 ซึ่งทำสิ่งที่แตกต่างกันสำหรับคุณเพื่อให้คุณได้เห็นหน่วยงาน 916 00:54:37,090 --> 00:54:41,980 ทำงานที่นี่ แต่พวกเขายังมีฟังก์ชั่นที่เรียกว่า "สมอ" 917 00:54:41,980 --> 00:54:45,400 ซึ่งคุณสามารถพิมพ์ในบล็อก / ใหม่ 918 00:54:45,400 --> 00:54:49,550 และพูดว่า "โพสต์บล็อกใหม่." 919 00:54:49,550 --> 00:54:51,850 และมันจะสร้างการเชื่อมโยงสำหรับคุณที่ 920 00:54:51,850 --> 00:54:54,120 และนี้ดูเหมือนว่าจริงๆจิ๊บจ๊อยที่จะทำ แต่นี้เป็นสิ่งที่ดี 921 00:54:54,120 --> 00:54:58,720 เพราะสมมติว่าคุณกำลังจะย้ายเว็บไซต์ของคุณจาก 1 โดเมนไปยังอีก 922 00:54:58,720 --> 00:55:01,390 และถ้าคุณเพิ่งเขียนออก URL ที่ตัวเอง 923 00:55:01,390 --> 00:55:04,350 แล้วคุณจะต้องเปลี่ยน URL ที่ 924 00:55:04,350 --> 00:55:06,850 หรือบางทีคุณอาจย้ายจาก 1 โฟลเดอร์ย่อยกับโฟลเดอร์ย่อยอื่น 925 00:55:06,850 --> 00:55:08,790 คุณจะต้องเปลี่ยน URL ทั้งหมดที่ตัวเอง 926 00:55:08,790 --> 00:55:12,180 และที่ว่าไม่สนุก 927 00:55:12,180 --> 00:55:14,510 คุณสามารถใช้สมอนี้ที่นี่ 928 00:55:14,510 --> 00:55:18,950 และคุณสามารถเปลี่ยนโดเมนหรือคำนำหน้าโฟลเดอร์ย่อย 929 00:55:18,950 --> 00:55:20,640 ในการตั้งค่าครั้งเดียว 930 00:55:20,640 --> 00:55:22,980 และจากนั้นก็จะนำไปใช้ทุกที่และนี่คืออีกครั้ง 931 00:55:22,980 --> 00:55:26,930 เป็นตัวอย่างที่ดีของการไม่ทำซ้ำตัวเองแห้งรหัสของคุณออก 932 00:55:26,930 --> 00:55:30,370 ไม่ว่าคุณจะทำซ้ำตัวเองและพยายามดึงในการเรียงลำดับของแฟ้มการกำหนดค่าบางอย่าง 933 00:55:30,370 --> 00:55:34,160 หรือฟังก์ชั่นที่แตกต่างกันและมีการจัดการที่มันสำหรับคุณ 934 00:55:34,160 --> 00:55:42,930 >> และสิ่งสุดท้ายที่ผมอยากจะแสดงให้คุณเป็น 935 00:55:42,930 --> 00:55:50,250 สมมติว่าเรากำลังกลับไปที่การโพสต์นี้และฉันได้ประกอบด้วยบางเรียงความยาวจริงๆ 936 00:55:50,250 --> 00:55:52,670 แต่ฉันลืมที่จะรวมถึงการเขียนของฉัน 937 00:55:52,670 --> 00:55:55,210 ตอนนี้เมื่อฉันคลิกที่ "ส่งโพสต์" 938 00:55:55,210 --> 00:55:57,270 ฉันเพียงแค่สูญเสียทุกอย่าง 939 00:55:57,270 --> 00:56:00,000 No! เศร้าจริงๆ 940 00:56:00,000 --> 00:56:03,870 ดังนั้นวิธีที่คุณจัดการกับที่? 941 00:56:03,870 --> 00:56:06,070 นี่คือสิ่งที่เราทำ 942 00:56:06,070 --> 00:56:09,340 สิ่งที่เราทำที่นี่สำหรับฟังก์ชั่นเหล่านี้พื้นที่อินพุตและพื้นที่ข้อความ 943 00:56:09,340 --> 00:56:12,700 ถ้าเรารวมถึงพารามิเตอร์ที่สองแล้วค่าของพารามิเตอร์ที่สองที่ 944 00:56:12,700 --> 00:56:16,620 เป็นไปได้สิ่งที่เขตข้อมูลจะถูกบรรจุครั้งแรกกับ 945 00:56:16,620 --> 00:56:23,570 สิ่งที่เราจะทำคือการควบคุมในบล็อกของเรา 946 00:56:23,570 --> 00:56:25,360 เราสามารถผูกตัวแปรอื่น 947 00:56:25,360 --> 00:56:27,050 เรียกว่า "ค่า" อาจจะ 948 00:56:27,050 --> 00:56:30,620 และผ่านในอาร์เรย์การโพสต์อย่างแท้จริง 949 00:56:30,620 --> 00:56:32,620 ซึ่งหมายความว่าหากการตรวจสอบล้มเหลว 950 00:56:32,620 --> 00:56:36,570 ส่งผ่านไปยังอาร์เรย์ฉันโพสต์ที่ผมส่งจากคำขอที่ผ่านมา 951 00:56:36,570 --> 00:56:38,420 และวิธีการที่ฉันสามารถใช้ค่าจากการส่งผ่านของฉัน 952 00:56:38,420 --> 00:56:44,540 ที่จะเพิ่มจำนวนประชากรของฟิลด์ 953 00:56:44,540 --> 00:56:49,600 ตอนนี้ฉันสามารถทำสิ่งที่ต้องการค่าเขียน 954 00:56:49,600 --> 00:56:55,180 และค่าของร่างกายและวิธีการที่ตอนนี้ถ้าฉันทำบางสิ่งที่สุ่ม 955 00:56:55,180 --> 00:57:01,490 และคลิก "ส่งโพสต์" จากนั้นก็อยู่ที่นั่น 956 00:57:01,490 --> 00:57:03,830 แต่เรากำลังจะทำงานเป็นปัญหาอื่น 957 00:57:03,830 --> 00:57:07,670 ที่ทำงาน แต่ถ้าผมไปที่หน้าครั้งแรกมาก 958 00:57:07,670 --> 00:57:09,720 มันจะผิดพลาดและที่ว่าเพราะครั้งแรกที่ 959 00:57:09,720 --> 00:57:13,730 เราไปที่หน้าตัวแปรการโพสต์นี้ยังไม่ได้รับการกำหนดไว้ยัง 960 00:57:13,730 --> 00:57:18,170 มันเป็นโมฆะ มันไม่ได้มีอยู่ 961 00:57:18,170 --> 00:57:21,630 >> และสิ่งที่เราอยากจะพูดคือถ้าคีย์นี้มีอยู่แล้ว 962 00:57:21,630 --> 00:57:27,750 แล้วกลับค่าของแถวนี้ 963 00:57:27,750 --> 00:57:30,450 แต่ถ้าคีย์ไม่อยู่แล้วกลับสตริงที่ว่างเปล่า 964 00:57:30,450 --> 00:57:32,150 นั่นคือการทำงานที่เราต้องการที่นี่ 965 00:57:32,150 --> 00:57:34,690 เราต้องการที่จะตรวจสอบว่าที่สำคัญที่มีอยู่ก่อนที่จะพยายามที่จะใช้อาร์เรย์ 966 00:57:34,690 --> 00:57:36,580 และโชคดีที่พอ 967 00:57:36,580 --> 00:57:38,570 Kohana ยังช่วยให้เราฟังก์ชั่นผู้ช่วยที่ 968 00:57:38,570 --> 00:57:41,040 พวกเขามีชุดทั้งหมดนี้ฟังก์ชั่น 969 00:57:41,040 --> 00:57:43,660 ภายใต้ชื่อ ARR, สั้นสำหรับอาร์เรย์ 970 00:57:43,660 --> 00:57:45,800 และพวกเขามีฟังก์ชั่นที่ 1 เรียกว่า "ได้รับ" 971 00:57:45,800 --> 00:57:48,690 และคุณสามารถผ่านในอาร์เรย์ 972 00:57:48,690 --> 00:57:50,740 และคุณสามารถผ่านในชื่อของคีย์ 973 00:57:50,740 --> 00:57:54,330 จากนั้นก็เป็นสิ่งที่จะทำคือมันจะพยายามที่จะได้รับสำคัญที่ 974 00:57:54,330 --> 00:57:56,470 แต่ถ้าที่สำคัญที่ไม่ได้มีอยู่ในอาร์เรย์ 975 00:57:56,470 --> 00:58:00,900 แล้วมันจะกลับว่างเปล่าหรือเรายังสามารถระบุค่าเริ่มต้นผมเชื่อว่า 976 00:58:00,900 --> 00:58:03,500 ซึ่งเป็นสิ่งที่ดี 977 00:58:09,740 --> 00:58:13,150 ตอนนี้ถ้าเราทำสิ่งเดียวกันอีกครั้ง 978 00:58:13,150 --> 00:58:15,970 แล้วคุณจะเห็นในขณะนี้การทำงานครั้งแรกรอบ 979 00:58:15,970 --> 00:58:18,080 และอีกครั้งถ้าเราพิมพ์ลงในบางสิ่งที่สุ่ม 980 00:58:18,080 --> 00:58:23,210 และพยายามส่งแล้วมันอยู่ที่นั่น 981 00:58:23,210 --> 00:58:31,640 >> และผมคิดว่าผมยังสามารถแสดงให้คุณเห็นวิธีการเพิ่มแม่แบบได้อย่างรวดเร็วจริงๆ 982 00:58:31,640 --> 00:58:36,140 เราสามารถทำอะไรที่เป็นครั้งแรกที่เราสามารถเพิ่มมุมมองใหม่ที่เรียกว่า "template.php" 983 00:58:36,140 --> 00:58:38,890 อ่านที่อยู่ในโฟลเดอร์ที่ 984 00:58:38,890 --> 00:58:44,730 และสิ่งที่ผมจะทำคือผมจะพิมพ์ออกมาสิ่งที่เรียกว่า "เนื้อหา" 985 00:58:44,730 --> 00:58:49,130 ซึ่งจะเป็นเนื้อหาหลักของฉัน 986 00:58:49,130 --> 00:58:51,380 และอาจจะที่ด้านล่างสุดฉันจะเพิ่มการพูด 987 00:58:51,380 --> 00:58:53,340 ลิขสิทธิ์ 988 00:58:53,340 --> 00:58:56,150 [ไม่ได้ยินคำถามของนักเรียน] 989 00:58:56,150 --> 00:58:58,050 [แบรนดอนหลิว] อาจจะเป็นแม่แบบพื้นฐานสุดฉันต้องการใช้ 990 00:58:58,050 --> 00:59:02,840 ฉันต้องการที่จะมีโฟลเดอร์ที่มีลิขสิทธิ์ของฉันในทุกหน้าเดียว 991 00:59:02,840 --> 00:59:05,560 และตอนนี้สิ่งที่ผมกำลังจะทำภายในการควบคุมของฉัน 992 00:59:05,560 --> 00:59:07,740 ตอนนี้แทนที่จะพูดว่า "ขยายควบคุม" 993 00:59:07,740 --> 00:59:11,870 ฉันจะพูดว่า "ขยาย Controller_Template" 994 00:59:11,870 --> 00:59:15,890 และตอนนี้แทนที่จะพูดว่า "การตอบสนองของร่างกายเท่ากับมุมมองนี้" 995 00:59:15,890 --> 00:59:24,110 ฉันจะพูดว่า "เนื้อหาแม่แบบนี้ -" 996 00:59:24,110 --> 00:59:27,690 และผมคิดว่า - ฉันจะใส่เครื่องหมายเท่ากับ? 997 00:59:27,690 --> 00:59:32,710 ฉันลืม ใช่ฉันคิดว่าดังนั้น 998 00:59:32,710 --> 00:59:37,710 และตอนนี้ฉันจะตั้งค่าตัวแปรเนื้อหาที่จะเท่ากับมุมมอง 999 00:59:37,710 --> 00:59:40,960 ฉันสามารถทำเช่นเดียวกันที่นี่ 1000 00:59:49,620 --> 00:59:57,170 และตอนนี้ถ้าผมรีเฟรชคุณสามารถเห็นในขณะนี้ลิขสิทธิ์นี้ถูกเพิ่มมี 1001 00:59:57,170 --> 01:00:00,350 และเพียงแค่ทำให้บางการโพสต์แบบสุ่ม 1002 01:00:00,350 --> 01:00:06,760 และจากนั้นอีกครั้งคุณจะเห็นว่าลิขสิทธิ์เป็นที่ด้านล่างสุดของหน้าเว็บ 1003 01:00:06,760 --> 01:00:10,730 >> ใหญ่ นั่นคือทั้งหมดที่ผมอยากจะแสดงให้พวกคุณ 1004 01:00:10,730 --> 01:00:14,970 [เสียงปรบมือ] 1005 01:00:14,970 --> 01:00:18,950 คำถามใด? 1006 01:00:18,950 --> 01:00:21,000 [CS50.TV]