บทช่วยสอน CakePHP สำหรับผู้เริ่มต้น: CakePHP Framework คืออะไร
สรุปการสอน CakePHP
ในบทช่วยสอน CakePHP นี้ เราจะเรียนรู้แนวคิดพื้นฐานทั้งหมดตั้งแต่เริ่มต้น บทช่วยสอนนี้ครอบคลุมถึงคำจำกัดความของ CakePHP ประวัติ คุณสมบัติ โครงสร้างและการกำหนดค่าโฟลเดอร์ และรายละเอียดสั้นๆ เกี่ยวกับวิธีการทำงานของเฟรมเวิร์ก CakePHP
CakePHP คืออะไร?
CakePHP เป็นกรอบงานโอเพ่นซอร์สสำหรับการพัฒนาและบำรุงรักษาเว็บแอปพลิเคชันที่สร้างด้วย PHP อย่างรวดเร็ว โดยยึดตามแนวคิดสถาปัตยกรรม MVC ซึ่งช่วยให้สร้างเว็บแอปพลิเคชัน PHP ได้ง่ายและสะดวกด้วยโค้ดน้อยลง CakePHP ยังช่วยให้คุณแยกตรรกะทางธุรกิจออกจากเลเยอร์ข้อมูลและเลเยอร์การนำเสนอได้อีกด้วย
เหตุใดจึงต้องใช้ CakePHP Framework
นี่คือคุณประโยชน์/ข้อดีที่สำคัญของการใช้เฟรมเวิร์ก CakePHP:
- Cake PHP เป็นหนึ่งในแพลตฟอร์มการพัฒนาเว็บไซต์ที่รวดเร็วที่สุด
- CakePHP ช่วยให้นักพัฒนาได้รับการควบคุมฐานข้อมูลและการสืบค้น SQL ที่ได้รับการปรับปรุง
- ช่วยให้ผู้ใช้พัฒนาเว็บแอปพลิเคชันที่มีประสิทธิภาพโดยไม่สูญเสียความยืดหยุ่นของสภาพแวดล้อมอย่างรวดเร็ว
- การสนับสนุนสำหรับ PostgreSQL, SQLite, MySQL, PEAR-DB สำหรับ ADODB ซึ่งเป็นไลบรารีฐานข้อมูลนามธรรม
- อำนวยความสะดวกให้กับ URL ที่เป็นมิตรกับเครื่องมือค้นหา
- มอบฟีเจอร์ต่างๆ เช่น การตรวจสอบอินพุตและเครื่องมือฆ่าเชื้อซึ่งทำให้แอปมีความปลอดภัย
- การสร้างเทมเพลตด้วยไวยากรณ์ PHP ที่คุ้นเคย
ประวัติความเป็นมาของ CakePHP
ในบทช่วยสอน CakePHP นี้ เราจะพูดถึงประวัติของเฟรมเวิร์ก CakePHP:
| ปี | ขั้น |
|---|---|
| 2005 | CakePHP ได้รับการพัฒนาโดย Michal Tatarynowicz เมื่อวันที่ 15 เมษายน 2005 |
| 2005 | CakePHP เผยแพร่ภายใต้ใบอนุญาต MIT และเปิดให้นักพัฒนาชุมชนใช้งาน |
| 2005 | Larry E Masters เข้ามารับตำแหน่งหัวหน้านักพัฒนา |
| 2006 | เวอร์ชัน 1.0 เปิดตัวแล้ว |
| 2011 | เวอร์ชัน 2 เปิดตัวแล้ว |
| 2014 | เวอร์ชัน 3 ได้รับการเผยแพร่ซึ่งเพิกถอนเวอร์ชันก่อนหน้าโดยสิ้นเชิง |
| 2016 | เวอร์ชัน 3.3.3 Of CakePHP เปิดตัวพร้อมฟีเจอร์ขั้นสูงมากมาย |
| 2019 | เวอร์ชัน 3.7.9 เป็นเวอร์ชันล่าสุดที่เผยแพร่ |
| 2021 | ทีมงานหลักของ CakePHP ประกาศความพร้อมของ CakePHP 4.2.2 ทันที |
คุณสมบัติของ CakePHP
นี่คือคุณสมบัติที่สำคัญของ CakePHP
- ชุมชนที่กระตือรือร้นและเป็นมิตร
- สถาปัตยกรรม MVC
- การตรวจสอบในตัว
- ทำงานได้จากไดเร็กทอรีของเว็บไซต์ใดๆ โดยมีการกำหนดค่า Apache บางส่วนหรือไม่มีเลย
- เครื่องยนต์เทมเพลต
- แคช Operations
- การโต้ตอบฐานข้อมูล CRUD อย่างง่ายดาย
- การตรวจสอบในตัว
- การจัดการส่วนประกอบต่างๆ เช่น อีเมล คุกกี้ ความปลอดภัย เซสชัน และคำขอ
- ดูตัวช่วยสำหรับ Javaต้นฉบับ, อาแจ็กซ์, แบบฟอร์ม HTML และอื่นๆ
CakePHP- โครงสร้างโฟลเดอร์
ในบทช่วยสอนเฟรมเวิร์ก CakePHP นี้ เราจะเรียนรู้เกี่ยวกับโครงสร้างโฟลเดอร์ CakePHP
ด้านล่างนี้เป็นโครงสร้างโฟลเดอร์ของ CakePHP:
| โฟลเดอร์ | Descriptไอออน |
|---|---|
| การทดสอบ | โฟลเดอร์นี้ประกอบด้วยกรณีทดสอบสำหรับแอปพลิเคชันของคุณ |
| ทีเอ็มพี | โฟลเดอร์ชั่วคราวเก็บข้อมูลชั่วคราว |
| ผู้ขาย | โฟลเดอร์นี้ช่วยให้คุณจัดเก็บ CakePHP และการอ้างอิงแอปพลิเคชันอื่นๆ จะถูกติดตั้ง |
| Webroot | การขอ Webroot เก็บไฟล์ทั้งหมดที่คุณต้องการให้เข้าถึงได้แบบสาธารณะ |
| ถัง | โฟลเดอร์ bin เก็บไฟล์ปฏิบัติการของ Cake console |
| ท่อน | ประกอบด้วยไฟล์บันทึกของคุณ ซึ่งขึ้นอยู่กับการกำหนดค่าบันทึกของคุณ |
| การกำหนดค่า | โฟลเดอร์ปรับแต่งจะจัดเก็บไฟล์การกำหนดค่าที่ CakePHP ใช้ |
| ปลั๊กอิน | โฟลเดอร์นี้มีปลั๊กอินสำหรับแอปพลิเคชัน เป็นที่จัดเก็บปลั๊กอินที่แอปพลิเคชันของคุณใช้ |
| ซีเนียร์ | ประกอบด้วยงานคอนโซลและคำสั่งในการจัดการแอปพลิเคชันของคุณ
Locale Stores ไฟล์สตริงสำหรับการทำให้เป็นสากล โมเดลประกอบด้วยตาราง เอนทิตี และพฤติกรรมของแอปพลิเคชันของคุณ |
การกำหนดค่า CakePHP
CakePHP มาพร้อมกับไฟล์กำหนดค่าเดียวตามค่าเริ่มต้น นอกจากนี้ยังช่วยให้คุณสามารถปรับเปลี่ยนได้ตามความต้องการของคุณ มีโฟลเดอร์ชื่อ "config" มอบให้เพื่อจุดประสงค์นี้
| ชื่อตัวแปร | Descriptไอออน |
|---|---|
| การแก้ปัญหา | ช่วยให้คุณเปลี่ยนเอาต์พุตการดีบัก CakePHP |
| แอพ.เนมสเปซ | ช่วยให้คุณค้นหาคลาสแอปภายใต้ |
| App.baseUrl | ยกเลิกการแสดงความคิดเห็นคำหลักนี้เมื่อคุณไม่ต้องการใช้ mod_rewrite ของ Apache กับ CakePHP |
| การเข้ารหัสแอป | คำสั่งนี้ช่วยให้คุณกำหนดว่าแอปพลิเคชันของคุณจะใช้การเข้ารหัสใด |
| แอพ.ฐาน | เป็นไดเร็กทอรีฐานที่แอปอยู่ใน หากเป็นเท็จ ระบบจะตรวจพบโดยอัตโนมัติ |
| App.fullBaseUrl | ชื่อโดเมนที่ผ่านการรับรอง |
| แอป.webroot | เป็นไดเร็กทอรีเว็บรูท |
| App.wwwRoot | เส้นทางของไฟล์ไปยังเว็บรูท |
| App.jsBaseUrl | เส้นทางไปยังไดเร็กทอรี js สาธารณะ |
| App.paths | กำหนดค่าเส้นทางสำหรับทรัพยากรที่ไม่ใช่คลาส |
| App.cssBaseUrl | เป็นเส้นทางเว็บไปยังไดเร็กทอรี css สาธารณะภายใต้ webroot |
| ความปลอดภัยเกลือ | มันเป็นสตริงสุ่มที่ใช้ในการแฮช |
| Asset.ประทับเวลา | ตัวแปรนี้อนุญาตให้คุณเพิ่มการประทับเวลาเมื่อใช้ตัวช่วยที่เหมาะสม |
แบบแผนการตั้งชื่อเค้ก- PHP
Cake ปฏิบัติตามแนวคิดของอนุสัญญามากกว่าการกำหนดค่า วิธีการตั้งชื่อแบบอนุสัญญาช่วยให้คุณจัดระเบียบการทำงานของเว็บแอปพลิเคชันได้ ในวิธีนี้ ต้องคั่นคำมากกว่าหนึ่งคำในชื่อด้วย “_” เมื่อตั้งชื่อไฟล์ และคั่นด้วยตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เมื่อตั้งชื่อคลาส
ส่วน MVC ต้องเป็นไปตามไวยากรณ์ที่กำหนดด้านล่าง:
| ชื่อไฟล์ | ชื่อคลาส | ชื่อคลาสพื้นฐาน | สถานที่ | |
|---|---|---|---|---|
| รุ่น | ชื่อไฟล์ ชื่อตารางในรูปแบบเอกพจน์ที่มีนามสกุล .php เช่น order.php |
ชื่อไฟล์ในกรณี Camel เช่น Order | แอพโมเดล | /แอพ/รุ่น |
| ตัวควบคุม | tablename_controller พร้อมนามสกุล .php เช่น: ordcrs_controllcr.php | ชื่อตารางต่อท้ายตัวควบคุม เช่น OrdcrsController | แอพคอนโทรลเลอร์ | /app/ตัวควบคุม |
| รายละเอียด | ชื่อการดำเนินการในคอนโทรลเลอร์ที่มีนามสกุล .ctp เช่น add.ctp | ไม่มีชั้นเรียน มุมมอง ค แท็ก HTML และ PHP - | /app/vuews/ชื่อคอนโทรลเลอร์ |
การกำหนดค่าฐานข้อมูล
CakePHP ช่วยให้คุณสามารถกำหนดค่าฐานข้อมูลได้ config/app.php ไฟล์. ให้การเชื่อมต่อเริ่มต้นพร้อมพารามิเตอร์ที่ให้มาซึ่งคุณสามารถปรับเปลี่ยนได้ตามต้องการ
พารามิเตอร์ที่สำคัญได้รับด้านล่าง:
| ฐานข้อมูล | ชื่อฐานข้อมูล |
|---|---|
| พอร์ต (ไม่จำเป็น) การเข้ารหัส |
พอร์ต TCP หรือซ็อกเก็ต Unix ที่ใช้เชื่อมต่อกับเซิร์ฟเวอร์ |
| เขตเวลา | เขตเวลาของเซิร์ฟเวอร์ที่จะตั้งค่า |
| schema | ช่วยให้คุณระบุสคีมาที่คุณสามารถใช้ได้ |
| unix_socket | ฐานข้อมูลนี้ใช้โดยไดรเวอร์เพื่อเชื่อมต่อผ่านไฟล์ซ็อกเก็ต Unix |
| คีย์เอสเอสแอล | เป็นเส้นทางของไฟล์ไปยังไฟล์คีย์ SSL |
| ssl_cert | เป็นเส้นทางไฟล์ไปยังไฟล์ใบรับรอง SSL |
| ssl_ca | เป็นเส้นทางไฟล์ไปยังผู้ออกใบรับรอง SSL |
| เข้าสู่ระบบ | คำนี้ช่วยให้คุณดำเนินการบันทึกแบบสอบถาม |
| ในนั้น | รายการแบบสอบถามที่ควรส่งไปยังเซิร์ฟเวอร์ฐานข้อมูลทุกครั้งที่สร้างการเชื่อมต่อ |
| ตั้งค่าเป็นจริงหากคุณต้องการใช้คำสงวนหรืออักขระพิเศษ |
MVC ทำงานอย่างไรใน CakePHP
ตอนนี้เราจะเรียนรู้วิธีการทำงานของ MVC ใน CakePHP ในบทช่วยสอนเฟรมเวิร์ก CakePHP นี้
มันเป็นวิธีแบบไดนามิกในการสร้างกลไกสำคัญของเว็บแอปพลิเคชัน โมเดล มุมมอง และคอนโทรลเลอร์แยกจากกัน

Cake PHP แบ่งการดำเนินการออกเป็นสามส่วน:
- โมเดล: ใช้สำหรับการโต้ตอบกับฐานข้อมูลทั้งหมด
- มุมมอง: ใช้สำหรับเอาต์พุตและจอแสดงผลทั้งหมด
- ตัวควบคุม: ใช้เพื่อควบคุมการไหลของแอปพลิเคชัน
นี่คือขั้นตอนในการใช้สถาปัตยกรรม MVC ใน CakePHP:
ขั้นตอน 1) ลูกค้าหรือผู้ใช้โต้ตอบกับมุมมอง
ขั้นตอน 2) ดูตัวควบคุมการแจ้งเตือนของเหตุการณ์เฉพาะ
ขั้นตอน 3) โดยจะส่งคำขอฐานข้อมูลไปยัง Model และ Controller เพื่ออัพเดตโมเดล
ขั้นตอน 4) มุมมองการแจ้งเตือนโมเดลว่ามีการเปลี่ยนแปลง
ขั้นตอน 5) View ได้รับข้อมูลโมเดลและอัพเดตตัวเองตามข้อมูลที่ได้รับ
ทำไมต้องใช้ MVC?
- CakePHP MVC ช่วยให้คุณแยกตรรกะทางธุรกิจออกจากการนำเสนอและการดึงข้อมูล
- ไซต์แบ่งออกเป็นส่วนตรรกะซึ่งคุณสามารถควบคุมด้วยตัวควบคุมเฉพาะได้
- เมื่อมีการทดสอบและดีบักแอปพลิเคชัน นักพัฒนาทุกคนก็จะช่วยคุณค้นหาและแก้ไขข้อผิดพลาดโดยไม่ต้องมีรายละเอียดทั้งหมดของโค้ด
ข้อเสียของการใช้เฟรมเวิร์ก CakePHP
- เอกสารสนับสนุนของ CakePHP ไม่ครอบคลุมเท่าที่ควร
- หากต้องการใช้ซอฟต์แวร์ CakePHP นักพัฒนาจำเป็นต้องอัปเดตเส้นทางเริ่มต้นสำหรับการสร้าง URL ที่สวยงาม ซึ่งทำงานได้ง่ายกว่ามากเมื่อเทียบกับเฟรมเวิร์ก PHP อื่นๆ
- CakePHP การกำหนดเส้นทางทางเดียวเมื่อเปรียบเทียบกับเฟรมเวิร์กอื่น
- การเรียนรู้ PHP กรอบไม่ใช่เรื่องง่าย
- ข้อเสนอการกำหนดเส้นทางทางเดียวถือเป็นข้อเสียอีกประการหนึ่งเมื่อเปรียบเทียบกับเฟรมเวิร์กเช่น Ruby on Rails
สรุป
- CakePHP เป็นเฟรมเวิร์กโอเพ่นซอร์สที่ช่วยทำให้การพัฒนาและบำรุงรักษาแอพ PHP ง่ายขึ้นมาก
- CakePHP ช่วยให้นักพัฒนาได้รับการควบคุมฐานข้อมูลและการสืบค้น SQL ที่ได้รับการปรับปรุง
- ได้รับการพัฒนาโดย Michal Tatarynowicz เมื่อวันที่ 15 เมษายน 2005
- สถาปัตยกรรม MVC และการตรวจสอบภายในเป็นคุณสมบัติที่สำคัญที่สุดของ CakePHP
- CakePHP มาพร้อมกับไฟล์กำหนดค่าเพียงไฟล์เดียวตามค่าเริ่มต้น ซึ่งช่วยให้คุณสามารถแก้ไขได้ตามความต้องการของคุณ
- วิธีการตั้งชื่อตามแบบแผนของ CakePHP ช่วยให้คุณสามารถจัดระเบียบการทำงานของเว็บแอปพลิเคชั่นได้
- CakePHP ให้คุณกำหนดค่าฐานข้อมูลในไฟล์ config/app.php
- Cake PHP แบ่งการดำเนินการ MVC ออกเป็นสามส่วน:
- รุ่น: ใช้สำหรับการโต้ตอบฐานข้อมูลทั้งหมด มุมมอง: ใช้สำหรับเอาต์พุตและจอแสดงผลทั้งหมด ตัวควบคุม: ใช้ควบคุมโฟลว์แอปพลิเคชัน
- ข้อได้เปรียบที่ใหญ่ที่สุดของการใช้ MVC ใน CakePHP คือช่วยให้คุณแยกตรรกะทางธุรกิจออกจากการนำเสนอและการดึงข้อมูล
- ข้อเสียเปรียบที่ใหญ่ที่สุดของ CakePHP คือการสนับสนุนเอกสารของ CakePHP นั้นไม่ครอบคลุมเท่าที่ควร
