หลายคนคงเคยรู้จักกับ Laravel Framwork หรือเคยได้ยินกันมาบ้างแล้ว ซึ่งในบทความต่อไปนี้ เราจะมาพูดถึง Laravel Framework กันว่ามันดีอย่างไร และใช้งานอย่างไร
Laravel คืออะไร
Laravel เป็น PHP Framework สำหรับพัฒนาเว็บแอพพลิเคชั่น ที่ใช้งานง่าย ทำความเข้าใจง่ายและเรียนรู้ได้ง่าย ที่ถูกสร้างและพัฒนาขึ้นโดย Taylor Otwell ภายใต้ลิขสิทธิ์ของ MIT ซึ่งเป็น Open Source ที่เราสามารถนำไปใช้งานกันได้ฟรี
Taylor Otwell
โดยการออกแบบนั้นจะเป็นไปในรูปแบบ MVC (Model Views Controller) ซึ่งจะมีการแบ่งส่วนการทำงานออกเป็น 3 ส่วนดังนี้
- Model คือ ส่วนของการจัดการ ติดต่อ แก้ไข อัพเดท อ่านข้อมูลจากฐานข้อมูล เพื่อนำไปทำการประมวลผลหรือนำไปใช้งานต่อไป
- Views คือ ส่วนที่แสดงผล หรือส่วนที่มีปฏิสัมพันธ์กับผู้ใช้งาน เพื่อรับคำสั่งหรือรับข้อมูลจากผู้ใช้งาน
- Controller คือ กระบวนการทำงานของระบบ (Process) ซึ่งจะทำงานตามที่ได้รับคำสั่งจากผู้ใช้งาน และเป็นส่วนของการควบคุมการทำงานของระบบ
ปัจจุบัน Laravel Framework ถูกใช้งานกันอย่างแพร่หลายในโปรแกรมเมอร์สาย PHP เนื่องจากมีความปลอดภัยในระดับที่ไว้วางใจได้ การเขียนโค้ดนั้นเป็นสัดเป็นส่วน สามารถเข้าใจได้ง่ายเมื่อมีการแก้ไขหรือปรับปรุงโค้ด สามารถแบ่งงานการทำภายในทีมได้อย่างมีประสิทธิภาพ สามารถเรียกใช้งาน Class และ Object ต่างๆได้อย่างง่ายดาย โดยการเรียกใช้ Namespace ที่ทางผู้ออกแบบมีไว้ให้ ซึ่งช่วยให้ประหยัดเวลาในการเขียนโค้ดลงได้มาก อีกทั้งยังมี Command ในการสร้างไฟล์ต่างๆ พร้อม Template Code ให้เลย ดังนั้นจึงง่ายต่อการพัฒนาเป็นอย่างมาก โดยสามารถติดตั้งได้อย่างง่ายดาย ด้วย Composer ก็สามารถติดตั้งโปรเจ็คและพัฒนาได้ทันที
โดย Laravel นั้นได้ถูกพัฒนามาหลายเวอร์ชั่นแล้ว ดังนี้
เวอร์ชั่น | วันที่เผยแพร่ | เวอร์ชั่น PHP |
---|---|---|
1.0 | June 2011 | |
2.0 | September 2011 | |
3.0 | February 22, 2012 | |
3.1 | March 27, 2012 | |
3.2 | May 22, 2012 | |
4.0 | May 28, 2013 | ≥ 5.3.0 |
4.1 | December 12, 2013 | ≥ 5.3.0 |
4.2 | June 1, 2014 | ≥ 5.4.0 |
5.0 | February 4, 2015 | ≥ 5.4.0 |
5.1 LTS | June 9, 2015 | ≥ 5.5.9 |
5.2 | December 21, 2015 | ≥ 5.5.9 |
5.3 | August 23, 2016 | ≥ 5.6.4 |
5.4 | January 24, 2017 | ≥ 5.6.4 |
5.5 LTS | August 30, 2017 | ≥ 7.0.0 |
5.6 | February 7, 2018 | ≥ 7.1.3 |
5.7 | September 4, 2018 | ≥ 7.1.3 |
5.8 | February 26, 2019 | ≥ 7.1.3 |
6 LTS | September 3, 2019 | 7.2 – 8.0 |
7 | March 3, 2020 | 7.2 – 8.0 |
8 | September 8, 2020 | 7.3 – 8.1 |
9 | February 8, 2022 | 8.0 – 8.1 |
10 | February 14, 2023 | ≥ 8.1 |
11 | Q1 2024 | ≥ 8.2 |
โดยปัจจุบันเราได้ใช้งานกันถึงเวอร์ชั่น 10 แล้ว และเวอร์ชั่น 11 จะมาให้เราใช้งานกันได้ในไตรมาสแรกของปี 2024 นี้
โครงสร้างของไฟล์และโฟลเดอร์ของ Laravel
โฟลเดอร์
app - ใช้เก็บไฟล์ Model , Controller สำหรับใช้ในการประมวลผลและติดต่อฐานข้อมูลหรือเรียกง่ายๆว่าเป็นส่วนควบคุมการทำงานนั่นเอง
config - ส่วนนี้จะเก็บไฟล์ที่เกี่ยวกับการ Config หรือค่าคงที่และตัวแปรต่างๆที่ใช้ในระบบ
database - จะเก็บไฟล์ที่เกี่ยวข้องกับฐานข้อมูล เช่น migration ซึ่งทำหน้าที่ในการสร้างฐานข้อมูล , seeder ทำหน้าที่ในการสร้างข้อมูลเริ่มต้นให้กับตารางและคอลัมน์ , factory ทำหน้าที่ในการสร้างข้อมูลจำลองในฐานข้อมูล ที่ใช้สำหรับทดสอบระบบ
public - ส่วนนี้เป็นส่วนที่จะเก็บไฟล์ index.php และไฟล์รูปภาพที่ต้องการใช้แบบสาธารณะ เช่น โลโก้ รูปภาพหัวเว็บไซต์ และอื่นๆเช่น ไฟล์ dist และ vendor ต่างๆที่ใช้ในการตกแต่งหรือ Library ต่างๆ ที่ช่วยให้หน้าเว็บสวยงามขึ้น
resources - ส่วนนี้จะใช้เก็บไฟล์ blade template และไฟล์ Javascript , CSS ต่างๆ ที่ Laravel จะนำไปทำการ Render เป็นหน้าเว็บที่พร้อมใช้งานให้เรา
routes - เป็นส่วนที่ใช้กำหนดเส้นทางให้กับเว็บไซต์ของเรา ทำให้ระบบรู้ว่า เส้นทางไหนควรทำงานที่ส่วนไหนนั่นเอง
storage - ใช้เก็บไฟล์ที่ เช่น ไฟล์อัปโหลด ไฟล์ Logs ,Cache , Session ต่างๆ
tests - ใช้เก็บไฟล์ Testing ที่ใช้สำหรับการทดสอบระบบ หรือการทำ UAT
vendor - เป็นที่เก็บรวบรวม Package หรือ Dependencies ต่างๆของระบบ เราสามารถติดตั้งเพิ่มเติมได้ด้วย Composer
ไฟล์
.env - ใช้เก็บข้อมูล Environments ต่างๆที่ใช้งานในระบบ เช่น host รหัสผ่าน ฐานข้อมูล และค่าอื่นๆ
composer.json - เป็นไฟล์ที่จะเก็บรวบรวมสภาพแวดล้อมที่จำเป็นต่อการรันโปรเจ็ค เช่นเวอร์ชั่นของระบบ และเวอร์ชั่นของ php และ แพคเกจต่างๆที่ได้ติดตั้งลงในโปรเจ็ค
ในส่วนของการติดตั้งโปรเจ็คสามารถติดตามได้ในบทความต่อไปนะครับ
สรุป
Laravel เป็น PHP Framework ที่มีการออกแบบที่ดี ง่ายต่อการเขียน การจัดการ และการทำความเข้าใจ ทำให้เป็นที่นิยมในกลุ่มผู้พัฒนาเว็บแอพพลิเคชั่นด้วยภาษา PHP เนื่องจากทำให้สามารถทำงานเสร็จได้รวดเร็วมากยิ่งขึ้น แต่ทั้งนี้ทั้งนั้น ก็ขึ้นอยู่กับความเหมาะสมของงานแต่ละโปรเจ็ค อยู่ที่ดุลยพินิจของผู้พัฒนาว่าจะนำไปใช้ในงานประเภทไหนบ้าง