Basic Laravel Part1 (route, controller, model, view, middleware)

สำหรับคนที่ยังไม่ได้ติดตั้ง Laravel สามารถเข้าไปอ่านได้ที่ คลิก

Laravel คือ

Laravel ก็คือ php framework ตัวหนึ่งเหมือนกับ Yii, Code Ignite และอื่นๆอีกมากมาย (สามารถดูเพิ่มเติมได้ที่ https://www.hongkiat.com/blog/best-php-frameworks/ ) ซึ่ง framework ถ้าใครยังไม่ทราบว่าคืออะไร ก็พอจะอธิบายคร่าวๆได้ว่า มันคือการรวบรวม โค้ดต่างๆที่มีคนเขียนไว้แล้วนำมาบรรจุไว้ โค้ดเหล่านี้ผมจะขอเรียกสั่งว่า Lib หรือ ไลบารี่ (Libray) โดยที่ไลบารี่เหล่าก็จะมีความสามารถที่แตกต่างกันออกไป เช่น ไลบารี่ที่เอาไว้จัดการฐานข้อมูล ไลบารี่ที่เอาไว้ส่งอีเมล หรือไลบาลี่ที่เอาจัดการ url เป็นต้น ซึ่งสิ่งเหล่านี้ถูกนำมารวมกันไว้ใน framework โดยที่แต่ framework ก็จะมีไลบารี่ที่แตกต่างกันออกไป ทำให้การเรียนรู้ framework 1 ครั้งอาจจะต้องใช้เวลาพอสมควร แต่ก็แลกมาด้วยความคุ้มค่า เพราะเราสามารถนำมันไปใช้ได้เลยไม่เพราะ framework แต่ละตัวจะมีความสามารถพื้นฐานคล้ายกัน CRUD (Create Read Update Delete) ต่างที่วิธีการใช้งาน ยากง่ายว่ากันไป

แล้วทำไมต้อง Laravel ?

Laravel ออกแบบมาให้ง่ายต่อการเรียนรู้(ใช้ง่ายด้วย) โดยเฉพาะชื่อ Method และ Class ที่ออกแบบมาให้อ่านและเข้าใจง่าย มีความใกล้เคียงภาษามนุษย์ทำให้ตัว Laravel ค่อนข้างได้รับความนิยมด้วยความที่มันง่าย แต่ประสิทธิภาพสูง และที่สำคัญชุมชนมีขนาดใหญ่เวลามีปัญหา google ต้องเจอแน่นอน

มาเริ่มกันเลยยย

กรณีที่ไม่พบ Route ก็จะส่งหน้า 404 Page not found กลับไป
1 Route

ส่วนนี้เหมือนกับการกำหนดเส้นทางเดินให้กับเรา (ตามชื่อมันเลย)
แต่เส้นทางบนเว็บก็คือ URI นั่นเอง ทุกครั้งที่ Client ส่ง Request อะไรมา Route ก็จะตรวจสอบว่าเราได้ทำการผูก url กับ ฟังชั่นหรือยัง

2 Model Controller View (MVC)

สามส่วนนี้เป็นหลักของระบบทั่วไปซึ่งจะอธิบายคร่าวๆได้ว่า

Model — เป็นส่วนของข้อมูลดิบ หรืออาจะมองว่าเป็นส่วนเชื่อมกับฐานข้อมูลที่หุ้มเป็น Object

Controller — สื่อกลาง ของ Model และ View เป็นผู้เตรียมข้อมูล, จัดการข้อมูลที่ไหลเข้าออก, เรียกใช้ Method ของ Model

View — ส่วนตอบสนองกับผู้ใช้ อาจจะพูดว่ามันก็คือหน้าเว็บของเราบนเว็บบราวน์เซอร์ใช้นั่นเอง

3 Middleware

เป็นส่วนที่คั่นกลางระหว่างผู้ใช้ ก่อนเข้าไปถึง Route ต่างๆ ยกตัวอย่างง่ายๆเช่น ที่ Route /user เป็นส่วนที่เข้าไปดูข้อมูลส่วนตัวของ User ที่ทำการลงชื่อเข้าใช้ แต่ว่าผู้ใช้ยังไม่ได้ลอคอิน จึงไม่สามารถเข้าไปยัง path นั้นได้ แต่เราต้องการให้ส่งหน้า Login/Register ไปแทน

การใช้ Middleware เพื่อตรวจสอบว่าผู้ใช้ลงทะเบียนหรือยัง

ซึ่งทั้งหมดสามส่วนนี้ก็เป็นส่วนหลักๆของ Laravel ซึ่งความจริงแล้วมันมีส่วนอื่นที่ไม่ได้กล่าวถึงอีก เช่น Migration, Seed, Eloquent, Request/Validator ซึ่งจะเอาไว้เขียนต่อในบทต่อไป