>> [สัมมนา] [Kohana: น้ำหนักเบากรอบ PHP]
[แบรนดอนหลิว] [ฮาร์วาร์มหาวิทยาลัย]
[นี้เป็น CS50.] [CS50.TV]
>> สวัสดีทุกคน ชื่อของฉันคือแบรนดอน
ผมจูเนียร์ที่นี่ที่วิทยาลัยการทำวิทยาการคอมพิวเตอร์และวันนี้เรากำลังจะพูดคุยเกี่ยวกับ
Kohana ซึ่งเป็นกรอบการพัฒนาเว็บ PHP
วันนี้เป็นไปได้การสัมมนาการเข้ารหัสสด
ดังนั้นฉันโดยทั่วไปจะใช้จ่ายประมาณ 5-10 นาทีอธิบายสิ่งที่ Kohana คือ
และแล้วฉันอย่างแท้จริงจะสร้างบล็อกที่ง่ายสุด
สำหรับคุณที่นี่อย่างแท้จริงตั้งแต่เริ่มต้น
เรากำลังจะดาวน์โหลดโค้ดจากเว็บไซต์ Kohana,
และเรากำลังจะเริ่มต้นสร้างบล็อกและหวังว่ามันจะให้คำแนะนำมาก
เพราะคุณอาจจะเห็นบางทีฉันอาจจะทำผิดพลาดบางอย่าง
และคุณจะเห็นฉันกู้คืนจากพวกเขา
หรือคุณจะเห็นกระบวนการคิดของฉันเป็นฉันสร้างผ่านบล็อกนี้
และในขณะเดียวกันคุณยังจะได้รับคุ้นเคยกับกรอบตัวเอง
หวังว่ามันจะให้คำแนะนำการออกกำลังกายมาก
>> ก่อนว่าสิ่งที่เป็นกรอบหรือไม่
หากคุณได้รับการ CS50 จนถึงคุณยังไม่ได้ทำงานจริงๆกับใด ๆ
กรอบยังและสิ่งที่เป็นนี้
คุณอาจจะได้ทำ 1 pset การพัฒนาเว็บอยู่แล้ว
และสมมติว่าคุณยังคงสร้างเว็บไซต์และให้การสร้างเว็บไซต์
คุณจะเริ่มสังเกตเห็นบางสิ่งที่
สิ่งแรกที่คุณจะสังเกตเห็นว่าคุณอาจจะทำสิ่งเดียวกัน
ซ้ำแล้วซ้ำอีกตลอดเวลา
สิ่งที่ต้องการทำความสะอาดป้อนข้อมูลของผู้ใช้
สิ่งที่ต้องการจัดระเบียบไฟล์ของคุณในทางหนึ่ง
สิ่งอื่น ๆ ที่คุณอาจจะยังสังเกตเห็นว่ารหัสของคุณ
อาจจะเริ่มต้นที่จะเป็นมากยุ่งมาก
และคุณอาจจะปล่อยให้มันยุ่งและก็มีช่วงเวลาที่ยากมากในการรักษานั้น
หรือคุณอาจจะเริ่มต้นโครงสร้างรหัสของคุณและทำให้มันเป็นแบบแยกส่วน
ในวิธีการบางอย่างเพื่อให้มันบำรุงรักษามากขึ้น
>> นี่คือที่กรอบเว็บพื้นเข้ามา
คนเหล่านี้ที่ได้สร้างจำนวนมากของเว็บไซต์ที่พวกเขากล่าวว่า
"เราไม่จำเป็นต้องทำซ้ำนี้ทุกครั้งเดียวที่เราสร้างเว็บไซต์."
"ทำไมเราไม่เพียงแค่ทำให้แพคเกจที่ทำสิ่งเหล่านี้สำหรับคุณ
ทุกเวลาเดียวที่คุณต้องการที่จะสร้างเว็บไซต์ได้อย่างไร "
และเพื่อที่ว่าเมื่อคุณทำเว็บไซต์ใหม่
คุณเพียงแค่มุ่งเน้นไปที่สิ่งที่ว่าเว็บไซต์นี้โดยเฉพาะอย่างยิ่งเป็นเรื่องเกี่ยวกับ
คุณไม่จำเป็นต้องทำซ้ำทุกการกำหนดค่าต่างๆ
และการแยกของรหัสและรหัสการเขียนใหม่
ที่คุณมักจะต้องทำเมื่อคุณกำลังทำเว็บไซต์
ความคิดก็คือกรอบช่วยให้คุณสามารถเขียนรหัสในระดับที่สูงขึ้น
โดยไม่ต้องกังวลเกี่ยวกับรายละเอียดในระดับที่ต่ำกว่า
รายละเอียดในระดับที่ต่ำกว่าอาจจะมีสิ่งที่ต้องการ
จัดการกับการป้อนข้อมูลของผู้ใช้ในการทำความสะอาด
นั่นคือสิ่งที่คุณไม่ควรจริงๆต้องกังวลเกี่ยวกับ
คุณควรมุ่งเน้นไปที่สิ่งที่จัดสรรเว็บของคุณเป็นจริงเกี่ยวกับ
มันลดมากรหัสสำเร็จรูป
มันเป็นสถาปัตยกรรมสำหรับโครงการของคุณ
>> นิยมมากที่สุดจะเป็น Model-View-Controller,
ซึ่งฉันจะพูดคุยเกี่ยวกับในครั้งที่สอง
และหลายครั้งกรอบเหล่านี้รวบรวมชุดของขั้นตอนที่
กฎระเบียบและการปฏิบัติที่ดีที่สุดสำหรับคุณที่จะใช้
เพื่อที่ว่าเมื่อคุณนำมาใช้กรอบเว็บ
คุณต้องเขียนรหัสของคุณในวิธีการบางอย่าง
และก็มักจะตกลงกันชุดของหลักการ
โดยชุมชนที่ได้รับการยอมรับโดยทั่วไปจะเป็น
วิธีที่ดีของการเขียนโค้ด
มันทำให้รหัสของคุณบำรุงรักษามากขึ้นใช้งานได้มากขึ้น
อื่น ๆ และอื่น ๆ
และในที่สุดสิ่งที่ผมอยากจะเน้นเกี่ยวกับกรอบ
เมื่อเทียบกับห้องสมุดเป็นความคิดเกี่ยวกับการรักร่วมเพศของการควบคุมนี้และสิ่งที่เป็นนี้
ความแตกต่างระหว่างห้องสมุดและกรอบเป็นที่ที่มีห้องสมุด
คุณยังคงเขียนโปรแกรมหลัก
และคุณกำลังจัดเรียงของการเรียกห้องสมุด
และเรียกร้องให้ห้องสมุดที่จะทำบางสิ่งบางอย่างสำหรับคุณ
ความแตกต่างระหว่างห้องสมุดและกรอบ
คือกรอบเริ่มออกไปกับการควบคุม
และมันจะเรียกรหัสของคุณ
เพื่อให้คุณสามารถคิดว่ามันเป็น - นี่คือเหตุผลว่าทำไมจึงเรียกว่ากรอบ -
กรอบให้กรอบนี้และโครงสร้างรหัสของคุณ
และคุณกรอกข้อมูลลงในหลุมที่
และเรื่องนี้จะกลายเป็นชัดเจนมากขึ้นในการที่สอง
เมื่อคุณเห็นฉันเริ่มต้นในการเขียนโค้ดในบริบทของกรอบ
คุณจะเห็นว่าฉันกรอกในช่องว่างที่
และกรอบเป็นชนิดของการควบคุมทุกชิ้นย้าย
และฉันต้องวางชิ้นในสถานที่ที่เหมาะสม
>> วันนี้เรากำลังจะพูดคุยเกี่ยวกับ Kohana,
ซึ่งเป็นหนึ่งในหลายกรอบ PHP
มีกรอบเว็บและมีคนที่มีในเกือบทุกภาษาเดียว
และฉันเลือกเพราะ Kohana Kohana เป็น arguably
และเป็นที่ยอมรับโดยทั่วไปว่าเป็นวิธีที่ง่ายที่สุดกรอบ PHP ที่จะรับ
มันมีน้ำหนักเบาที่สุด
มีคนอื่น ๆ ออกมีที่มาพร้อมกับหลายคุณสมบัติอื่น ๆ อีกจำนวนมาก
แต่พวกเขามีแนวโน้มที่จะเป็นเรื่องยากมากขึ้นในการรับ
และสุดท้าย Kohana ใช้สถาปัตยกรรม
มันเบาพอที่เราอย่างแท้จริงสามารถสร้างโครงการ
ที่นี่อยู่ตรงหน้าของดวงตาของคุณและคุณสามารถสวยมาก
ทำตามพร้อมสวยได้อย่างง่ายดาย
>> สถาปัตยกรรมคืออะไร
มันหมายถึง Model-View-Controller,
และบางทีถ้าคุณคิดเกี่ยวกับรหัสที่คุณได้รับการเขียนเพื่อให้ห่างไกล
สำหรับบางส่วนของ psets พัฒนาเว็บของคุณ
คุณอาจจะสามารถที่จะเห็นบางส่วนของนี้ แต่โดยปกติเมื่อคุณเริ่มต้นการเขียน
โปรแกรมเว็บที่ซับซ้อนมากขึ้น
แบ่งระหว่างทั้ง 3 ส่วนจะมากขึ้นและชัดเจนมากขึ้น
ฉันวาง MVC การจัดเรียงของที่นี่เป็นกองที่
และบ่อยครั้งที่คุณจะได้ยินคนพูดคุยเกี่ยวกับกองในการพัฒนาเว็บ
และนี้คือการแสดงให้เห็นถึงความคิดที่ว่า
แต่ละชั้นแต่ละองค์ประกอบจริงๆพยายามที่จะติดต่อสื่อสารเท่านั้น
ระหว่าง 2 ส่วนประกอบอื่น ๆ
คนที่เข้าถึงเว็บไซต์ของคุณเป็นลูกค้าหรือเบราว์เซอร์
พวกเขามีปฏิสัมพันธ์กับโปรแกรมของคุณรหัสผ่านมุมมอง
รหัสดูการโต้ตอบกับตัวควบคุม
ควบคุมการโต้ตอบกับรูปแบบที่
และรูปแบบการโต้ตอบกับฐานข้อมูล
และมีการกระโดดในระหว่างที่ไม่มีถ้าคุณเขียนรหัสของคุณอย่างถูกต้อง
>> สิ่งใดที่สิ่งเหล่านี้จะทำอย่างไร
รูปแบบที่เป็นหลักเป็นชิ้นส่วนของรหัสที่เกี่ยวข้องกับข้อมูลของคุณ
อะไรที่เกี่ยวข้องกับฐานข้อมูลของคุณกับวัตถุที่คุณเก็บ
หรือเรียกวัตถ​​ุเหล่านั้นในฐานข้อมูล
ที่จัดการโดยรูปแบบ
บางทีคุณอาจมีวัตถุในฐานข้อมูลของคุณ
เรากำลังจะสร้างรูปแบบที่มีจะทำอย่างไรกับการโพสต์,
เพื่อโพสต์อาจจะมีคุณลักษณะบางอย่างกับมัน
คุณอาจจะมีฟังก์ชั่นการจัดเก็บรอบการโพสต์เหล่านั้นหรือเรียกการโพสต์
หรือการกรองการโพสต์และอื่น ๆ และอื่น ๆ
และนั่นคือทั้งหมดรหัสที่จัดการโดยรูปแบบ
ควบคุมการจัดเรียงของตรรกะโปรแกรม
และหลายสิ่งหลายอย่างที่แตกต่างกันสามารถไปในตรรกะโปรแกรม
หากคุณกำลังพูดคุยกับ API ที่แตกต่างกัน
ที่อาจจะมีที่คุณจัดการกับตรรกะโปรแกรม
ถ้าคุณกำลังพยายามที่จะต้องนำข้อมูลจากแบบจำลองที่แตกต่างกันหลาย
และมีการรวมพวกเขาในทางใดทางหนึ่งที่มักจะได้รับการจัดการโดยคอนโทรลเลอร์
ตัวอย่างเช่นใน Facebook, ถ้าคุณเพื่อนใครสักคน
แล้วบางทีการกระทำของการสร้างความสัมพันธ์ที่ว่า
อาจทำได้โดยการควบคุม
>> และสุดท้ายมุมมองที่เป็นรหัสที่สร้างสิ่งที่คุณเห็นจริง
หลายครั้งที่ฉันคิดว่าใน psets CS50
พวกเขาไม่ได้จริงๆขอแนะนำให้คุณผู้ชายที่จะแยกสิ่งเหล่านี้ 3
คุณอาจจะมีขนาดใหญ่แฟ้มยาวนี้ที่ด้านบน
คุณทำให้บางแบบสอบถามและอาจจะดำเนินการบางอย่าง
กับข้อมูลที่คุณเรียกข้อมูลจากฐานข้อมูล
แล้วคุณมี HTML ของคุณที่ด้านล่าง
และคุณอาจพบว่าในขณะที่คุณสร้างหน้ามากขึ้นและมากขึ้น
ที่คุณกำลังจะต้องทำซ้ำรหัสบางส่วนและยัง
สิ่งที่เป็นไฟล์ของคุณได้รับจริงๆขนาดใหญ่และยาว
และจะกลายเป็นเทอะทะในการจัดการ
เหตุผลว่าทำไม MVC จึงได้รับการยกย่องเป็นอย่างดี
สำหรับจำนวนเหตุผล
สิ่งแรกคือสิ่งที่เรียกว่าการแยกของความกังวล
ซึ่งเป็นความคิดที่ว่าเมื่อคุณมี -
นึกคิด 1 ชิ้นส่วนของรหัสควรจะทำสิ่งที่ 1 และทำมันได้ดีจริงๆ
และคุณไม่ควรรวมชิ้นส่วนของรหัสที่ทำสิ่งที่แตกต่างกัน
ตัวอย่างเช่นดูรหัสและรหัสรุ่น
พวกเขาไม่ได้จริงๆจะต้องเกี่ยวข้อง
พวกเขาไม่ได้ที่จะอยู่ในไฟล์เดียวกันดังนั้นเมื่อคุณสามารถแยกพวกเขาออก
ดังนั้นจึงเป็นเรื่องง่ายต่อการรักษา
>> สิ่งอื่น ๆ นำมาใช้รหัส
คุณอาจพบว่าตัวเองเขียนแบบสอบถามเดียวกันหรือทำ
คำสั่งที่คล้ายกันที่อาจจะแยกเป็น 1 ฟังก์ชั่น
และนั่นคือความคิดที่อยู่เบื้องหลังรูปแบบและควบคุม
มีในฟังก์ชั่นที่แยกต่างหากที่คุณสามารถนำมาใช้ในสถานที่ที่แตกต่างกันในโครงการของคุณ
และสุดท้ายที่ผูกติดอยู่กับการอบแห้งรหัสของคุณ
หรือไม่ทำซ้ำตัวเองไม่ซ้ำตัวเอง
นี่คือการเข้าใจในการพัฒนา
เมื่อใดก็ตามที่คุณสามารถที่คุณไม่ต้องการที่จะทำซ้ำตัวเองเพราะถ้าคุณทำซ้ำตัวเอง
มันมากขึ้นค่าใช้จ่ายในการรักษา
ถ้าคุณต้องการที่จะเปลี่ยน 1 สิ่งที่คุณจะต้องเปลี่ยนทุก
และที่นำไปสู่​​ข้อผิดพลาดและเป็นที่น่ากลัว
>> ขวาทั้งหมด
คำถามใด ๆ เพื่อให้ห่างไกลเกี่ยวกับ Kohana ที่ทั้งหมดหรือไม่
ยิ่งใหญ่
ตอนนี้เรากำลังจะไปดำน้ำในเซสชั่นการเข้ารหัสสด
และหวังว่าทุกอย่างเป็นไปด้วยดี
ฉันจะสร้างเว็บไซต์โดยทั่วไปนี้
บนเซิร์ฟเวอร์ระยะไกลของฉันและวิธีการที่พวกคุณยังสามารถที่
โปรดดูที่เว็บไซต์และการเข้าถึงเว็บไซต์ที่
และสภาพแวดล้อมที่ดีกว่าที่กำหนดค่ากว่าเครื่องระยะไกลของฉัน
เพราะใช้ Linux แทน OS X.
แท้จริงเรากำลังจะเริ่มต้น
KohanaFramework.org
ฉันจะดาวน์โหลดโค้ดจากเว็บไซต์
ฉันจะคัดลอกที่อยู่ลิงค์
ไปที่เซิร์ฟเวอร์ของฉันดาวน์โหลดได้
และฉันจะดึงมัน
>> [นักศึกษา] สิ่งที่เป็นที่ใหญ่ที่สุดที่คุณสามารถทำให้ข้อความหรือไม่
[แบรนดอนหลิว] คือการที่ดีขึ้นหรือไม่
[นักศึกษา] ที่เป็น doable? >> [แบรนดอนหลิว] ใช่ว่าดี
ผมดาวน์โหลดไฟล์ ZIP และซิปที่เป็นไดเรกทอรีที่เรียกว่า Kohana,
และเรากำลังจะเปลี่ยนชื่อที่ CS50-Kohana,
และขอไปค่ะ
น่ากลัว
ที่นี่คุณจะเห็นพวงของไฟล์ที่แตกต่างกัน
ส่วนใหญ่ของคุณสามารถละเลย - we're ไม่ไปผ่านทุกไฟล์เดียวที่อยู่ในที่นี่
เนื่องจากข้อ จำกัด เวลาของเรา
แต่โดยทั่วไปเมื่อคุณติดตั้ง Kohana, สิ่งแรกที่คุณทำ
คือคุณไปที่ไดเรกทอรี
และคุณโดยทั่วไปจะทำแบบทดสอบสภาพแวดล้อมบางอย่างและ whatnot
เพื่อให้แน่ใจว่าสภาพแวดล้อมของคุณมีการตั้งค่าอย่างถูกต้องในการทำงาน Kohana
และทำให้แน่ใจว่าทุกอย่างถูกต้อง
คุณสามารถมองเห็นสิ่งที่ส่วนใหญ่ผ่านไป แต่โดยทั่วไปมักจะใช้เป็นที่ 1 ปัญหานี้
ที่บ่นว่าไดเรกทอรีบางอย่างไม่ได้เขียน
และว่าเป็นเพราะของสิทธิ์บางอย่าง
ผมไม่ทราบว่าเท่าไหร่ที่พวกคุณได้เรียนรู้เกี่ยวกับสิทธิ์ของแฟ้มใน CS50,
แต่ถ้าคุณทำพัฒนาเว็บที่คุณจะทำงานในเรื่องนี้มาก
ฉันจะทำให้มันสามารถเขียนได้
และผมคิดว่าผมยังมี - มีที่เราไป
>> Okay ดังนั้นตอนนี้คุณสามารถเห็นทุกอย่างผ่านไป
และตอนนี้ก็จะบอกคุณที่จะเปลี่ยนชื่อไฟล์ install.php
ฉันจะย้ายไฟล์ install.php เพื่อ installed.php,
และตอนนี้ถ้าผมรีเฟรช
มันทำให้ฉันมีข้อผิดพลาดบางอย่างและนี่คือที่การแก้จุดบกพร่องมา
ซึ่งเป็นที่ที่คุณสามารถมองเห็นสิ่งที่เป็นจริงที่จะเกิดขึ้น
สิ่งที่เป็นตามค่าเริ่มต้น Kohana สันนิษฐานว่า
โครงการของคุณที่ไดเรกทอรีรากของโดเมนของคุณ
ดังนั้นจึงคาดหวังว่าคุณจะเป็นที่ demo.brandonkliu.com
เราต้องบอกว่ามันเป็นจริงในโฟลเดอร์ย่อย
มันอยู่ในโฟลเดอร์ย่อยที่เรียกว่า CS50 Kohana
สิ่งที่เป็นก็ตีความ CS50-Kohana
เป็นอย่างอื่นที่ฉันจะอธิบายให้คุณในที่สอง
แต่ผมจะบอกคุณว่าเป็นสิ่งที่เป็นที่คาดหวัง
สิ่งที่เรากำลังจะทำคือการที่เรากำลังจะไปลงในโฟลเดอร์ที่เรียกว่า bootstrap.php นี้
ซึ่งเป็นโฟลเดอร์การกำหนดค่าที่มากของสิ่งที่แตกต่างกันมีการตั้งค่า
ฉันเปิดขึ้นมา
จากนั้นก็อาจจะเป็นหนึ่งในสิ่งแรกที่ผมจะทำคือการเปลี่ยนโซนเวลา
>> แล้วเรามาดู
อ้าว! ขวาที่นี่
มีพวงของคำพูดการกำหนดค่าที่แตกต่างกันในที่นี่
แต่ฉันกำลังมองหาสิ่งที่เรียกว่า URL ที่ฐานนี้
โดยค่าเริ่มต้นและฉันได้รับมันตั้งค่าให้ Kohana,
แต่ฉันจะเปลี่ยนที่ไป CS50-Kohana,
และผมคิดว่าควรจะแก้ไขมัน
ใช่ที่ดี
โดยค่าเริ่มต้นที่จะเห็นว่ามันทำงานก็บอกว่า "Hello World."
ที่ไม่ว่ามาจากไหน เราไม่ได้รับการ Hello World?
ที่ว่าเป็นรหัสที่จริงเขียนว่า?
เพื่อให้เข้าใจว่าผมจะแนะนำแนวคิดที่เรียกว่าเส้นทางนี้
สวยมากทุกกรอบเว็บมีแนวคิดที่เรียกว่าเส้นทาง
ซึ่งเป็นชิ้นส่วนของซอฟต์แวร์ที่จะแมป URL ที่บาง
ไปชิ้นหนึ่งของรหัสภายในกรอบการทำงานของคุณ
ตัวอย่างเช่นถ้าคุณมี URL ที่บางและคุณจะไปยัง URL บางอย่างเช่น foo.com / บล็อก / ทั้งหมด
แล้วสิ่งที่กรอบจะทำ - หรืออย่างน้อยสิ่งที่ Kohana จะไปทำ -
มันจะหาชั้นเรียนที่เรียกว่าบล็อกของตัวควบคุม
และก็จะต้องเรียกใช้ฟังก์ชั่นการตั้งชื่อการกระทำทั้งหมด
ฉันรู้ว่าฉันพูดคุยเกี่ยวกับการเรียนและการทำงาน
และฉันรู้ว่าพวกคุณยังไม่ได้ครอบคลุมการเรียนและการทำงาน
ใน CS50 แต่สำหรับตอนนี้
คุณสามารถคิดของชั้นเรียนเช่นเดียวกับกลุ่มของฟังก์ชั่นที่
วิธีการจัดกลุ่มการทำงานร่วมกัน
นั่นคือทั้งหมดที่คุณจำเป็นต้องรู้
>> ตอนนี้ถ้าเรามองไปที่โครงสร้างโฟลเดอร์ของเรา
ในโฟลเดอร์โปรแกรมมีโฟลเดอร์อื่นที่เรียกว่าชั้นเรียน
และโฟลเดอร์อื่น ๆ จะเรียกว่าควบคุมและรุ่น
ถ้าคุณดูในโฟลเดอร์ควบคุมที่
เราจะเห็นว่ามีไฟล์ที่เรียกว่ายินดีต้อนรับ,
และคุณสามารถเห็นที่นี่เป็นชั้นที่เรียกว่าควบคุมยินดีต้อนรับ,
และมีฟังก์ชั่นที่เรียกว่าการดำเนินการของดัชนีที่
และสิ่งที่มันไม่เป็นมันชุดร่างกายของการตอบสนองของคุณเพื่อ Hello World
นั่นคือสิ่งที่รหัสจะถูกเขียน
คำถามอื่น ๆ ผมไม่ได้ไป
blah, blah, blah, / ต้อนรับ / ดัชนี
ฉันไม่สิ้นสุดนี่ได้อย่างไร
ดีที่เป็นเพียงเพราะ
ที่นี่ที่ด้านล่างของไฟล์บูตของเรา
ที่เรากำหนดเส้นทางของเรา
คุณจะเห็นว่าพวกเขาตั้งค่าเริ่มต้นบางอย่างสำหรับคุณ
ควบคุมค่าเริ่มต้นคือยินดีต้อนรับคุณ การดำเนินการเริ่มต้นคือดัชนี
นั่นเป็นเหตุผลที่เมื่อเราใส่อะไรอยู่ในนั้นมันจะไปควบคุมยินดีต้อนรับคุณ
และการดำเนินการที่ดัชนี
>> ทุกสิ่งที่ทำให้รู้สึกเพื่อให้ห่างไกล
ตอนนี้คุณสามารถทำได้มากกว่าเพียงแค่ไปที่การควบคุม
และการกระทำที่เฉพาะเจาะจง
นอกจากนี้คุณยังสามารถส่งผ่านพารามิเตอร์ไปยังตัวควบคุม
เพียงแค่เป็นตัวอย่าง
ฉันจะเพิ่มการดำเนินการอื่นที่จะควบคุมนี้เพื่อแสดงให้คุณเห็น
ขอเรียกการกระทำนี้สะท้อนเพราะมันจะบอกคุณในสิ่งที่คุณให้มัน
และดังนั้นฉันโดยทั่วไปจะคว้า
พารามิเตอร์ที่จะถูกส่งผ่านฉันไปยังโปรแกรมเส้นทาง
และเป็นคุณสามารถดูที่นี่
บรรทัดนี้ที่นี่คุณจะเห็นว่า
นี้โดยทั่วไปหมายความว่าคุณมีตัวควบคุมและคุณมี /,
และคุณมีการดำเนินการและคุณมี / อื่น
และที่จะเป็นพารามิเตอร์และเพราะเรามีชื่อ ID นี้
ภายในวงเล็บมุมซึ่งหมายความว่าเรากำลังตั้งชื่อ ID พารามิเตอร์นี้
ต่อมาในรหัสควบคุมของฉันหากฉันต้องการที่จะคว้าถือของพารามิเตอร์นั้น
ฉันสามารถใช้รหัสที่ผมเขียนหาพารามิเตอร์ชื่อ ID
นั่นคือสิ่งที่ผมทำที่นี่และฉันจะกลับมาและพูดว่า
"คุณบอกว่า" ที่
และอื่น ๆ ตอนนี้ถ้าผมไปที่เว็บไซต์ของเรา
ผมไป cs50-kohana/welcome/echo/Helloooo--
โอ้ที่เหมาะสม
มีขั้นตอนที่ 1 ฉันซ้ายออกเป็น
นี้เป็นส่วนหนึ่งของความคิดที่สดการเข้ารหัส
>> นี่คือ 1 สิ่งที่ ลองมาดูกัน
ดังนั้นตามปกติโดยเริ่มต้นที่มีจำนวนมากของการใช้งานเว็บเหล่านี้
คุณต้องมีสิ่ง index.php นี้อยู่ใน URL ของคุณ
เพราะความคิดเป็น index.php เป็นประเภทของจุดเริ่มต้น
ของโปรแกรมของคุณ แต่แน่นอน
นั่นคือการจัดเรียงของที่น่ารำคาญที่จะมี
คุณไม่ต้องการที่จะมี index.php ปรากฏใน URL ของคุณ
และสวยมากทุกกรอบเว็บออกมาจากกล่อง
มีปัญหา index.php นี้
และเพื่อให้คุณมีที่จะใช้มาตรการบางอย่างเพื่อจะเอาที่
และอื่น ๆ ในกรณีนี้
สิ่งที่เรากำลังจะทำคือเรากำลังจะใช้ไฟล์ที่เรียกว่า. htaccess,
และนี่คือสิ่งที่เฉพาะเจาะจงไปยังเว็บเซิร์ฟเวอร์อาปาเช่
และสามารถทำสิ่งที่ต้องการเขียน URL ที่
และการเปลี่ยนเส้นทาง URL และอื่น ๆ และอื่น ๆ
Kohana และเป็นสิ่งที่ดีพอที่จะให้ไฟล์มีแม่แบบ. ที่เราสามารถใช้
>> ในขณะที่คุณสามารถดูมีเป็นไฟล์ที่มีเรียกว่า example.htaccess,
และเรากำลังจะคัดลอกที่. htaccess
ฉันจะเปิดนี้และแก้ไข
และพื้นมันไม่พวงของสิ่งที่แตกต่างกัน
สายสำคัญที่คุณอาจต้องการที่จะดูที่เป็นที่นี่
ความคิดที่ว่านี้ตั้งค่ากฎที่ระบุว่าเป็น
"เอาล่ะสิ่งที่คุณพิมพ์ใน index.php ย่อหน้าที่."
คุณจะเห็นว่า
*. ย่อมาจากอะไรตรงกับอะไร
แล้วส่วนที่สองคือ index.php / $ 0,
และ $ 0 หมายถึงสิ่งที่ได้รับการจับคู่ก่อนหน้านี้
ไม่ที่ทำให้รู้สึก?
แต่สิ่งที่สำคัญจริงๆผมอยากจะเปลี่ยนคือการเปลี่ยนฐานเขียนนี้
ซึ่งเป็นฐาน URL
มันเรียงลำดับของสมมติว่าคุณกำลังทำงานจาก
ฉันจะเพิ่ม CS50 Kohana นั้น
และวิธีการที่ตอนนี้ถ้าผมเอา index.php,
มันควรจะทำงานและฉันจะเพิ่มตัวเลขบาง
ที่จะแสดงให้คุณเห็นว่ามันแน่นอนไม่ทำงาน
เสียงดี
>> คำถามใด ๆ เพื่อให้ห่างไกล
[นักศึกษา] มันรู้เพื่อให้ 123 ได้อย่างไร
คืออาร์กิวเมนต์?
อย่างแน่นอน คุณสามารถคิดว่ามันเช่นเดียวกับข้อโต้แย้ง
แต่สิ่งที่แปลก แต่เป็นวิธีการที่ Kohana ไม่ได้
คือพวกเขาไม่ทำมันเหมือนกับการโต้แย้ง
คุณต้องคว้ามันเช่นนี้
คุณต้องคว้าวัตถุคำขอและขอพารามิเตอร์ที่ตั้งชื่อ ID ที่
ID และชื่อที่มาจากไฟล์บูตที่
ที่ผมแสดงให้เห็นว่าก่อนหน้านี้และชื่อ ID ที่อยู่ในวงเล็บที่มุม
และนั่นคือวิธีการที่คุณคว้าพารามิเตอร์เหล่านั้น
น่ากลัว
คำถามใด ๆ อื่น ๆ
เช่นฉันกล่าวว่าการควบคุมพวกเขาจัดการกับตรรกะของโปรแกรมประยุกต์
เพื่อให้เป็น 1 ตัวอย่างที่คุณสามารถดูที่ 's -
มันเป็นเรื่องพื้นฐานมาก แต่ก็ยังคงตรรกะของโปรแกรมประยุกต์
ความคิดของโลภพารามิเตอร์และการสร้างสายใหม่
ว่า "คุณบอกว่า blah" แล้วคายที่กลับมาให้คุณ
และโดยทั่วไปสิ่งที่คุณทำคือการที่คุณสร้างตัวควบคุมที่แตกต่างกัน
คุณสามารถสร้างตัวควบคุมที่แยกต่างหากสำหรับชิ้นส่วนที่แตกต่างกันของเว็บไซต์ของคุณ
>> วันนี้เรากำลังจะสร้างเว็บไซต์ที่ง่ายมาก
และมันจะเป็นบล็อกขั้นพื้นฐานมาก
เรากำลังจะทำให้ควบคุมใหม่เพียงสำหรับการโพสต์ในบล็อกของ
แต่แล้วถ้าผมยังเพิ่มความเห็นที่จะโพสต์บล็อก
แล้วผมก็อาจจะต้องการให้ตัวควบคุมใหม่สำหรับความคิดเห็นที่
ถ้าผมต้องการที่จะเพิ่มผู้ใช้ผมก็อาจจะเพิ่มตัวควบคุมใหม่สำหรับผู้ใช้เหล่านั้น
และโดยทั่วไปความคิดที่ว่าเมื่อใดก็ตามที่คุณมีรูปแบบใหม่
ข้อมูลวัตถุใหม่ที่คุณกำลังติดต่อกับ
คุณมีตัวควบคุมเดียวสำหรับข้อมูลวัตถุที่
วันนี้เราเท่านั้นที่จะได้ทำงานร่วมกับวัตถุที่ 1 ข้อมูล
และที่จะโพสต์
และคุณยังสามารถคิดของวัตถุที่เป็นข้อมูลที่ตรงกับตาราง
โดยทั่วไปแต่ละตารางที่ 1 สอดคล้องกับชนิดของวัตถุข้อมูล
ดังนั้นตารางการโพสต์จะมี 1 รูปแบบการโพสต์
ซึ่งจะมี 1 ตัวควบคุมการโพสต์ตรงกับที่
และเหมือนกันสำหรับความเห็นที่เหมือนกันสำหรับผู้ใช้และอื่น ๆ และอื่น ๆ
และที่เป็นกฎทั่วไปของหัวแม่มือ
มีกำลังจะเป็นกรณีพิเศษที่คุณอาจแตกต่างจากที่
แต่ 90% ของเวลาที่สิ่งที่คุณกำลังจะทำที่
และฉันจะแสดงให้คุณเห็นว่าเป็นสิ่งที่เรากำลังจะทำในวันนี้
1 แนวคิดมากขึ้นก่อนที่เราจะดำน้ำกลับเข้ามาในรหัส
ความคิดของการทำแผนที่วัตถุสัมพันธ์นี้
>> พวกคุณได้ทำมาแล้ว pset การพัฒนาเว็บ
และคุณได้เห็นที่คุณทำแบบสอบถาม SQL,
และสิ่งที่มันจะกลับไปที่คุณอยู่แถว
คุณจะได้รับแถวเหล่านี้และคุณดัชนีพวกเขาตามชื่อบางส่วน
ชื่อของคอลัมน์และตาราง
และนั่นคือวิธีการที่คุณทำงานกับมัน
และก็สามารถเป็นบิตยุ่งยาก
แต่ยิ่งไปกว่านั้นถ้าคุณมีความสัมพันธ์ภายในฐานข้อมูลของคุณ
อย่างเช่นถ้าผมมีความคิดเห็นและโพสต์
แล้วบางทีผมต้องการที่จะคว้าโพสต์แม่ของความคิดเห็น
หากฉันใช้แถวเดียวใน SQL แล้วสิ่งที่ฉันจะได้รับเป็นรหัส
โพสต์ของผู้ปกครองและไม่โพสต์จริงตัวเอง
แต่เมื่อเรากำลังเขียนสิ่งที่เราต้องการจริงคือการคว้าจริง
โพสต์ของผู้ปกครองของตัวเองบางครั้ง
สิ่งที่ทำแผนที่วัตถุสัมพันธ์ไม่เป็น
มันต้องใช้ผลที่ได้จากการสืบค้นฐานข้อมูล
และทำให้มันเป็นวัตถุสำหรับคุณที่มีมากดีกว่าที่จะทำงานกับ
กว่าอาร์เรย์ธรรมดาและแถว
>> ตัวอย่างเช่นตอนนี้เมื่อผมมีความคิดเห็นบางที
และผมต้องการที่จะคว้าโพสต์แม่ของมัน
และฉันไม่อาจจะแสดงความคิดเห็นโพสต์ลูกศร
แล้วมันจริงจะให้ฉันโพสต์วัตถุ
สอดคล้องกับการโพสต์ของผู้ปกครองที่เกิดขึ้นจริงไม่ได้เป็นเพียง ID บาง
ซึ่งผมอาจจะต้องใช้และทำแบบสอบถามอื่นที่จะคว้าการโพสต์
ซึ่งเป็นที่ยุ่งยากและไม่จำเป็น
และยิ่งไปกว่าโดยการทำแผนที่เหล่านี้แถวข้อมูลลงในวัตถุ
คุณยังสามารถแนบฟังก์ชั่นมากขึ้นเพื่อวัตถุ
ดังนั้นตัวอย่างเช่นผมได้พูดคุยเกี่ยวกับวิธีการเรียนเป็นหลักของการทำงานของกลุ่ม
คุณสามารถคิดว่ามันเหมือนว่า
ตัวอย่างเช่นอาจจะมีวัตถุโพสต์นี้
และบางทีฉันต้องการที่จะมีการจัดเรียงบางส่วนของฟังก์ชั่นที่ติดอยู่กับมัน
ที่พื้นบอกฉันว่ามันถูกโพสต์เมื่อเร็ว ๆ นี้?
ถูกมันโพสต์ในสัปดาห์ที่ผ่านมาจริงหรือเท็จ?
และที่ทำงานของฉันสามารถแนบลงบนวัตถุนั้น
และมันก็สะดวกมากที่จะมีในสถานที่เดียวกัน
และมีโฮสต์ของฟังก์ชั่นที่แตกต่างกันคุณสามารถสร้าง
สำหรับวัตถุเหล่านี้และมันเป็นเรื่องที่ดีจริงๆเพื่อให้สามารถแนบไปกับชั้นเรียน
ไปยังวัตถุในขณะที่ถ้าคุณเพียงแค่มีแถวที่มาจากฐานข้อมูลของคุณ
แล้วคุณไม่สามารถจริงๆแนบฟังก์ชั่นใด ๆ กับที่
มันเป็นข้อมูลที่แท้จริงเพียง
คำถามใด ๆ เกี่ยวกับว่าที่ทั้งหมดหรือไม่
ORMs มีการพัฒนาเว็บกันมาก
และมีมากชนิดที่แตกต่างกันของ ORMs มี
และ Kohana มีออมของตัวเอง
มันเป็นพื้นฐานมาก แต่คุณจะได้รับรสชาติของสิ่งที่ดูเหมือนว่า
>> ลองสร้างแบบจำลองสำหรับการโพสต์บล็อกของเรา
และสิ่งแรกที่เราเห็นได้ชัดต้องทำคือการสร้างตารางที่เกิดขึ้นจริง
ภายในฐานข้อมูลของเราที่จริงการจัดเก็บข้อมูลของเราโพสต์ที่
สิ่งแรกที่ผมจะทำคือไปที่ phpMyAdmin
ได้พวกคุณใช้ phpMyAdmin มาก่อนหรือไม่
เอาล่ะที่น่ากลัวเพื่อให้พวกคุณรู้อยู่แล้วว่าสิ่งที่เป็น
และฉันจะสร้างตารางใหม่ที่เรียกว่า Kohana กระทู้,
และมันจะเป็นเรื่องง่ายมาก
ฉันจะต้องกลับเข้าสู่ระบบ
ทั้งหมดที่เรากำลังจะทำในวันนี้คือมีนักเขียนและร่างกาย
เพียงแค่ให้มันง่าย
ฉันจะสร้างตารางที่
และตอนนี้เราก็มีตารางที่เป็นตัวแทนของการโพสต์ของเรา
2 ฟิลด์สำหรับผู้เขียนและร่างกายของเรา
สิ่งอื่น ๆ ที่ฉันจะทำตอนนี้คือ
กำหนดค่าโปรแกรมประยุกต์เว็บของฉันจึงรู้วิธีการเชื่อมต่อกับฐานข้อมูล
และนี้อีกครั้งเป็นสิ่งที่คุณจะต้องทำกับทุกการใช้งานเว็บ
คุณต้องบอกว่าชื่อผู้ใช้และรหัสผ่าน
และชื่อของฐานข้อมูลและอื่น ๆ และอื่น ๆ
ที่จะคิดออกวิธีการที่จริงการเชื่อมต่อกับฐานข้อมูลของคุณ
>> ใน Kohana เรามีสิ่งที่เรียกว่าโมดูลฐานข้อมูล
และการกำหนดค่าในโฟลเดอร์ที่เรามีโฟลเดอร์ที่เรียกว่าฐานข้อมูลนี้
และในขณะที่คุณสามารถดูมีพวงของการตั้งค่าที่คุณจะต้องตั้งที่นี่
ที่จะบอกว่าสิ่งที่เป็นชื่อผู้ใช้และรหัสผ่าน
สำหรับฐานข้อมูลเพื่อให้ฉันจริงสามารถเชื่อมต่อกับมัน
และตั้งแต่ฉันไม่ต้องการให้พวกคุณรู้จริง
ชื่อผู้ใช้และรหัสผ่านของฐานข้อมูลของฉัน
ผมมีไฟล์ที่ฉันตั้งแล้วมันทั้งหมดขึ้นและผมจะคัดลอกและวางมันไป
น่ากลัว
ถูก ผมคิดว่าการตั้งค่าทั้งหมดที่ผมต้องทำ
แต่เรามาดู
เราจะให้ทำงานในนั้นและหากสิ่งที่เกิดปัญหา
แล้วเราจะแก้ไขได้
ตอนนี้สิ่งที่ผมจะทำคือผมจะสร้างตัวควบคุมใหม่
จริงหรือขอโทษ
ครั้งแรกที่ฉันต้องสร้างรูปแบบใหม่
ฉันจะสร้างรูปแบบใหม่ที่เรียกว่า Post.php,
และสิ่งที่เรากำลังจะทำคือเรากำลังจะเรียกว่าชั้น Model_Post
ได้รับการเน้นไวยากรณ์บางอย่างเกี่ยวกับ
และดังนั้นเมื่อผมพูดว่า "ขยายออม" ที่เป็นพื้น
บางคนเขียนโปรแกรมเชิงวัตถุมากขึ้น
ซึ่งน่าเสียดายที่พวกคุณไม่ได้เรียนรู้ใน CS50 ยัง
แต่ก็สวยง่ายที่จะรับ
มันทำให้ฉันทั้งหมดนี้ฟังก์ชั่นพิเศษที่มาในแพคเกจออมนี้
และเพื่อให้ฉันได้รับพวงของฟังก์ชั่นพิเศษและ whatnot ฟรี,
ซึ่งคุณจะเห็นบิตของในที่สอง
>> ตอนนี้จริงทั้งหมดที่ผมต้องทำคือการสร้างชั้นนี้
ฉันไม่ได้ต้องการที่จะทำให้ฟังก์ชั่นใดหรืออะไร
แต่เราได้สร้างชั้นที่แสดงถึงตารางที่
และเพราะฉันได้ขยายชั้นเรียนออมนี้
ฉันจะได้รับพวงของสิ่งฟรีดังนั้นสำหรับตอนนี้คุณไม่จำเป็นต้องตั้งค่าอะไรมากขึ้น
และตอนนี้สิ่งที่ผมจะทำคือผมจะสร้างตัวควบคุมใหม่
ซึ่งผมจะตั้งชื่อ blog.php,
และผมจะคัดลอกไปควบคุมยินดีต้อนรับคุณ
ดังนั้นผมจึงไม่จำเป็นต้องพิมพ์สิ่งบางอย่าง
และตอนนี้ฉันมีการเปลี่ยนชื่อนี้
ตอนนี้สิ่งที่ฉันจะทำอย่างไรที่จะทดสอบเพื่อให้แน่ใจว่าทุกอย่างจะทำงานออก
ฉันจะคว้าโพสต์ครั้งแรกจากฐานข้อมูลของฉัน
และพิมพ์เนื้อหาของการโพสต์บนหน้าจอ
ที่จะทำสิ่งที่ฉันจะทำก่อนที่ฉันจะบันทึกการโพสต์
กับตัวแปรดังนั้นสิ่งที่เรากำลังจะทำคือ -
ใน Kohana สิ่งที่คุณทำคือการคว้าวัตถุที่โพสต์
มันเป็นชนิดของยุ่งยาก แต่คุณต้องทำสิ่งนี้เรียกว่าออม :: โรงงาน
แล้วคุณจะผ่านในชื่อของรูปแบบที่คุณต้องการ
และจะส่งกลับวัตถุออมที่แสดงถึงรูปแบบที่
แล้วเหมือนที่ผมกล่าวว่าเมื่อเราขยายวัตถุออม,
เราได้รับวิธีการเหล่านี้ทั้งหมดฟรีดังนั้นสำหรับตัวอย่างเช่น
เราได้รับฟังก์ชั่นใหม่นี้เรียกว่า "พบ"
ซึ่งจะกลับทุกโพสต์เดียวในฐานข้อมูล
ซึ่งเป็นวิธีที่สะดวกสวย
>> และตอนนี้อยู่ในร่างกายของฉันจะกลับมา
โพสต์แรกและกลับร่างของมัน
และแน่นอนฉันต้องสร้างโพสต์
จึงขอแทรกโพสต์ใหม่
ฉันจะพูดว่า "แบรนดอน, โพสต์แรกของฉัน."
น่ากลัว
และตอนนี้เรากำลังจะไปยังบล็อก
และถ้าทุกอย่างทำงานได้ดี - โอ้นี้เป็นบางสิ่งอื่น ๆ ที่ได้รับอนุญาตแฟ้มใบ้อีกครั้ง
ยึดมั่นใน 1 วินาที เป็นชนิดของไร้สาระ
มีเราไป ถูก
ฉันคงปัญหาที่ได้รับอนุญาต
มันก็พยายามที่จะสร้างบางไฟล์และเข้าสู่ระบบบางอย่าง
และการอนุญาตอีกครั้งที่ไม่ได้กำหนดอย่างถูกต้องเพื่อให้ฉันทำมัน
ไฟล์เหล่านั้นเพื่อให้มีการเขียนและปฏิบัติการ
เพื่อที่จะสามารถเข้าสู่ระบบจริงกับสิ่งที่
ตอนนี้ก็ให้ฉันอีกว่าข้อยกเว้น "ออมชั้นไม่พบ"
และที่ว่าเพราะผมลืมขั้นตอนอื่น
ที่เลวร้ายเกินไป
ในแฟ้มโฟลเดอร์บูตมีโมดูลเหล่านี้ที่นี่
ซึ่งคุณสามารถเลือกที่จะเปิดหรือปิดการใช้งาน
เหล่านี้เป็นพวงของคุณสมบัติที่แตกต่างที่คุณสามารถเลือกที่จะใช้
Kohana ภายในซึ่งเป็นประเภทของดี
>> ตัวอย่างเช่นพวกเขามีโมดูลการตรวจสอบ
ซึ่งคุณสามารถใช้สำหรับการตรวจสอบผู้ใช้
พวกเขามีโมดูลแคชถ้าคุณต้องการที่จะใช้
การเรียงลำดับของแคชบางหลังจบที่จะทำให้งานโปรแกรมได้เร็วขึ้นและ whatnot
เราจำเป็นที่จะต้องเปิดการใช้งานฐานข้อมูลและโมดูลออม,
เพราะเหมือนที่ผมกล่าวว่าเรากำลังใช้ฐานข้อมูลชัด
และเรายังจำเป็นที่จะต้องเปิดการใช้งานโมดูลออม,
เพราะเราต้องการที่จะมีการทำงานพิเศษซึ่งเป็นสิ่งที่ดีที่จะมี
ทั้งหมดที่ฉันต้องทำคือการ uncomment ที่ 2 เส้น
และตอนนี้ถ้าผมฟื้นฟูจะให้ฉันข้อผิดพลาดอื่น
มันบอกว่า "ชั้น Model_Post ไม่พบ."
ตอนนี้เป็นปัญหาที่ดีที่จะมี
ลองมาดูกัน
ทำให้ประชาชน
ที่ยึดมั่นใน
โธ่เอ๊ย
ผมไม่ทราบว่าทำไมมันไม่สามารถที่จะพบว่า
ที่แปลกจริงๆ
ฉันได้เรียนนี้ที่นี่
ผมคิดว่าผมอาจจะต้อง - โอ้
ผมใบ้เพื่อ ฉันลืมที่จะเพิ่มแท็ก PHP
นั่นเป็นเหตุผลที่
ตอนนี้ผมต้องยกเลิกการเปลี่ยนแปลงที่ 1 ฉันไม่
เอาล่ะ >> มีเราไป
นั่นคือโง่จริงๆ ฉันไม่ได้มีแท็ก PHP เปิด
แต่ในขณะที่คุณสามารถดูตอนนี้ก็ทำงานอย่างถูกต้องใช่ไหม
เรามี 1 โพสต์
เราคว้าโพสต์แรกและตอนนี้เราพิมพ์ออกมาร่างของมัน
ยิ่งใหญ่ น่าอัศจรรย์
คำถามใด ๆ เพื่อให้ห่างไกล
Nope? คำถามใด?
เอาล่ะเพื่อที่เราเพิ่งสร้างรูปแบบการโพสต์พื้นฐานมาก
และเราจะเพิ่มฟังก์ชั่นบางอย่างในภายหลัง
เราสามารถเพิ่มการตรวจสอบและการกรอง
การตรวจสอบเป็นส่วนหนึ่งของสิ่งที่
ที่กรอบแก้ปัญหาสำหรับคุณจริงๆดีจริงๆ
และฉันไม่คิดว่าพวกคุณต้องทำเช่นนี้สำหรับ pset CS50 ของคุณ
แต่ถ้าคุณทำในการพัฒนาเว็บสำหรับโครงการสุดท้ายของคุณ
คุณกำลังมีแนวโน้มที่จะต้องการที่จะทำเรียงลำดับของการตรวจสอบบางอย่าง
เช่นไม่ได้มีชื่อผู้ใช้เปล่า
อาจจะมีรหัสผ่านที่มีความยาวอย่างน้อยบางสิ่งที่ต้องการที่
และมันเป็นเรื่องยุ่งยากจริงๆที่จะใช้สิ่งเหล่านี้ด้วยตัวเอง
และสวยมากทุกกรอบเว็บเดียวไม่ได้สำหรับคุณ
และช่วยให้คุณที่จะทำมันในทางที่สะอาดมาก
และรูปแบบเป็นที่ที่คุณมักจะแสดงกฎการตรวจสอบนั้น
เพราะการตรวจสอบไม่ว่าจะเป็นรูปแบบที่ถูกต้องหรือไม่
>> แต่ตอนนี้เรากำลังจะใส่ที่จนกระทั่งต่อมา
และตอนนี้เรากำลังจะไปทำงานในส่วนอื่น
และเราจะพยายามทำให้มุมมองใหม่
ที่แสดงข้อความทั้งหมด
ขั้นตอนที่เกี่ยวข้องในการดำเนินการใหม่สำหรับรายการข้อความทั้งหมด
คือการคว้ารายการจากโพสทั้งหมด
แล้วทำให้รายการของข้อความทั้งหมดผ่านมุมมอง
ที่นี่โชคดีพอเราอยู่แล้วคว้าข้อความทั้งหมด
โดยใช้บรรทัดแรกนี้หาฟังก์ชั่นทั้งหมด
และตอนนี้สิ่งที่เรากำลังจะทำคือเพื่อให้ห่างไกล
ฉันได้รับการตั้งค่าของการตอบสนองของร่างกายโดยตรง
โดยผ่านสาย แต่ตอนนี้ฉันต้องการที่จะใช้มุมมอง
และความแตกต่างระหว่างมุมมองและเพียงแค่การทำเช่นนี้
คือการมีมุมมองที่ฉันสามารถมีดี HTML แม่แบบขนาดใหญ่
และสิ่งที่ฉันสามารถทำได้คือผ่านมันตัวแปรบางอย่าง
แล้วได้มุมมองที่เติมแม่แบบโดยอัตโนมัติ
โดยใช้ตัวแปรเหล่านั้น
สิ่งที่ผมจะทำคือผมจะสร้างมุมมองใหม่
และฉันจะตั้งชื่อมุมมองบางอย่างเช่น "บล็อก / ดัชนี"
และฉันจะเป็นพื้นผูกนี้ - โอ้, สิ่งที่ฉันเขียน?
สมองของฉันเป็นที่อื่น
ฉันจะผูกกระทู้ตัวแปรมุมมอง
ดังนั้นวิธีการที่มุมมองที่มีการเข้าถึงตัวแปรโพสต์นี้
>> และดังนั้นตอนนี้ฉันต้องการที่จะสร้างมุมมองนี้
ดังนั้นที่นี่เรามีโฟลเดอร์ที่เรียกว่า "มุมมอง" นี้
และเป็นครั้งแรกที่ผมจะสร้างโฟลเดอร์ใหม่ภายใต้ที่เรียกว่า "บล็อก".
นี้เป็นสิ่งที่ดี วิธีที่เราสามารถมีลำดับชั้นที่ดีสำหรับมุมมองของเราที่
แล้วฉันจะสร้างไฟล์อื่นในนั้นเรียกว่า "index.php."
น่ากลัว
ที่จริงแล้วการปล่อยให้มีพวกเขาทั้งสองที่นี่
ทำให้ไฟล์มุมมองน่าจะเป็นส่วนที่ง่ายที่สุดของทั้งหมดนี้
และเหล่านี้อาจเป็นสิ่งที่คุณคุ้นเคยกับ
เรากำลังจะทำสิ่งที่ง่ายจริงๆ
เริ่มต้นว่า "รายการของฉันโพสต์บล็อก."
แล้วเราสามารถผ่าน
และเราสามารถย้ำผ่านแถวโพสต์
คว้าทุกโพสต์เดียวและพูดอะไรบางอย่างเช่น -
อาจจะเพิ่มบรรทัด
แล้วพิมพ์ออกมาผู้เขียนและร่างกาย
ที่ทำให้รู้สึกเพื่อให้ห่างไกล
และให้ดูว่าการทำงาน
ไม่มีอะไรเกิดขึ้น
ผมสงสัยว่าทำไม
โอ้ฉันพลาดขั้นตอนที่ 1 มากโง่ของฉัน
ฉันสร้างมุมมอง แต่ผมก็ไม่ได้ตั้งค่ามุมมองที่การตอบสนอง
ดังนั้นคุณต้องทำสิ่งที่ 1
ที่คุณต้องทำ "ร่างกายตอบสนองนี้" และตั้งค่าให้เป็นมุมมอง
มีเราไป
เรามีส่วนหัวของเราและเราก็มีการโพสต์
และเพียง kicks ขอแทรกโพสต์อื่น
เพื่อให้เราสามารถดูรายการ
และใส่เหล่านี้ 2 โพสต์
และตอนนี้ถ้าผมรีเฟรชหน้า
เราจะเห็นการโพสต์เหล่านี้ทั้งหมดที่นี่
>> ที่ไม่ทำให้รู้สึกเพื่อให้ห่างไกล
ใช่คำถามหรือไม่ โอ้โอเค
ที่คุณสามารถดูเราได้รับสามารถที่จะแยกรหัสเหล่านี้ออกทั้งหมด
เป็นส่วนที่แตกต่างกันและจากนั้นคุณสามารถมองเห็นได้ชัดเจนมากที่สุดกับรหัสมุมมอง
ไฟล์นี้ที่นี่ที่แสดงให้เห็นถึงมุมมอง
มันเพียง แต่ให้ความสำคัญกับการเป็นตัวแทนของข้อมูลการแสดงข้อมูล
จะได้รับการผ่านการจัดเรียงของข้อมูลบางส่วนและทั้งหมดก็จะเป็นเพียงการแสดงให้คุณ
ในส่วนอื่น ๆ ทั้งหมดของรหัสของคุณคุณจะไม่ต้องกังวลเกี่ยวกับการใด ๆ ที่
และเช่นเดียวกันรหัสมุมมองของคุณไม่ต้องกังวลอะไรเกี่ยวกับ
วิธีการเข้าถึงฐานข้อมูลและอื่น ๆ และอื่น ๆ
ซึ่งเป็นสิ่งที่ดีมากและจะทำให้รหัสของคุณมากขึ้น maintainable
เช่นฉันกล่าวว่ามุมมองที่พวกเขากำลังแบบไดนามิกในที่
เป็น 1 ไฟล์ แต่มันจะสร้างมุมมองที่แตกต่างกัน
ขึ้นอยู่กับตัวแปรที่คุณผ่านการจริงในการที่
และยิ่งมีจำนวนมากของฟังก์ชั่นที่แตกต่างกันผู้ช่วย
ที่คุณสามารถใช้เพื่อช่วยให้คุณเขียนรหัสของคุณได้เร็วขึ้น
ที่ผมจะแสดงให้คุณในเวลาเพียงสอง
ใช่
>> [นักศึกษา] ดังนั้น $ 0 ขวาเป็นตัวควบคุม?
ว่าสิ่งที่สอง
คำถามคือเป็น 0 $ ควบคุมได้หรือไม่
0 $ เป็นตัวแปรฉันสร้างขึ้นที่นี่
ฉันสร้างมุมมองแรก ผมได้รับมอบหมายให้กับตัวแปรบาง
จากนั้นฉันก็ผ่านมันเป็นฟังก์ชั่นนี้ตั้งเป็นร่างกายของการตอบสนอง
ไม่ที่ทำให้รู้สึก?
[นักศึกษา] ดังนั้นมุมมอง :: โรงงานเป็นมุมมองเช่น class
หรือห้องสมุด [ไม่ได้ยิน] ฟังก์ชั่นโรงงาน
คำถามคือเกี่ยวกับฟังก์ชั่นมุมมอง :: โรงงาน
และพื้นนี้เป็นโปรแกรมเชิงวัตถุบางอย่างมากขึ้นเป็นหลัก
มุมมองเป็นมุมมองการเรียนและจะมีวิธีการที่เรียกว่า "โรงงาน"
และนั่นคือวิธีการที่จะคว้าวัตถุที่ชื่อ "บล็อก / ดัชนี."
และที่ว่าบางเชิงวัตถุสิ่งที่เขียนโปรแกรมเพิ่มเติม
ว่าฉันจะไม่ไปลงที่นี่มากเกินไป
ตอนนี้เห็นได้ชัดว่าเราต้องการที่จะสร้างการโพสต์ใหม่
แต่เราไม่ต้องการให้มีการทำผ่านฐานข้อมูล
ดังนั้นเราจะสร้างการดำเนินการใหม่สำหรับการสร้างการโพสต์ใหม่
และมีจำนวนมากของสิ่งที่เราต้องทำ
>> สิ่งแรกที่เรากำลังจะทำ - ให้ต่อสู้กับสิ่งเหล่านี้อย่างใดอย่างหนึ่งโดยหนึ่ง
สิ่งแรกที่เราจะทำคือการที่เราได้มีการสร้างฟอร์ม
ในการแทรกการโพสต์ใหม่
แต่ฉันยังจะเพิ่มการดำเนินการใหม่เป็นครั้งแรก
ดังนั้นการเพิ่มการดำเนินการใหม่เป็นเพียงเป็นเรื่องง่ายที่
เพิ่มฟังก์ชั่นใหม่ที่มีตัวควบคุมของคุณ
และตอนนี้ผมกำลังจะไปทำอะไรที่พื้นฐานมาก
เพียงคว้ามุมมองนี้และโพสต์เพียงแค่แสดงให้คุณ
แล้วตอนนี้ผมกำลังจะไปสร้างไฟล์มุมมองใหม่
และฉันจะเริ่มต้นการเขียนสิ่งบางอย่าง
มีอะไรที่ดีเกี่ยวกับ Kohana ที่พวกเขาให้มากของฟังก์ชั่นที่แตกต่างกันผู้ช่วย
สำหรับคุณที่จะเขียนรหัสดูได้ง่ายขึ้น
และ 1 ของผู้ที่ทำหน้าที่ผู้ช่วยผู้ช่วยหรือโมดูล
เป็นรอบการเขียนในรูปแบบ
สำหรับการเขียนในรูปแบบที่ผมไม่ได้จริงๆต้องเขียนโดยตรง HTM​​L ใด ๆ ที่ตัวเอง
พวกคุณได้เขียนในรูปแบบ HTML
คุณจะรู้ว่าวิธีที่จะสามารถจริงๆเจ็บปวดและยุ่งยากในการเขียนรูปแบบ
มันไม่สนุกเพื่อให้โชคดี
เราก็สามารถเขียนในรูปแบบของการใช้ Kohana
รูปแบบฟังก์ชั่นผู้ช่วยที่จะทำเพื่อเรา
เรากำลังจะไปโดยทั่วไปมีฟิลด์สำหรับทุกสิ่งเดียวที่เรามี
ดังนั้นหนึ่งสำหรับผู้เขียนและหนึ่งสำหรับร่างกาย
เรากำลังจะมีป้ายชื่อและเรากำลังจะมีการป้อนข้อมูล
>> และแล้วในที่สุดเรากำลังจะมีการส่ง
และในขณะที่คุณสามารถดูนี้เป็นทำความสะอาดมากในการเขียน
กว่าทุกที่ HTML ยุ่งซึ่งเป็นชนิดที่ดี
รับมีกรอบเว็บอื่น ๆ ที่มีก็ยังสะอาดกว่าที่
แต่อย่างน้อยนี้จะดีกว่าการเขียน HTML ด้วยตัวคุณเอง
น่ากลัวดังนั้นนี่คือสิ่งที่คุณเห็น
นั่นคือชนิดของยุ่ง
ดังนั้นฉันจะเพิ่มตัวแบ่งบรรทัดมี
เพื่อให้ที่ดูดีกว่าเล็กน้อย
ดีแน่นอนก็ยังคงดูจริงๆดีจริงๆ แต่เรากำลังมุ่งเน้นเพียงแค่
ในการทำงานในขณะนี้และไม่ได้อยู่ในความงาม
เวลาที่จะทำทุกอย่างไม่มี
และอย่างที่คุณเห็นตอนนี้เรามีรูปแบบซุปเปอร์ขั้นพื้นฐาน
ซึ่งเป็นชนิดที่ดี
รหัสนี้ผมจะบอกว่าสะอาดกว่าการพยายามที่จะเขียน HTML รูปแบบตัวเอง
เพื่อให้เป็นที่ดี
ถัดไปคืออะไร
ตอนนี้เราต้องทำสิ่งที่มีการกระทำ
โดยปกติเมื่อคุณเขียนในรูปแบบ HTML,
คุณต้องบอกว่าที่มันจะส่งแบบฟอร์มการ
โดยเริ่มต้นในที่สุดกรอบเว็บ
มันส่งไปยัง URL เดียวกันแน่นอนดังนั้นสิ่งที่เป็น
ถ้าคุณได้รับการส่งคำขอไปยัง / บล็อก / ใหม่
มันจะแสดงให้คุณในรูปแบบที่
แต่ถ้าคุณส่งคำขอไปยังโพสต์ / บล็อก / ใหม่ที่มีข้อมูล
จริง ๆ แล้วมันควรจะพยายามที่จะบันทึกโพสต์ที่
และทำอะไรกับมัน
>> สิ่งที่เรากำลังจะทำคือ
พื้นทั้งหมดที่เราต้องทำในการตรวจสอบไม่ว่าจะเป็นขอโพสต์หรือได้รับการร้องขอ
คือการตรวจสอบสิ่งที่เป็นตัวแปรการโพสต์คุณสามารถตั้งค่า
และถ้าตัวแปรการโพสต์ตั้งแล้วเราจะลองและสร้างโพสต์ใหม่
อีกครั้งเราก็ทำเช่นนี้
และที่สร้างโพสต์ใหม่และเรากำลังจะไปตามตัวอักษร
การตั้งค่าเขตข้อมูลเช่นนี้
และจากนั้นเราจะบันทึกไว้
แล้วฉันจะเปลี่ยนเส้นทาง
ไปที่เพจดัชนีเพื่อให้พวกเขาสามารถดูรายชื่อของการโพสต์อีกครั้ง
ลองว่า
ฉันจะพูดว่า "แบรนดอน"
แล้วส่งโพสต์และถ้าทุกอย่างเป็นไปด้วยดี
ที่คุณสามารถเห็นมันเปลี่ยนเส้นทางฉันไปที่หน้าดัชนี
และถ้าผมเลื่อนไปด้านล่างเรามีการโพสต์แทรกใหม่
เย้!
ใช่คำถาม
>> [นักศึกษา] สิ่งที่ถ้าคุณได้เข้ามาสิ่งเดียวที่แน่นอน
คุณป้อนมาก่อนหรือไม่
ที่ไม่ได้ตรวจสอบเพื่อให้แน่ใจว่าคุณได้ไม่ซ้ำ
ส่งเดียวกันได้หรือไม่
เป็นค่าเริ่มต้นไม่เพราะโดยค่าเริ่มต้น -
เสียใจคำถามคือถ้าคุณใส่ในข้อมูลเดียวกันในรูปแบบที่แน่นอน
และส่งที่จะช่วยให้คุณสามารถแทรกวัตถ​​ุที่ซ้ำกัน
ซ้ำรายการหลัก?
ตอนนี้ใช่มันจะช่วยให้คุณทำอย่างนั้น
เพราะอยู่ในฐานข้อมูลก็ถูกต้องสมบูรณ์จะมีแถวที่ซ้ำกันอย่างสมบูรณ์
แต่ถ้าที่เป็นกังวลแล้วคุณสามารถเพิ่มการตรวจสอบตัวอย่างเช่น
เพื่อให้แน่ใจว่าถ้าตรงนี้เป็นเช่นเดียวกับสิ่งที่มีอยู่แล้ว
แล้วพูดว่ามันเป็นวัตถุที่ไม่ถูกต้อง
แล้วคุณยังสามารถระบุข้อผิดพลาดของคุณ
และพูดว่า "ไม่ถูกต้องเพราะมีอยู่แล้ว" หรือสิ่งที่ต้องการที่
แต่ในกรณีนี้ผมก็สามารถสร้างสิ่งที่ซ้ำกัน
ตอนนี้ขอลองและเพิ่มการตรวจสอบบางอย่าง
ปัญหานี้ได้ในขณะนี้คือ
แท้จริงฉันจะส่งโพสต์ที่ว่างเปล่าอย่างสมบูรณ์
ฉันสามารถคลิกที่ปุ่มนี้ในขณะนี้และมีเราไป
คุณไม่สามารถจริงๆเห็น แต่สายพิเศษที่นี่
แสดงให้เห็นว่าแท้จริงฉันมีโพสต์ใหม่
มันก็มีนักเขียนที่ว่างเปล่าและร่างกายว่างเปล่า
และเราไม่ต้องการที่จะช่วยให้คนที่จะทำเช่นนั้น
ซึ่งเป็นที่ที่การตรวจสอบเข้ามา
>> ฉันสามารถไปกับวัตถุรูปแบบของฉัน
และตอนนี้ฉันสามารถเพิ่มฟังก์ชั่นใหม่ที่ระบุ
กฎการตรวจสอบสิ่งที่ฉันควรจะเพิ่มในรุ่นนี้
เพื่อให้แน่ใจว่ามันถูกต้องหรือเพื่อระบุสิ่งที่ไม่ได้หมายความว่าจะโพสต์ที่ถูกต้อง
และผมอยากจะบอกว่ามันเป็นเพียงการโพสต์ที่ถูกต้องเมื่อทั้งสองเขียนและร่างกาย
ไม่ว่างและนี่คือวิธีที่คุณทำมันใน Kohana
คุณสร้างฟังก์ชั่นใหม่ที่เรียกว่า "กฎ"
แล้วคุณโดยทั่วไปกลับแถวที่สมาคม
ที่กำหนดกฎการตรวจสอบสำหรับวัตถุนี้
เรากำลังจะกลับอาร์เรย์และจากนั้นสิ่งที่เรากำลังจะทำคือ
พูดว่า "ผู้เขียน" มันจะไปอาร์เรย์
ซึ่งจะไปแถวอื่นเรียกว่า "ไม่ว่าง".
แล้วฉันจะพูดว่า "ร่างกาย".
เอาล่ะและไวยากรณ์สำหรับนี้และโครงสร้างนี้
อาจจะดูยุ่งยากน้อยและมีความซับซ้อนน้อย
ถ้าคุณอ่านเอกสารก็ตรงไปตรงสวยที่จะคิดออก
แต่เป็นหลักนี้เป็นสิ่งที่คุณต้องทำเพื่อระบุ
บางกฎการตรวจสอบและมีจำนวนมากของกฎระเบียบที่แตกต่างกัน
Kohana ที่จะให้คุณฟรีเช่นคุณสามารถเพิ่มกฎระเบียบที่จะบอกว่า
มันต้องมีอย่างน้อยระยะเวลานี้
บางทีมันอาจจะเป็นตัวเลขได้ บางทีมันอาจจะเป็นตัวเลขอัลฟามี
บางทีมันอาจจะเป็นระยะเวลาที่มากที่สุดนี้เป็นต้นและอื่น ๆ มี
มีจำนวนมากของกฎระเบียบที่แตกต่างกันที่ Kohana ให้คุณมี
และคุณสามารถไปที่เว็บไซต์ของพวกเขามองไปที่เอกสาร
และคุณสามารถเห็นทุกสิ่งที่แตกต่างกันที่คุณสามารถทำได้
>> แต่นี้คือทั้งหมดที่ฉันต้องทำ
และตอนนี้เรามาดูสิ่งที่เกิดขึ้น
ถ้าผมส่งโพสต์ที่ว่างเปล่า
สิ่งที่จะเกิดขึ้นได้อย่างไร โอ้ไม่ฉันได้รับข้อผิดพลาด
ฉันได้รับการยกเว้นการตรวจสอบ
ดีก็เป็นสิ่งที่ดี
มันบอกว่ารูปแบบของฉันคือการที่ไม่ถูกต้อง
แต่ฉันไม่ต้องการที่จะแสดงข้อยกเว้น
ให้กับผู้ใช้ของฉันเมื่อพวกเขาพยายามที่จะส่งสิ่งที่ไม่ถูกต้องใช่ไหม
ผมต้องการที่จะให้พวกเขามีการจัดเรียงของข้อผิดพลาดบางอย่างเป็นมิตร
เมื่ออะไรผิดพลาด
สิ่งที่เรากำลังจะทำคือการที่เรากำลังจะ
ห่อทุกอย่างในวงลองจับ
จริงๆแล้วผมคิดว่านี่เป็นสิ่งที่คุณยังไม่ได้เรียนยัง
ใน CS50 เพราะ C, การเขียนโปรแกรมภาษาซี
ไม่ได้มีข้อยกเว้น แต่เกือบทุกภาษาอื่น ๆ เดียว
มีข้อยกเว้นดังนั้นจริงๆสั้นจริงๆ
ข้อยกเว้นคือสิ่งที่ชิ้นส่วนของรหัสสามารถ
โยนข้อยกเว้นเมื่ออะไรผิดพลาด
แต่แล้วบางทีบางชิ้นอื่น ๆ ของรหัสที่สูงขึ้น
สามารถจับข้อยกเว้นที่และทำอะไรกับมัน
>> ตัวอย่างเช่นในกรณีนี้
ชิ้นส่วนของรหัสที่พยายามที่จะบันทึกแบบ
มันตรวจสอบรูปแบบและถ้ามันบอกว่า "เอาล่ะแบบนี้ไม่ถูกต้อง"
ก็จะโยนข้อยกเว้นและนี่คือชนิดของเทียบเท่ากับ
ใน C คุณอาจกลับ -1 หรือสิ่งที่ต้องการที่
แล้วสำหรับผมที่ฟังก์ชั่นนี้รหัสของฉัน
ในระดับที่สูงที่ฉันสามารถลองและจับข้อยกเว้นว่า
และโดยทั่วไปพูดว่า "เอาล่ะถ้าผมจับข้อยกเว้นสิ่งที่ฉันจะทำอย่างไร"
หรือฉันสามารถเลือกที่จะไม่จับข้อยกเว้นที่และปล่อยให้คนสูงขึ้น
จับข้อยกเว้นหรือถ้าไม่มีใครจับมัน
แล้วโปรแกรมทั้งหมดเกิดปัญหาและบอกว่า
"อะไรบางอย่างผิดพลาดไปและผมก็ไม่สามารถจัดการกับมัน."
>> แต่สิ่งที่เราทำคือคุณตัดชิ้นส่วนของรหัสในบล็อกลอง
แล้วคุณจะยังเพิ่มสิ่งที่เรียกว่าบล็อกจับ
ซึ่งเป็นประเภทของรหัสที่จะพยายามและจับข้อยกเว้นที่อาจเกิดขึ้น
และอื่น ๆ ถ้าผมจับข้อยกเว้นนี้โดยเฉพาะ
หรือการทำให้ข้อยกเว้นแล้วสิ่งที่ผมจะทำคือ
ฉันจะตั้งข้อผิดพลาด - ผมคิดว่าเป็นวิธีที่ฉันทำมัน -
และผมจะตั้งข้อผิดพลาดไปยังวัตถุบางอย่าง
และแล้วสิ่งที่ผมจะทำคือถ้ามันกระทบข้อยกเว้นนี้
ก็จะไม่เปลี่ยนเส้นทางและถ้ามันไม่ได้เปลี่ยนเส้นทาง
มันจะออกมาจากถ้าบล็อกมา
และตีบล็อกนี้ / ใหม่ซึ่งต้องการที่ฉันต้องการทำ
หากมีข้อผิดพลาดแล้วผมต้องการที่จะกลับไปที่รูปแบบ
และแสดงข้อผิดพลาดที่
ตอนนี้สิ่งที่ฉันต้องการจะทำคือผมต้องการที่จะผ่านในข้อผิดพลาดที่
ในมุมมองของ
เอาล่ะฉันคิดว่าฉันมีมุมมองที่ถูกต้องที่นี่
และโดยทั่วไปฉันต้องการที่จะแสดงข้อผิดพลาดเหล่านั้นถ้าพวกเขาอยู่
ก่อนที่ผมจะเขียน HTML สำหรับว่าฉันจะได้อย่างรวดเร็วจริงๆ
แสดงให้คุณเห็นสิ่งที่โครงสร้างของข้อผิดพลาดนี้ลักษณะตัวแปรต้องการ
และนี่คือการปฏิบัติที่ดีในทั่วไป
หลายครั้งที่คุณจะได้รับสิ่งที่กลับมาจากวิธีการบางอย่าง
ฟังก์ชั่นบางอย่างในกรอบเว็บ
และคุณไม่ทราบว่าตัวแปรที่มีลักษณะเหมือน
เพื่อให้คุณไม่ทราบวิธีการทำงานกับมัน
ผมจะใช้วิธีการพิมพ์ r เพื่อพื้นพิมพ์ออกมา
>> และในขณะที่คุณสามารถเห็นมันบอกฉันว่ามันเป็นแถวร่วม
และคุณมีความสำคัญที่ผู้เขียนชี้ไปยังสตริงนี้
ผู้เขียนจะต้องไม่ว่างเปล่าและที่สำคัญอื่นของร่างกาย
ชี้ไปยังสตริงอื่นของร่างกายต้องไม่ว่างเปล่า
ฉันชอบเป็นไรเย็น
แล้วฉันสามารถย้ำผ่านแถวและพิมพ์ออกทุกข้อความเดียว
มันเป็นพื้นเช่นอาเรย์ที่มีพวงของข้อความ
สิ่งที่ผมจะทำคือ "ถ้าข้อผิดพลาด"
และฉันจะสร้างรายการเรียงลำดับ
และฉันจะย้ำถึงข้อผิดพลาดทั้งหมด
และนี่และตอนนี้ฉันจะลองส่งนี้อีกครั้ง
และขอดูสิ่งที่เราได้รับ
ตอนนี้เราได้รับรายชื่อนี้ดีข้อผิดพลาด
และนี้ยังคงเป็นที่น่าเกลียดสวย แต่นี้เห็นได้ชัดว่าสามารถจัดรูปแบบให้ดูดี
แต่แนวคิดพื้นฐานเป็นเพียงในไม่กี่บรรทัดของรหัส
เราสามารถที่จะตรวจสอบรูปแบบของเรา
ให้แน่ใจว่าบางเขตข้อมูลไม่ว่างเปล่า
และหากสิ่งที่ผิดพลาดไปแล้วกลับการจัดเรียงของข้อผิดพลาดบางอย่าง
จากนั้นผมก็จะนำเสนอกลับไปยังผู้
นอกจากนี้คุณยังสามารถปรับแต่งการตรวจสอบของคุณ
เพื่อให้คุณจริงจะมีข้อผิดพลาด
ที่มีมากขึ้นโดยเฉพาะการใช้งานหรือสิ่งที่ต้องการของคุณ
สิ่งที่อยู่โดยทั่วไปที่ปรับแต่งได้
>> แต่น่าเสียดายที่เรากำลังวิ่งออกมาจากเวลา
ดังนั้นฉันจะต้องถูกตัดออกจากเซสชั่นการเข้ารหัสอยู่ที่นี่
มีพวงของคุณสมบัติอื่น ๆ ที่ผมต้องการที่จะแสดงให้เห็นถึงสำหรับคุณ
ในตัวอย่างนี้
ตัวอย่างเช่นคุณสามารถเพิ่มแม่แบบในเว็บไซต์ของคุณ
ดังนั้นอาจจะมีการจัดเรียงบางส่วนของรหัส HTML ที่คุณต้องการใช้
ทุกหน้าเดียวในเว็บไซต์ของคุณและแทนวางที่
ในมุมมองของไฟล์ทุกเดียวที่คุณมีและที่เห็นได้ชัดว่าจะมีการปฏิบัติที่ไม่ดี
คุณโดยทั่วไปสามารถกำหนดแม่แบบเหล่านี้
และจากนั้นในการควบคุมของคุณพูดว่า "เอาล่ะฉันใช้แม่แบบนี้."
"ได้ทุกมุมมองของฉันใช้แม่แบบนี้."
และสิ่งสุดท้ายที่ฉันต้องการที่จะแสดงให้คุณได้เป็นอย่างดี
ที่เราไม่ได้มีเวลาสำหรับเป็นสคริปต์ข้ามไซต์
และโดยทั่วไปผมคิดว่าพวกคุณอาจจะได้เห็นใน CS50 -
ผมคิดว่าเดวิดลันอาจจะพูดคุยเกี่ยวกับวิธีการที่คุณมักจะสามารถฉีด
รหัสจาวาสคริปต์เป็น - มีคุณพูดคุยเกี่ยวกับเรื่องนี้
บางที? อาจจะไม่?
>> แต่หลายครั้งที่คุณสามารถฉีดรหัสจาวาสคริปต์ที่เป็นอันตราย
ลงในฐานข้อมูลของใครบางคนและถ้าพวกเขาไม่ได้หลบหนีที่ถูกต้อง
แล้วเมื่อพวกเขานำเสนอข้อมูลที่กลับมาให้กับผู้ใช้
แล้วมันอาจจะเรียงลำดับของรหัสจาวาสคริปต์แบบสุ่มที่คุณไม่ต้องการที่จะเกิดขึ้น
และผมจะแสดงให้เห็นถึงวิธีการที่คุณควรจะทำว่าภายใน Kohana
เป็นจริงจริงๆเรื่องง่าย
ฉันจะทำมันได้ในขณะนี้ใน 2 วินาทีอย่างแท้จริง
สิ่งที่คุณต้องทำคือการตัดพื้นสิ่งเหล่านี้
ในสิ่งที่เรียกว่าหน่วยงาน HTML นี้
และที่จะหลบหนีทุกตัวอักษรอย่างถูกต้อง
และให้แน่ใจว่าคุณไม่ได้รับปัญหานี้
[นักศึกษา] คุณสะกดการทดสอบครั้งแรกไม่ถูกต้อง
[แบรนดอนหลิว] โอ้โอ๊ะ
>> เอาล่ะนั่นคือทั้งหมดที่ผมจะร่วมกับคุณสำหรับวันนี้
สไลด์เหล่านี้จะได้รับการโพสต์ แต่เหล่านี้มักจะ
ทรัพยากรเดียวที่คุณควรจะต้องได้รับการเริ่มต้นกับ Kohana
คุณสามารถไปที่เว็บไซต์ พวกเขามีคู่มือการใช้งานและพวกเขายังมี API สำรวจ
เราสามารถสำรวจทั้งหมดหน้าที่แตกต่างกันและฟังก์ชั่นช่วยพวกเขาได้สำหรับคุณ
พวกเขามักมีข้อมูลเพียงพอในเว็บไซต์
ที่คุณสามารถใช้ในการเริ่มต้นและได้รับไปกับ Kohana
มีบทเรียนที่ไม่มากผมคิดว่าสำหรับ Kohana นอก
สิ่งที่พวกเขามีในเว็บไซต์ของที่นี่จึงน่าจะเป็นทางออกที่ดีที่สุดของคุณ
แต่ถ้าคุณต้องการที่จะไปกับกรอบเว็บ
และคุณไม่ต้องการให้มีการรับภาษาใหม่
และคุณต้องการบางสิ่งบางอย่างที่ค่อนข้างมีน้ำหนักเบาและมีเส้นโค้งการเรียนรู้ได้ง่าย
แน่นอนผมจะแนะนำ Kohana
นั่นอาจเป็นข้อเสนอที่ดีที่สุดสำหรับที่
สิ่งที่ตลก แต่เป็นถ้าเราใช้ Ruby on Rails,
เราจะได้ทำซ้ำสิ่งที่เราเพิ่งได้
และอาจจะมากขึ้นในภายใต้ 3 นาที
ไม่มีเรื่องตลก แต่การเรียนรู้ Ruby on Rails จะใช้เวลานานมาก
กว่ามันจะใช้เวลาในการเรียนรู้ Kohana
มันเป็นพื้นทางเลือกของคุณในสิ่งที่คุณต้องการที่จะเลือกที่จะเรียนรู้
แต่ถ้าคุณต้องการที่จะได้รับขึ้นและทำงานได้อย่างรวดเร็ว
Kohana แน่นอนเป็นทางเลือกที่ดีมาก
>> คำถามใด ๆ ที่ผ่านมาก่อนที่เราจะจบ ใช่
[นักศึกษา] วิธีที่เราจะบูรณาการที่
ในกรอบ CSS เหมือนที่คุณกำลังใช้เมื่อคุณได้รับการสอน?
คำถามคือวิธีการที่เราจะบูรณาการกับกรอบ CSS?
สิ่งที่เราอาจจะทำคือเราอาจจะรวมถึง
โฟลเดอร์ใหม่ที่เราจะถ่ายโอนข้อมูลทุกไฟล์ CSS ของเรา
แล้วเรายังต้องการเพิ่มแม่แบบใหม่
ในแม่แบบที่เราต้องการรวมถึงผู้ที่ CSS ไฟล์
เพื่อให้แน่ใจว่าพวกเขากำลังมีการอ้างอิงในทุกหน้าเดียว
และจากนั้นเมื่อคุณจริงเขียน HTML,
คุณเพียงแค่เพิ่มการเรียนที่เหมาะสมและ whatnot,
และตัวอย่างเช่นเมื่อคุณกำลังใช้สิ่งที่ต้องการรูปแบบ
ฟังก์ชั่นช่วยคุณสามารถเพิ่มค่าเพิ่มเติมในภายหลัง
เพื่อระบุสิ่งที่เรียนคุณต้องการที่จะยึดติดอยู่กับสิ่งต่างๆ
เพื่อพวกเขาจะได้รูปแบบได้อย่างถูกต้องและที่เป็นพื้นวิธีการที่คุณจะไป
>> คำถามใด ๆ อื่น ๆ
น่ากลัว
ขอขอบคุณสำหรับเวลาของคุณและขอขอบคุณสำหรับการมา
ฉันไม่ได้จะเพิ่มมากอื่น
แต่สิ่งที่รวดเร็วจริงๆที่ 1 คือเราไม่ได้มีการเชื่อมโยง
ในรูปแบบ
โง่จริงๆ
ขอเพิ่ม - จริงในมุมมองบล็อกดัชนี
ขออย่างรวดเร็วจริงๆเพิ่มการเชื่อมโยงที่จะไปยังหน้าใหม่ที่
หน้าเว็บที่เราสามารถแทรกโพสต์ใหม่
เรากำลังจะทำนี้
มีอะไรที่ดีที่จะมีในกลุ่มนี้ทั้ง HTM​​L หน้าที่ผู้ช่วย
ซึ่งทำสิ่งที่แตกต่างกันสำหรับคุณเพื่อให้คุณได้เห็นหน่วยงาน
ทำงานที่นี่ แต่พวกเขายังมีฟังก์ชั่นที่เรียกว่า "สมอ"
ซึ่งคุณสามารถพิมพ์ในบล็อก / ใหม่
และพูดว่า "โพสต์บล็อกใหม่."
และมันจะสร้างการเชื่อมโยงสำหรับคุณที่
และนี้ดูเหมือนว่าจริงๆจิ๊บจ๊อยที่จะทำ แต่นี้เป็นสิ่งที่ดี
เพราะสมมติว่าคุณกำลังจะย้ายเว็บไซต์ของคุณจาก 1 โดเมนไปยังอีก
และถ้าคุณเพิ่งเขียนออก URL ที่ตัวเอง
แล้วคุณจะต้องเปลี่ยน URL ที่
หรือบางทีคุณอาจย้ายจาก 1 โฟลเดอร์ย่อยกับโฟลเดอร์ย่อยอื่น
คุณจะต้องเปลี่ยน URL ทั้งหมดที่ตัวเอง
และที่ว่าไม่สนุก
คุณสามารถใช้สมอนี้ที่นี่
และคุณสามารถเปลี่ยนโดเมนหรือคำนำหน้าโฟลเดอร์ย่อย
ในการตั้งค่าครั้งเดียว
และจากนั้นก็จะนำไปใช้ทุกที่และนี่คืออีกครั้ง
เป็นตัวอย่างที่ดีของการไม่ทำซ้ำตัวเองแห้งรหัสของคุณออก
ไม่ว่าคุณจะทำซ้ำตัวเองและพยายามดึงในการเรียงลำดับของแฟ้มการกำหนดค่าบางอย่าง
หรือฟังก์ชั่นที่แตกต่างกันและมีการจัดการที่มันสำหรับคุณ
>> และสิ่งสุดท้ายที่ผมอยากจะแสดงให้คุณเป็น
สมมติว่าเรากำลังกลับไปที่การโพสต์นี้และฉันได้ประกอบด้วยบางเรียงความยาวจริงๆ
แต่ฉันลืมที่จะรวมถึงการเขียนของฉัน
ตอนนี้เมื่อฉันคลิกที่ "ส่งโพสต์"
ฉันเพียงแค่สูญเสียทุกอย่าง
No! เศร้าจริงๆ
ดังนั้นวิธีที่คุณจัดการกับที่?
นี่คือสิ่งที่เราทำ
สิ่งที่เราทำที่นี่สำหรับฟังก์ชั่นเหล่านี้พื้นที่อินพุตและพื้นที่ข้อความ
ถ้าเรารวมถึงพารามิเตอร์ที่สองแล้วค่าของพารามิเตอร์ที่สองที่
เป็นไปได้สิ่งที่เขตข้อมูลจะถูกบรรจุครั้งแรกกับ
สิ่งที่เราจะทำคือการควบคุมในบล็อกของเรา
เราสามารถผูกตัวแปรอื่น
เรียกว่า "ค่า" อาจจะ
และผ่านในอาร์เรย์การโพสต์อย่างแท้จริง
ซึ่งหมายความว่าหากการตรวจสอบล้มเหลว
ส่งผ่านไปยังอาร์เรย์ฉันโพสต์ที่ผมส่งจากคำขอที่ผ่านมา
และวิธีการที่ฉันสามารถใช้ค่าจากการส่งผ่านของฉัน
ที่จะเพิ่มจำนวนประชากรของฟิลด์
ตอนนี้ฉันสามารถทำสิ่งที่ต้องการค่าเขียน
และค่าของร่างกายและวิธีการที่ตอนนี้ถ้าฉันทำบางสิ่งที่สุ่ม
และคลิก "ส่งโพสต์" จากนั้นก็อยู่ที่นั่น
แต่เรากำลังจะทำงานเป็นปัญหาอื่น
ที่ทำงาน แต่ถ้าผมไปที่หน้าครั้งแรกมาก
มันจะผิดพลาดและที่ว่าเพราะครั้งแรกที่
เราไปที่หน้าตัวแปรการโพสต์นี้ยังไม่ได้รับการกำหนดไว้ยัง
มันเป็นโมฆะ มันไม่ได้มีอยู่
>> และสิ่งที่เราอยากจะพูดคือถ้าคีย์นี้มีอยู่แล้ว
แล้วกลับค่าของแถวนี้
แต่ถ้าคีย์ไม่อยู่แล้วกลับสตริงที่ว่างเปล่า
นั่นคือการทำงานที่เราต้องการที่นี่
เราต้องการที่จะตรวจสอบว่าที่สำคัญที่มีอยู่ก่อนที่จะพยายามที่จะใช้อาร์เรย์
และโชคดีที่พอ
Kohana ยังช่วยให้เราฟังก์ชั่นผู้ช่วยที่
พวกเขามีชุดทั้งหมดนี้ฟังก์ชั่น
ภายใต้ชื่อ ARR, สั้นสำหรับอาร์เรย์
และพวกเขามีฟังก์ชั่นที่ 1 เรียกว่า "ได้รับ"
และคุณสามารถผ่านในอาร์เรย์
และคุณสามารถผ่านในชื่อของคีย์
จากนั้นก็เป็นสิ่งที่จะทำคือมันจะพยายามที่จะได้รับสำคัญที่
แต่ถ้าที่สำคัญที่ไม่ได้มีอยู่ในอาร์เรย์
แล้วมันจะกลับว่างเปล่าหรือเรายังสามารถระบุค่าเริ่มต้นผมเชื่อว่า
ซึ่งเป็นสิ่งที่ดี
ตอนนี้ถ้าเราทำสิ่งเดียวกันอีกครั้ง
แล้วคุณจะเห็นในขณะนี้การทำงานครั้งแรกรอบ
และอีกครั้งถ้าเราพิมพ์ลงในบางสิ่งที่สุ่ม
และพยายามส่งแล้วมันอยู่ที่นั่น
>> และผมคิดว่าผมยังสามารถแสดงให้คุณเห็นวิธีการเพิ่มแม่แบบได้อย่างรวดเร็วจริงๆ
เราสามารถทำอะไรที่เป็นครั้งแรกที่เราสามารถเพิ่มมุมมองใหม่ที่เรียกว่า "template.php"
อ่านที่อยู่ในโฟลเดอร์ที่
และสิ่งที่ผมจะทำคือผมจะพิมพ์ออกมาสิ่งที่เรียกว่า "เนื้อหา"
ซึ่งจะเป็นเนื้อหาหลักของฉัน
และอาจจะที่ด้านล่างสุดฉันจะเพิ่มการพูด
ลิขสิทธิ์
[ไม่ได้ยินคำถามของนักเรียน]
[แบรนดอนหลิว] อาจจะเป็นแม่แบบพื้นฐานสุดฉันต้องการใช้
ฉันต้องการที่จะมีโฟลเดอร์ที่มีลิขสิทธิ์ของฉันในทุกหน้าเดียว
และตอนนี้สิ่งที่ผมกำลังจะทำภายในการควบคุมของฉัน
ตอนนี้แทนที่จะพูดว่า "ขยายควบคุม"
ฉันจะพูดว่า "ขยาย Controller_Template"
และตอนนี้แทนที่จะพูดว่า "การตอบสนองของร่างกายเท่ากับมุมมองนี้"
ฉันจะพูดว่า "เนื้อหาแม่แบบนี้ -"
และผมคิดว่า - ฉันจะใส่เครื่องหมายเท่ากับ?
ฉันลืม ใช่ฉันคิดว่าดังนั้น
และตอนนี้ฉันจะตั้งค่าตัวแปรเนื้อหาที่จะเท่ากับมุมมอง
ฉันสามารถทำเช่นเดียวกันที่นี่
และตอนนี้ถ้าผมรีเฟรชคุณสามารถเห็นในขณะนี้ลิขสิทธิ์นี้ถูกเพิ่มมี
และเพียงแค่ทำให้บางการโพสต์แบบสุ่ม
และจากนั้นอีกครั้งคุณจะเห็นว่าลิขสิทธิ์เป็นที่ด้านล่างสุดของหน้าเว็บ
>> ใหญ่ นั่นคือทั้งหมดที่ผมอยากจะแสดงให้พวกคุณ
[เสียงปรบมือ]
คำถามใด?
[CS50.TV]