Yii2 Framework คืออะไร?

บทความนี้เราจะพูดถึง Framework ที่ชื่อว่า Yii2 แต่ก่อนอื่นเรามาทำความเข้าใจ คำว่า Framework กันก่อน คำว่า Framework ถ้าให้แปลตรงตัว แปลว่า “กรอบงาน” หรือ กรอบมาตรฐานที่มีผู้กำหนดวิธีการดำเนินงานไว้อย่างชัดเจน

ในการเขียนโปรแกรมก็เช่นเดียวกัน หากเราใช้วิธีการเดียวกันในการเขียนโปรแกรม เช่น การกำหนดชื่อไฟล์ การกำหนดชื่อฟังก์ชัน การสร้างโครงสร้างของโฟลเดอร์ที่ใช้ในการจัดเก็บไฟล์ให้เป็นหมวดหมู่ เราก็สามารถที่จะเขียนโปรแกรมร่วมกันได้ง่ายขึ้น เหมาะกับงานที่ทำร่วมกันหลาย ๆ คน หรือแม้กระทั่งหากเรา dev อยู่คนเดียว เราก็สามารถส่งต่อให้คนรุ่นหลัง dev ต่อได้ง่ายขึ้น “เนื่องจากเรามีวิถีทางเดียวกันนั่นเอง”

Yii2 ถือว่าเป็น Framework หนึ่งที่น่าสนใจ Yii ย่อมาจาก “Yes, it is” หรือแปลตรง ๆ ว่า “มันใช่อ่ะ” Yii2 ถูกพัฒนาขึ้นมาโดยมีภาษา PHP เป็นหลัก อันที่จริงแล้ว Yii2 ได้รับความนิยมในช่วงตั้งแต่ปี 2015 เป็นต้นมา เนื่องจากมีการออก major change เป็นเวอร์ชัน 2 และถูกใช้ในยุโรปเป็นส่วนใหญ่ ทุกคนสามารถเข้าไปดูเว็บทางการได้ที่ https://www.yiiframework.com/

ข้อดีที่ผมอยากจะบอกคือ มันใช้เวลาในการพัฒนาระบบค่อนข้างเร็วและมีประสิทธิภาพสูง เนื่องจากมันแถมอะไรหลาย ๆ อย่างมาให้เกือบหมด เหมือนแต่งตัวให้เราระดับหนึ่งแล้ว เช่น JQuery, Bootstrap และอื่น ๆ อีกมากมาย (อันนี้จะกลายเป็นข้อเสีย ถ้าเราไม่ต้องการใช้ แต่มีวิธีถอดได้หมด) นอกจากนี้ Yii2 ยังได้รวบรวมเอกสารที่มีให้อ่านจากเว็บทางการทั้งหมด โดยทำเป็นสารบัญให้อ่านอย่างเป็นระบบ ประกอบกับ extensions ที่มีให้เลือกจากเว็บทางการได้เลย

ส่วนข้อเสียคือ มันไม่ยอมออกเวอร์ชัน major change เป็น 3 ซักที (ตอนที่ผมเขียนบทความนี้คือ ค.ศ. 2022 เดือน ก.ค. ตัวเวอร์ชัน 3 มีความคืบหน้าอยู่ที่ 63% ดูได้จาก https://www.yiiframework.com/yii3-progress) ถ้าเปรียบเทียบเป็นเกม FIFA ก็ยังไม่ออกเวอร์ชันใหม่มาร่วม 7 ปี ปัจจุบันมันเลยไม่เป็นที่นิยมในตลาดของเมืองไทยนัก เมื่อเทียบกับ PHP Framework ตัวอื่น เช่น Laravel ซึ่งออกเวอร์ชันใหม่อย่างต่อเนื่อง ถือว่าเป็นตัว top ในปัจจุบัน และได้รับความนิยมอย่างสูง

แต่แต่ๆๆๆๆๆ อย่าลืมว่า minor change ของ Yii2 ก็มีการปรับปรุงอยู่เรื่อย ๆ อย่างต่อเนื่อง ถ้าเปรียบเหมือนเกม FIFA ก็มีการอัพเดตนักเตะให้เป็นปัจจุบันเรื่อย ๆ ดังนั้นแต่ละ Framework ก็จะมีข้อดีข้อเสียแตกต่างกัน ขึ้นอยู่กับว่าเราจะดึงศักยภาพของเครื่องมือที่เราใช้ออกมาได้เพียงใด เพราะสุดท้ายแล้ว users ไม่สนใจหรอกว่า เราจะใช้อะไรพัฒนา แต่สนใจว่า งานเสร็จมั้ย ได้ตรงตาม specs ที่ได้คุยกันมั้ย เท่านั้นเองครับ

เครื่องมือที่ดีที่สุดคือเครื่องมือที่เราถนัดมากที่สุด และต้องตอบโจทย์ปัญหาของเราได้

Pongpon Nilaphruek

การติดตั้งเครื่องมือและสภาพแวดล้อมบนเครื่องคอมพิวเตอร์ของเรา สำหรับการพัฒนาระบบด้วย Yii2

เครื่องมือสำหรับการพัฒนาระบบด้วย Yii2 นั้น สุดท้ายแล้วจะถูกติดตั้งบน server ที่เราจะวางระบบไว้ แต่ในขั้นตอนนี้ นักพัฒนาระบบ จำเป็นต้องติดตั้งเครื่องมือและสภาพแวดล้อมบนเครื่องคอมพิวเตอร์ของเรา เพื่อใช้ในการทดสอบระบบก่อนนำขึ้นสู่ server เพื่อเผยแพร่ต่อไป อันที่จริงแล้วถ้าใครใช้ Linux-based เราสามารถค้นหาคำว่า LAMP stack หรือ LEMP stack เพื่อติดตั้งบน server พวก Ubuntu หรืออื่น ๆ ได้ ซึ่ง LAMP ย่อมาจาก Linux, Apache, MySQL, PHP ส่วน LEMP ย่อมากจาก Linux, Nginx, MySQL, PHP สังเกตได้ว่าตัวที่ต่างกันบางตัว

  • Apache และ Nginx ทั้งสองมีบทบาทเป็นตัวที่รัน service HTTP/HTTPS ของ server side script เป็นหลัก แต่คนละยี่ห้อ เอาเป็นว่าขึ้นอยู่กับความถนัดที่เราต้องการ
  • MySQL หรือ MariaDB เป็นระบบจัดการฐานข้อมูล เราจะใช้ในการจัดเก็บข้อมูลต่าง ๆ ไว้ในนี้
    • MySQL กับ MariaDB ปัจจุบันเหมือนคู่แฝดกัน และกำลังจะแยกห่างจากกันเรื่อย ๆ แต่ตอนนี้แทบจะเหมือนกันครับ แนะนำเป็น MariaDB ครับ เพราะดูทิศทางในเชิง open source น่าจะถูกดันไปได้มากกว่า
  • PHP เป็นภาษาที่ถูกรันบนฝั่ง server หรือ server side script เป็นภาษาหลักของเราในการพัฒนาระบบด้วย Yii2

สำหรับนักพัฒนาระบบที่ใช้ Windows หรือ OSX แนะนำให้ลงโปรแกรมที่ชื่อว่า XAMPP (XAMPP is a completely free, easy to install Apache distribution containing MariaDB, PHP, and Perl)

หลังจากนั้นให้ติดตั้งเครื่องมือที่เกี่ยวข้องที่จำเป็นต้องใช้ในบทความต่อไป เช่น Composer, Git, Visual Studio Code, และอื่น ๆ ถ้าพร้อมแล้วไปดูคลิปด้านล่างนี้ดีกว่าครับ ผมอธิบายไว้หมดแล้ว

หมายเหตุ plugin บางตัวของ Visual Studio Code อาจไม่ได้ใช้แล้ว เนื่องจากมันถูก bundle เข้าไปในโปรแกรมแล้ว และโปรแกรมบางตัวอาจเวอร์ชันเก่าไปเพราะอัดคลิปไว้นานแล้ว แนะนำถ้ามีเวอร์ชันใหม่กว่าและล่าสุดกว่า ให้ใช้ตัวนั้น ๆ ได้ครับ ถ้าติดปัญหาเนื่องจากเวอร์ชันไม่เหมือนกัน เรามีมหาเทพแกรนมาสเตอร์ตำราพิชัยยุทธ์ Google อยู่ในมือช่วยท่านได้เสมอ

ข้อมูลความรู้มีอยู่ทุกหนแห่งบนโลกอินเทอร์เน็ต ผู้ไม่รู้คือผู้ที่ยังไม่ลงไปค้นหา ถ้าหาได้และกลั่นกรองแล้ว ท่านจะเป็นผู้รู้เรื่องใหม่ ๆ ได้ตลอดเวลา

Pongpon Nilaphruek