Skip to main content

เนื้อหาภาษาไทย / Thai content

System guide Content reviewed

การใช้ PHP Framework (Laravel/Symfony) เบื้องต้น

การใช้ PHP Framework (Laravel/Symfony) เบื้องต้น

ในบทที่แล้ว เราได้เรียนรู้เกี่ยวกับการใช้ Composer ซึ่งเป็นเครื่องมือสำคัญในการจัดการ Dependencies หรือ Library ภายนอกที่โปรเจกต์ PHP ของเราต้องการใช้งาน ในบทนี้ เราจะก้าวไปอีกขั้นด้วยการทำความรู้จักกับ PHP Framework ซึ่งเป็นเครื่องมือที่ช่วยให้การพัฒนา Web Application และ API เป็นไปอย่างรวดเร็วและมีประสิทธิภาพมากยิ่งขึ้น

Framework เปรียบเสมือนโครงสร้างสำเร็จรูปที่มีองค์ประกอบต่างๆ ที่จำเป็นต่อการพัฒนา Application เตรียมพร้อมไว้ให้เราใช้งาน ทำให้เราไม่ต้องเริ่มต้นจากศูนย์ และสามารถโฟกัสไปที่ Logic ของ Application ที่เราต้องการสร้างได้เลย

Laravel/Symfony คืออะไร?

Laravel และ Symfony เป็น PHP Framework ที่ได้รับความนิยมสูงในปัจจุบัน ทั้งสอง Framework มีจุดเด่นที่แตกต่างกัน แต่โดยรวมแล้วมีเป้าหมายเดียวกันคือ ช่วยให้นักพัฒนาสร้าง Application ที่มีคุณภาพสูงได้อย่างรวดเร็ว

Laravel

Laravel เป็น Framework ที่เน้นเรื่องความง่ายในการใช้งาน (Developer Experience) มี Syntax ที่สวยงามและเข้าใจง่าย มี Feature ที่หลากหลายให้ใช้งานได้ทันที เช่น Routing, ORM (Eloquent), Templating Engine (Blade), Authentication, และอื่นๆ อีกมากมาย Laravel เหมาะสำหรับนักพัฒนาที่ต้องการสร้าง Application อย่างรวดเร็วและมี Productivity สูง

เหตุผลเชิงออกแบบ: Laravel ถูกออกแบบมาให้ "Convention over Configuration" ซึ่งหมายความว่า Laravel จะมี Default Configuration ที่ดีอยู่แล้ว และเราสามารถ Override Configuration เหล่านั้นได้เมื่อต้องการ แต่โดยทั่วไปแล้ว เราสามารถใช้ Convention ที่ Laravel เตรียมไว้ให้ได้เลย ทำให้เราไม่ต้องเสียเวลาไปกับการ Configuration ที่ซับซ้อน

Symfony

Symfony เป็น Framework ที่มีความยืดหยุ่นสูง และมี Component ที่สามารถนำไปใช้ในโปรเจกต์อื่นๆ ได้ Symfony เน้นเรื่องความสามารถในการปรับแต่ง (Flexibility) และการ Reuse Component Symfony เหมาะสำหรับนักพัฒนาที่ต้องการสร้าง Application ที่มีโครงสร้างที่ซับซ้อน และต้องการควบคุมทุกรายละเอียดของ Application

เหตุผลเชิงออกแบบ: Symfony ถูกออกแบบมาให้เป็นชุดของ Component ที่สามารถนำไปประกอบกันได้ตามต้องการ (Microkernel Architecture) ทำให้เราสามารถเลือกใช้เฉพาะ Component ที่เราต้องการได้ และไม่ต้องแบกรับ Component ที่ไม่ได้ใช้งาน ทำให้ Application ของเรามีขนาดเล็กและมีประสิทธิภาพสูง

Trade-offs: Laravel มีความง่ายในการใช้งานมากกว่า แต่ Symfony มีความยืดหยุ่นมากกว่า การเลือกใช้ Framework ตัวใดตัวหนึ่งขึ้นอยู่กับความต้องการและความถนัดของนักพัฒนา

การสร้างโปรเจกต์ใหม่

ก่อนที่เราจะเริ่มใช้งาน Laravel หรือ Symfony ได้ เราจะต้องสร้างโปรเจกต์ใหม่ก่อน ในหัวข้อนี้ เราจะมาดูวิธีการสร้างโปรเจกต์ใหม่ด้วย Composer ซึ่งเป็น Dependency Manager ที่เราได้เรียนรู้ไปในบทที่แล้ว

การสร้างโปรเจกต์ Laravel

ในการสร้างโปรเจกต์ Laravel เราจะใช้ Composer Command create-project ดังนี้:

composer create-project laravel/laravel your-project-name

คำสั่งนี้จะทำการ Download Laravel Framework และสร้างโปรเจกต์ใหม่ใน Directory ที่ชื่อ your-project-name (สามารถเปลี่ยนชื่อ Directory ได้ตามต้องการ)

หลังจากสร้างโปรเจกต์เสร็จแล้ว ให้เข้าไปใน Directory ของโปรเจกต์:

cd your-project-name

การสร้างโปรเจกต์ Symfony

ในการสร้างโปรเจกต์ Symfony เราจะใช้ Composer Command create-project เช่นเดียวกับ Laravel:

composer create-project symfony/skeleton your-project-name

คำสั่งนี้จะทำการ Download Symfony Skeleton (โครงสร้างโปรเจกต์พื้นฐาน) และสร้างโปรเจกต์ใหม่ใน Directory ที่ชื่อ your-project-name (สามารถเปลี่ยนชื่อ Directory ได้ตามต้องการ)

หลังจากสร้างโปรเจกต์เสร็จแล้ว ให้เข้าไปใน Directory ของโปรเจกต์:

cd your-project-name

ข้อควรจำ: ก่อนที่จะรันคำสั่ง create-project ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Composer เรียบร้อยแล้ว หากยังไม่ได้ติดตั้ง สามารถ Download ได้จาก https://getcomposer.org/

โครงสร้างของ Framework

หลังจากที่เราได้สร้างโปรเจกต์ใหม่แล้ว เราจะมาดูโครงสร้างของ Framework ทั้ง Laravel และ Symfony เพื่อให้เข้าใจว่าแต่ละ Directory มีหน้าที่อะไร และเราควรจะวาง Code ของเราไว้ที่ไหน

โครงสร้างของ Laravel

โครงสร้าง Directory ที่สำคัญของ Laravel มีดังนี้:

  • app/: เป็น Directory ที่เก็บ Logic ของ Application ของเรา เช่น Controllers, Models, Services, และอื่นๆ
  • bootstrap/: เป็น Directory ที่เก็บไฟล์ Bootstrap ของ Laravel
  • config/: เป็น Directory ที่เก็บไฟล์ Configuration ของ Laravel
  • database/: เป็น Directory ที่เก็บไฟล์ Migration และ Seeder ของฐานข้อมูล
  • public/: เป็น Directory ที่เก็บไฟล์ Static เช่น CSS, JavaScript, และ Images
  • resources/: เป็น Directory ที่เก็บไฟล์ Views (Templates) และ Localization
  • routes/: เป็น Directory ที่เก็บไฟล์ Route Definition
  • storage/: เป็น Directory ที่เก็บไฟล์ที่ Application สร้างขึ้น เช่น Logs, Cache, และ Uploads
  • vendor/: เป็น Directory ที่ Composer ใช้เก็บ Dependencies

แนวปฏิบัติที่ดี: ควรวาง Code ของ Application ของเราไว้ใน Directory app/ และ routes/ และควรใช้ Eloquent ORM ในการจัดการกับฐานข้อมูล

โครงสร้างของ Symfony

โครงสร้าง Directory ที่สำคัญของ Symfony มีดังนี้:

  • config/: เป็น Directory ที่เก็บไฟล์ Configuration ของ Symfony
  • public/: เป็น Directory ที่เก็บไฟล์ Static เช่น CSS, JavaScript, และ Images
  • src/: เป็น Directory ที่เก็บ Logic ของ Application ของเรา เช่น Controllers, Entities (Models), Repositories, และ Services
  • templates/: เป็น Directory ที่เก็บไฟล์ Views (Templates)
  • translations/: เป็น Directory ที่เก็บไฟล์ Localization
  • var/: เป็น Directory ที่เก็บไฟล์ที่ Application สร้างขึ้น เช่น Cache, Logs, และ Sessions
  • vendor/: เป็น Directory ที่ Composer ใช้เก็บ Dependencies

แนวปฏิบัติที่ดี: ควรวาง Code ของ Application ของเราไว้ใน Directory src/ และควรใช้ Doctrine ORM ในการจัดการกับฐานข้อมูล

สรุป

ในบทนี้ เราได้เรียนรู้เกี่ยวกับ PHP Framework โดยเฉพาะ Laravel และ Symfony ซึ่งเป็น Framework ที่ได้รับความนิยมสูงในปัจจุบัน เราได้เรียนรู้วิธีการสร้างโปรเจกต์ใหม่ด้วย Composer และได้ทำความเข้าใจเกี่ยวกับโครงสร้างของ Framework ทั้งสอง

ในบทถัดไป เราจะเจาะลึกไปที่ Laravel มากขึ้น โดยจะเรียนรู้เกี่ยวกับการสร้าง API Resources ซึ่งเป็นเครื่องมือที่ช่วยให้เราสร้าง API ได้อย่างรวดเร็วและมีประสิทธิภาพ

Office.in.th Custom Service

Want to build or adapt a system from this structure?

Office.in.th designs and develops enterprise web applications, API integrations, and public- and private-sector management systems, with long-term support.

See our software development service