[PHP] — Phalcon C-ext framework
สวัสดีครับ วันนี้ทางทีมงานจะมานำเสนอ PHP Framework ที่มีคุณสมบัติที่แตกต่างจาก Framework เจ้าอื่นๆ อย่าง Laravel, CodeIgnitor, Slim หรือ Zend คือ เป็น Framework ที่ถูกเขียนด้วยภาษา C ใช่ครับ!! ฟังไม่ผิด ชื่อว่า Phalcon (https://phalconphp.com/th/) ซึ่งปัจจุบันได้พัฒนาเป็น version 4.0 คุณสมบัติพิเศษคือ สามารถติดตั้งโดยการ เพิ่มเข้าไปใน extension ในไฟล์ php.ini และสามารถเรียกใช้จาก Namespace ได้เลยครับ
สามารถอ่านวิธีการติดตั้งได้จากเว็บไซด์ https://docs.phalconphp.com/4.0/en/installation ได้เลยครั
เมื่อติดตั้งเสร็จแล้วขอแนะนำเครื่องมือ dev tools ที่ช่วยในการสร้างโปรเจคง่ายๆ คล้ายคำสั่ง php artisan ของ laravel โดยสามารถติดตั้งได้จาก https://github.com/phalcon/phalcon-devtools
เมื่อติดตั้ง dev tools เสร็จแล้วเรามาดูว่ามีคำสั่งอะไรให้ใช้งานกันบ้างโดยใช้คำสั่งว่า
phalcon <ENTER>
คำสั่งที่น่าสนใจที่จะลองให้ดูคือคำสั่งว่า scaffold คือคำสั่งที่ช่วย สร้างหน้าจอ พร้อมผูกกับข้อมูลในฐานข้อมูลให้เรียบร้อยสำหรับทำ CRUD คื (C )reate =หน้าจอสำหรับเพิ่มข้อมูล, (R)ead = หน้าจอสำหรับแสดงข้อมูล, (U)pdate = หน้าจอสำหรับแก้ไขข้อมูล, (D)elete = หน้าจอสำหรับลบข้อมูล
มาเริ่มสร้างโปรเจคทดสอบการทำงานกันดีกว่าครับผม
- สร้างโปรเจคโดยใช้คำสั่ง phalcon project <ชื่อโปรเจค>
- สร้างตาราง product ไว้เก็บข้อมูล เกี่ยวกับสินค้าแบบง่ายๆ product(product_id, product_name)
- แก้ไขไฟล์ config เพื่อต่อกับฐานข้อมูลให้ถูกต้อง ผมใช้ MariaDB
- สร้างแบบฟอร์มต่างๆ CRUD โดยใช้คำสั่ง phalcon scaffold
สร้างโปรเจคที่มีชื่อว่า shop โดยใช้คำสั่งว่า phalcon project shop
จากนั้นจะเห็นโครงสร้างของโปรเจค shop หน้าตาแบบนี้นะครับ
จากนั้นทดสอบรันโดยเปิด web browser ดูนะครับจะได้หน้าตาแบบนี้
สร้างตาราง product ด้วยคำสั่ง
CREATE TABLE IF NOT EXISTS product ( product_id INT AUTO_INCREMENT, product_name VARCHAR(255) NOT NULL, PRIMARY KEY (product_id))ENGINE=INNODB;
แก้ไขไฟล์ /app/config/confg.php โดยใส่ dbname, username, password ให้ตรงกับฐานข้อมูลที่เราสร้างตาราง product ไว้
ใช้คำสั่ง phalcon scaffold สร้าง หน้าจอ ที่ต่อกับฐานข้อมูลเพื่อจะทำ CRUD ได้โดยไม่ต้องเขียนโค้ดเยอะ !!
จากนั้นเปิด web browser พิมพ์ http://localhost/shop/product แล้ว สามารถเพิ่มข้อมูลได้เลย ดังภาพนี้
ข้อควรระวัง ให้ตรวจสอบ ไฟล์ <ชื่อตาราง>Controller.php ว่า attributes ต่างๆ ชื่อตรงกับ column ในตารางที่เราต้องการบันทึกหรือไม่
ยังไงก็ลองทดสอบกันดูนะครับ ถ้าติดปัญหาในการติดตั้ง และใช้งานสามารถ comment ได้ที่นี้ หรือที่ FB: Artisan Brain Academy ได้นะครับ
แล้วพบกันใหม่
Happy Coding..!