บทความนี้ไม่มีจาก |
เค้กพีเอชพี (CakePHP) คือ เฟรมเวิร์กที่เขียนขึ้นโดยใช้ภาษาพีเอชพี ซึ่งเป็นตัวช่วยสำหรับพัฒนาเว็บโดยใช้ภาษา PHP และถูกออกแบบบนพื้นฐาน MVC (Model, View, Controller) กล่าวคือ CakePHP ถูกพัฒนาขึ้นโดยใช้ภาษาพีเอชพี ซึ่งช่วยให้สามารถพัฒนาเว็บได้เร็วยิ่งขึ้น โดยเน้นที่การพัฒนาระบบเว็บที่มีขนาดใหญ่ ซึ่งโดยทั่วไปแล้วจะใช้เวลาในการพัฒนามาก แต่หากใช้ CakePHP ก็จะสามารถพัฒนาได้รวดเร็วยิ่งขึ้นเพราะ CakePHP มีตัวช่วย และยังเขียน Code เพียงเล็กน้อยก็สามารถทำงานได้ (Write less do more)
PHP Framework
PHP Framework เป็นศูนย์รวมของ Class ที่ถูกพัฒนาขึ้นในรูปแบบของ OOP (Object Oriented Programming) โดยมี run-time ที่ช่วยในการพัฒนาเว็บแอปพลิเคชันได้อย่างรวดเร็ว ในการพัฒนาเว็บแอปพลิเคชันโดยทั่วไป นักพัฒนาจะเก็บไฟล์และโครงสร้างโปรแกรมของตัวเองไว้ใช้เพื่อให้การพัฒนาเว็บเป็นไปด้วยความรวดเร็ว แต่ก็มีข้อเสียคือนักพัฒนาคนอื่นต้องมาเรียนรู้ในแต่ละ Class ว่าแต่ละ Class มี Member อะไร และมี Function อะไร ซึ่งทำให้เสียเวลามาก นั่นก็หมายความว่านักพัฒนาแต่ละคนจะรู้เพียง Class ของตัวเองแต่คนอื่นต้องใช้เวลาในการเรียนรู้ ทางแก้คือใช้ CakePHP โดยนักพัฒนาแต่ละคนจะใช้มาตรฐานเดียวกันในการพัฒนา Web Application ซึ่งทำให้การพัฒนาเป็นไปในทิศทางเดียวกันเรียกว่า ธรรมเนียมการเขียนโปรแกรมเดียวกัน
ใน CakePHP จะถูกออกแบบมาให้ช่วยในการจัดการ Active Record, Association Data Mapping, Front Controller และ MVC โดย MVC จะเป็นหัวใจหลักของ CakePHP โดยมี Model View และ Controller
จากการออกแบบของ CakePHP นั้นทำให้นักพัฒนาไม่ต้องเสียเวลาในการแก้ปัญหาทั่ว ๆ ไปของโปรแกรม นักพัฒนาสามารถแยกส่วนของ Business logic ออกมาต่างหากทำให้การพัฒนามีความรวดเร็วมากยิ่งขึ้น
CakePHP สามารถทำงานได้ทั้ง PHP4 และ PHP5 ธรรมเนียมการพัฒนาสามารถปรับใช้ได้กับทั้ง และ ซึ่งไม่เหมือนกับ ส่วนมากที่ผู้พัฒนาต้องเลือกเวอร์ชันของ PHP ให้เข้ากันได้ ซึ่งบางครั้ง web server จะมีเพียง หรือ ตัวใดตัวหนึ่งเท่านั้น แต่ในที่นี้แนะนำให้ใช้ ในการพัฒนาเว็บแอปพลิเคชันด้วย CakePHP
แน่นอน CakePHP เป็น และเป็นของฟรีใครก็สามารถใช้ได้ ซึ่งสามารถแจกจ่ายภายใต้การอนุญาตของ MIT นั่นก็หมายความว่านอกจากจะเป็นของฟรีแล้วเรายังสามารถที่จะปรับเปลี่ยนซอสโค๊ดได้
หลักการ MVC (Model View and Controller)
MVC เป็นสถาปัตยกรรมของการเขียนโปรแกรมแบบใหม่ที่แยกส่วนการทำงานแต่ละส่วนให้เป็นอิสระต่อกัน คือ ส่วนของ Model เป็นส่วนที่ทำงานอยู่กับฐานข้อมูล
M คือ Model, V คือ View และ C คือ Controller
Model เป็นส่วนที่ติดต่อกับฐานข้อมูล โดย Model จะรับคำสั่งมาจาก Controller ซึ่งเป็นคำสั่งในการทำงานกับฐานข้อมูล เช่น SELECT, INSERT, UPDATE หรือ DELETE เป็นต้น โดยหลังจาก Model ทำงานตามคำสั่งเรียบร้อยแล้วก็จะ Return ค่ากลับไปที่ Controller อีกครั้งเพื่อให้ Controller ส่งให้ View ต่อไป
View เป็นส่วนหลักของ หรือส่วนติดต่อกับผู้ใช้ ซึ่ง View สามารถที่จะมี Template ของ Layout ที่แตกต่างกันไปได้ โดยข้อมูลต่าง ๆ จะถูกส่งมาจาก Controller แล้วนำมาแสดงผลที่ View เช่นเดียวกันหากเป็นข้อมูลจากฟอร์มก็จะสร้างที่ View แล้วส่งต่อให้กับ Controller ต่อไป
Controller เป็น หลักของโปรแกรมซึ่งเป็นตัวเชื่อมระหว่าง View กับ Model เช่น การรับค่าจากฟอร์มโดยฟอร์มอยู่ที่ View ส่งค่าให้กับ Controller แล้ว Controller ก็จะทำการสร้าง Logic ในการบันทึกข้อมูล แล้วส่งให้แก่ Model ซึ่ง Model ก็จะรับ Logic ในการบันทึกแล้วบันทึกข้อมูลลงฐานข้อมูลต่อไป
หลักการทำงานของ MVC
- เมื่อ Client มีการร้องขอผ่าน View
- ข้อมูลจะส่งผ่านไปหา Controller โดย Controller จะเป็นตัวจำแนก Action ต่าง ๆ หรือเป็น Business Logic ของระบบ
- จากนั้น Controller ก็จะร้องขอไปยัง Model จาก Action นั้น ๆ เช่นร้องขอการเลือกข้อมูลทั้งหมดจากตาราง
- เมื่อ Model รับการร้องขอก็จะทำการ Query ข้อมูลตามที่ Controller ส่งมา
- Model จะส่งข้อมูลที่ได้กลับมาหา Controller
- Controller ก็จะทำการ Set ค่าลงในตัวแปรเพื่อส่งให้ View ต่อไป
- View ก็จะนำตัวแปรเหล่านั้นไปทำการแสดงผลตามต้องการได้
คุณสมบัติของ CakePHP
CakePHP เป็น framework ที่ช่วยให้เราสามารถพัฒนาเว็บแอพลิเคชั่นได้อย่างรวดเร็วโดยคุณสมบัติโดยทั่วไปของ CakePHP นั้น มีดังนี้
- ใช้รูปแบบของ Model-View-Controller (MVC)
- สนับสนุนฐานข้อมูลที่หลากหลาย เช่น MySQL, PostgreSQL และฐานข้อมูลอื่น ๆ
- ง่ายต่อการติดตั้งทั้งใน Unix และ Windows
ความต้องการของ CakePHP
HTTP Server เช่น Apache ที่เปิดโหมด session และ mod_rewrite
PHP 4.3.2 หรือสูงกว่า แน่นอนว่า CakePHP สามารถทำงานได้ทั้ง PHP4 และ PHP5
ระบบฐานข้อมูล ที่ทำงานได้เช่น MySQL, PostgreSQL และ
ธรรมเนียมการเขียน Controller
ก่อนอื่นมาเรียนรู้การเขียน Controller ก่อน เพื่อให้เข้าใจง่าย เนื่องจาก Controller เป็น Business Logic หลักของโปรแกรมที่เราต้องการสร้างขึ้น พูดง่าย ๆ ว่าเป็น Logic ของโปรแกรมหรือลำดับการทำงานของโปรแกรมที่เราจะเขียนขึ้น โดย Controller เป็นตัวกลางระหว่าง Model กับ View
Controller แปลง่าย ๆ ก็คือ ตัวควบคุมนั่นเอง ใน CakePHP Controller เป็นตัวควบคุมการไหลของข้อมูลระหว่างผู้ใช้ในส่วนของ View กับส่วนที่ติดต่อฐานข้อมูลในส่วนของ Model
ในหัวข้อที่ผ่านมาเราได้ทำการเชื่อมต่อกับฐานข้อมูลแล้วคราวนี้เรามาเริ่มเขียน Controller กันก่อน โดยใช้ ที่ถนัดเช่น Editplus
ไฟล์ app/controllers/contents_controller.php
<?php class ContentsController extends AppController{ var $name= ‘Contents’; function index(){ $this->set (‘contents’, $this->Content->find (‘all’) ) ; //ส่งค่าให้แก่ view โดยกำหนดค่าให้กับตัวแปร contents } }
wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
bthkhwamniimmikarxangxingcakaehlngthimaidkrunachwyprbprungbthkhwamni odyephimkarxangxingaehlngthimathinaechuxthux enuxkhwamthiimmiaehlngthimaxacthukkhdkhanhruxlbxxk eriynruwacanasaraemaebbnixxkidxyangiraelaemuxir mikaraenanawa bthkhwamnithnghmdhruxbangswnkhwryayipokhrngkarwikitara xphipray enuxngcakkarcdrupaebbenuxhaimtrngtamnoybaykhxngwikiphiediythiepnsaranukrm aelaxacekhakbokhrngkarwikitaramakkwa ekhkphiexchphi CakePHP khux efrmewirkthiekhiynkhunodyichphasaphiexchphi sungepntwchwysahrbphthnaewbodyichphasa PHP aelathukxxkaebbbnphunthan MVC Model View Controller klawkhux CakePHP thukphthnakhunodyichphasaphiexchphi sungchwyihsamarthphthnaewbiderwyingkhun odyennthikarphthnarabbewbthimikhnadihy sungodythwipaelwcaichewlainkarphthnamak aethakich CakePHP kcasamarthphthnaidrwderwyingkhunephraa CakePHP mitwchwy aelayngekhiyn Code ephiyngelknxyksamarththanganid Write less do more PHP FrameworkPHP Framework epnsunyrwmkhxng Class thithukphthnakhuninrupaebbkhxng OOP Object Oriented Programming odymi run time thichwyinkarphthnaewbaexpphliekhchnidxyangrwderw inkarphthnaewbaexpphliekhchnodythwip nkphthnacaekbiflaelaokhrngsrangopraekrmkhxngtwexngiwichephuxihkarphthnaewbepnipdwykhwamrwderw aetkmikhxesiykhuxnkphthnakhnxuntxngmaeriynruinaetla Class waaetla Class mi Member xair aelami Function xair sungthaihesiyewlamak nnkhmaykhwamwankphthnaaetlakhncaruephiyng Class khxngtwexngaetkhnxuntxngichewlainkareriynru thangaekkhuxich CakePHP odynkphthnaaetlakhncaichmatrthanediywkninkarphthna Web Application sungthaihkarphthnaepnipinthisthangediywkneriykwa thrrmeniymkarekhiynopraekrmediywkn in CakePHP cathukxxkaebbmaihchwyinkarcdkar Active Record Association Data Mapping Front Controller aela MVC ody MVC caepnhwichlkkhxng CakePHP odymi Model View aela Controller cakkarxxkaebbkhxng CakePHP nnthaihnkphthnaimtxngesiyewlainkaraekpyhathw ipkhxngopraekrm nkphthnasamarthaeykswnkhxng Business logic xxkmatanghakthaihkarphthnamikhwamrwderwmakyingkhun CakePHP samarththanganidthng PHP4 aela PHP5 thrrmeniymkarphthnasamarthprbichidkbthng aela sungimehmuxnkb swnmakthiphuphthnatxngeluxkewxrchnkhxng PHP ihekhaknid sungbangkhrng web server camiephiyng hrux twidtwhnungethann aetinthiniaenanaihich inkarphthnaewbaexpphliekhchndwy CakePHP aennxn CakePHP epn aelaepnkhxngfriikhrksamarthichid sungsamarthaeckcayphayitkarxnuyatkhxng MIT nnkhmaykhwamwanxkcakcaepnkhxngfriaelwerayngsamarththicaprbepliynsxsokhdidhlkkar MVC Model View and Controller MVC epnsthaptykrrmkhxngkarekhiynopraekrmaebbihmthiaeykswnkarthanganaetlaswnihepnxisratxkn khux swnkhxng Model epnswnthithanganxyukbthankhxmul M khux Model V khux View aela C khux Controller Model epnswnthitidtxkbthankhxmul ody Model carbkhasngmacak Controller sungepnkhasnginkarthangankbthankhxmul echn SELECT INSERT UPDATE hrux DELETE epntn odyhlngcak Model thangantamkhasngeriybrxyaelwkca Return khaklbipthi Controller xikkhrngephuxih Controller sngih View txip View epnswnhlkkhxng hruxswntidtxkbphuich sung View samarththicami Template khxng Layout thiaetktangknipid odykhxmultang cathuksngmacak Controller aelwnamaaesdngphlthi View echnediywknhakepnkhxmulcakfxrmkcasrangthi View aelwsngtxihkb Controller txip Controller epn hlkkhxngopraekrmsungepntwechuxmrahwang View kb Model echn karrbkhacakfxrmodyfxrmxyuthi View sngkhaihkb Controller aelw Controller kcathakarsrang Logic inkarbnthukkhxmul aelwsngihaek Model sung Model kcarb Logic inkarbnthukaelwbnthukkhxmullngthankhxmultxip hlkkarthangankhxng MVC emux Client mikarrxngkhxphan View khxmulcasngphanipha Controller ody Controller caepntwcaaenk Action tang hruxepn Business Logic khxngrabb caknn Controller kcarxngkhxipyng Model cak Action nn echnrxngkhxkareluxkkhxmulthnghmdcaktarang emux Model rbkarrxngkhxkcathakar Query khxmultamthi Controller sngma Model casngkhxmulthiidklbmaha Controller Controller kcathakar Set khalngintwaeprephuxsngih View txip View kcanatwaeprehlannipthakaraesdngphltamtxngkaridkhunsmbtikhxng CakePHPCakePHP epn framework thichwyiherasamarthphthnaewbaexphliekhchnidxyangrwderwodykhunsmbtiodythwipkhxng CakePHP nn midngni ichrupaebbkhxng Model View Controller MVC snbsnunthankhxmulthihlakhlay echn MySQL PostgreSQL aelathankhxmulxun ngaytxkartidtngthngin Unix aela Windowskhwamtxngkarkhxng CakePHPHTTP Server echn Apache thiepidohmd session aela mod rewrite PHP 4 3 2 hruxsungkwa aennxnwa CakePHP samarththanganidthng PHP4 aela PHP5 rabbthankhxmul thithanganidechn MySQL PostgreSQL aelathrrmeniymkarekhiyn Controllerkxnxunmaeriynrukarekhiyn Controller kxn ephuxihekhaicngay enuxngcak Controller epn Business Logic hlkkhxngopraekrmthieratxngkarsrangkhun phudngay waepn Logic khxngopraekrmhruxladbkarthangankhxngopraekrmthieracaekhiynkhun ody Controller epntwklangrahwang Model kb View Controller aeplngay kkhux twkhwbkhumnnexng in CakePHP Controller epntwkhwbkhumkarihlkhxngkhxmulrahwangphuichinswnkhxng View kbswnthitidtxthankhxmulinswnkhxng Model inhwkhxthiphanmaeraidthakarechuxmtxkbthankhxmulaelwkhrawnieramaerimekhiyn Controller knkxn odyich thithndechn Editplus ifl app controllers contents controller php lt php class ContentsController extends AppController var name Contents function index this gt set contents this gt Content gt find all sngkhaihaek view odykahndkhaihkbtwaepr contents wikitaramikhumuxinhwkhx ekhkphiexchphi