วันจันทร์ที่ 23 สิงหาคม พ.ศ. 2553

CakePHP: MVC คืออะไร

MVC (Model View Controller) เป็นสถาปัตยกรรมของการเขียนโปรแกรมที่แยกส่วนการทำงานแต่ละส่วนให้เป็นอิสระต่อกัน

Model เป็นส่วนที่ติดต่อกับฐานข้อมูล โดย Model จะรับคำสั่งมาจาก Controller ซึ่งเป็นคำสั่งในการทำงานกับฐานข้อมูล เช่น SELECT, INSERT, UPDATE หรือ DELETE เป็นต้น โดยหลังจาก Model ทำงานตามคำสั่งเรียบร้อยแล้วก็จะ Return ค่ากลับไปที่ Controller อีกครั้ง เพื่อให้ Controller ส่งให้ View ต่อไป

View เป็นส่วนหลักของ UI (User Interface) หรือส่วนติดต่อกับผู้ใช้ ซึ่ง View สามารถที่จะมี Template ของ Layout ที่แตกต่างกันไปได้ โดยข้อมูลต่างๆ จะถูกส่งมาจาก Controller แล้วนำมาแสดงผลที่ View เช่นเดียวกัน หากเป็นข้อมูลจากฟอร์ม (Form) ก็จะสร้างที่ View แล้วส่งต่อให้กับ Controller ต่อไป

Controller เป็น Business Logic หลักของโปรแกรม ซึ่งเป็นตัวเชื่อมระหว่าง View กับ Model เช่น การรรับค่าจากฟอร์มโดยฟอร์มอยู่ที่ View ส่งค่าให้กับ Controller แล้ว Controller ก็จะทำการสร้าง Logic ในการบันทึกข้อมูล แล้วส่งให้แก่ Model ซึ่ง Model ก็จะรับ Logic ในการบันทึกแล้วบันทึกข้อมูลลงฐานข้อมูลต่อไป

MVC

หลักการทำงานของ MVC

  1. เมื่อ Client มีการร้องขอผ่าน View
  2. ข้อมูลจะส่งผ่านไปหา Controller โดย Controller จะเป็นตัวจำแนก Action ต่างๆ หรือเป็น Business Logic ของระบบ
  3. จากนั้น Controller ก็จะร้องขอไปยัง Model จาก Action นั้นๆ เช่น ร้องขอการเลือกข้อมูลทั้งหมดจากตาราง
  4. เมื่อ Model รับการร้องขอก็จะทำการ Query ข้อมูลตามที่ Controller ส่งมา
  5. Model จะส่งข้อมูลที่ได้กลับมาหา Controller
  6. Controller ก็จะทำการ Set ค่าลงในตัวแปรเพื่อส่งให้ View ต่อไป
  7. View ก็จะนำตัวแปรเหล่านั้นไปทำการแสดงผลตามต้องการได้

Reference:

วันพุธที่ 18 สิงหาคม พ.ศ. 2553

CakePHP คืออะไร

CakePHP คือ Framework ที่ถูกพัฒนาด้วยภาษา PHP ที่เป็น Free Open-Source โดยการออกแบบโปรแกรม (Design Patterns) แบบ MVC (Model-View-Controller) และ ORM (Object-Relation Mapping) เข้ามาเป็นมาตรฐานหรือข้อตกลงในการพัฒนาโปรแกรม

CakePHP จะช่วยให้เราสามารถพัฒนาเว็บไซต์ได้เร็วยิ่งขึ้น โดยเน้นที่การพัฒนาระบบเว็บที่มีขนาดใหญ่ ซึ่งโดยทั่วไปแล้วจะใช้เวลาในการพัฒนามาก แต่หากใช้ CakePHP ก็จะสามารถพัฒนาได้รวดเร็วยิ่งขึ้น เพราะ CakePHP มีตัวช่วย และยังเขียน Code เพียงเล็กน้อยก็สามารถทำงานได้ (Write less do more)

Framework (Frame+work) หมายถึง กรอบของการทำงาน แต่ถ้ามองในแง่โปรแกรม ก็จะเป็นข้อกำหนดหรือขอบเขตในการเขียนโปรแกรมให้เป็นไปในรูปแบบเดียวกัน และสามารถนำไปเขียนเพิ่มเพื่อตอบสนองความต้องการอย่างใดอย่างหนึ่งได้  

PHP Framework เป็นศูนย์รวมของ Class ที่ถูกพัฒนาขึ้นในรูปแบบของ OOP (Object Oriented Programming) โดยมี Run-time ที่ช่วยในการพัฒนาเว็บแอพพลิเคชั่นได้อย่างรวดเร็ว ในการพัฒนาเว็บแพคพลิเคชั่นโดยทั่วไป นักพัฒนาจะเก็บไฟล์และโครงสร้างโปรแกรมของตัวเองไว้ใช้เพื่อให้การพัฒนาเว็บไปด้วยความรวดเร็ว แต่ก็มีข้อเสียคือนักพัฒนาคนอื่นต้องมาเรียนรู้ในแต่ละ Class ว่าแต่ละ Class มี Member อะไร และมี Function อะไร ซึ่งทำให้เสียเวลามาก นั่นก็หมายความว่า นักพัฒนาแต่ละคนจะรู้เพียง Class ของตัวเองแต่คนอื่นต้องใช้เวลาในการเรียนรู้ ทางแก้คือ ใช้ PHP Framework (CakePHP) โดยนักพัฒนาแต่ละคนจะใช้มาตรฐานเดียวกันในการพัฒนา Web Application ซึ่งทำให้การพัฒนาเป็นไปในทิศทางเดียวกัน เรียกว่า ธรรมเนียมการเขียนโปรแกรมเดียวกัน

CakePHP จะถูกออกแบบมาให้ช่วยในการจัดการ Active Record, Association Data Mapping, Front Controller และ MVC (Model-View-Controller) ซึ่งเป็นหัวใจหลักของ CakePHP จากการออกแบบของ CakePHP นั้นทำให้นักพัฒนาไม่ต้องเสียเวลาในการแก้ปัญหาทั่วๆ ไปของโปรแกรม นักพัฒนาสามารถแยกส่วนของ Business logic ออกมาต่างหากทำให้การพัฒนามีความรวดเร็วมากยิ่งขึ้น

CakePHP สามารถทำงานได้ทั้ง PHP4 และ PHP5 ซึ่งไม่เหมือนกับ PHP Framework ส่วนมากที่ผู้พัฒนาต้องเลือกเวอร์ชั่นของ PHP ให้เข้ากันได้ ซึ่งบางครั้ง Web Server จะมีเพียง PHP4 หรือ PHP5 ตัวใดตัวหนึ่งเท่านั้น แต่ในที่นี้แนะนำให้ใช้ PHP5 ในการพัฒนา Web Application ด้วย CakePHP

ความสามารถของ CakePHP Framework

  • มีลิขสิทธิ์ที่ยืดหยุ่น
  • ทำงานร่วมกับ PHP Version 4 และ 5
  • รวมคำสั่ง CRUD (Create, Read, Update and Delete) สำหรับ Database ที่ทำให้ง่ายต่อการคิวรี่
  • ใช้สถาปัตยกรรม MVC (Model-View-Controller)
  • มี Helper ช่วยพัฒนาได้ง่ายและรวดเร็ว เช่น AJAX, JavaScript, HTML Forms และอื่นๆ
  • มีความปลอดภัยในเรื่อง E-Mail, Cookie, Security, Session และรองรับการทำงานในรูปแบบ Components
  • มีการเรียก URL ที่ส่งค่าแบบสวยงาม

Reference:

Technorati Tags: ,

วันอังคารที่ 17 สิงหาคม พ.ศ. 2553

(4121103) การเขียนโปรแกรมคอมพิวเตอร์และอัลกอริทึ่ม

องค์ประกอบและหน้าที่ของฮาร์ดแวร์และซอฟต์แวร์ ภาษาคอมพิวเตอร์ชนิดต่างๆ หลักการเขียนโปรแกรมและการทำงานของโปรแกรม ขั้นตอนการเขียนและพัฒนาโปรแกรมและการเขียนผังงาน การวิเคราะห์และออกแบบอัลกอริทึมแบบ Sequential, Condition, Repetition และ Modular

เอกสารประกอบการเรียนการสอน
  1. ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์ [ziddu | easy-share]
  2. ขั้นตอนลำดับความคิดและการแก้ปัญหา [ziddu | easy-share]
  3. พื้นฐานของโปรแกรมภาษา C [ziddu | easy-share]
  4. การควบคุมการทำงานโปรแกรมภาษา C [ziddu | easy-share]
  5. ฟังก์ชั่น [ziddu | easy-share]
  6. อาร์เรย์ [ziddu | easy-share]
  7. ตัวแปรชนิดพอยน์เตอร์ [ziddu | easy-share]

เอกสารเพิ่มเติม