Symfony - สถาปัตยกรรม

โดยพื้นฐานแล้ว Symfony คือชุดของส่วนประกอบและบันเดิลคุณภาพสูง ส่วนประกอบคือชุดของคลาสที่มีฟังก์ชันการทำงานหลักเดียว ตัวอย่างเช่น,Cache componentมีฟังก์ชันแคชซึ่งสามารถเพิ่มลงในแอปพลิเคชันใดก็ได้ ส่วนประกอบเป็นส่วนประกอบของแอปพลิเคชัน Symfony Symfony มีส่วนประกอบคุณภาพสูงมากกว่า 30 รายการซึ่งใช้ในเฟรมเวิร์ก PHP จำนวนมากเช่น Laravel, Silex เป็นต้น

บันเดิลคล้ายกับปลั๊กอิน แต่สร้างง่ายและใช้งานง่าย จริงๆแล้วแอปพลิเคชัน Symfony นั้นเป็นกลุ่มที่ประกอบด้วยบันเดิลอื่น ๆ บันเดิลเดียวสามารถใช้คอมโพเนนต์ Symfony จำนวนเท่าใดก็ได้และยังรวมถึงคอมโพเนนต์ของบุคคลที่สามเพื่อจัดเตรียมฟีเจอร์ต่างๆเช่น Webframework การเข้าถึงฐานข้อมูลเป็นต้นเว็บเฟรมเวิร์กหลักของ Symfony คือบันเดิลที่เรียกว่า FrameworkBundle และมีบันเดิลที่เรียกว่า FrameworkExtraBundle ซึ่งให้ความซับซ้อนมากขึ้น ตัวเลือกในการเขียนเว็บแอปพลิเคชัน

ความสัมพันธ์ระหว่างแอปพลิเคชัน Components, Bundles และ Symfony ระบุไว้ในแผนภาพต่อไปนี้

กรอบงานเว็บ

Symfony ได้รับการออกแบบมาเพื่อเขียนเว็บแอปพลิเคชันคุณภาพสูงโดยเฉพาะ มีตัวเลือกมากมายในการเขียนเว็บแอปพลิเคชันประเภทต่างๆตั้งแต่เว็บไซต์ธรรมดาไปจนถึงบริการเว็บที่ใช้ REST ขั้นสูง Symfony จัดเตรียมเว็บเฟรมเวิร์กเป็นบันเดิลแยกต่างหาก บันเดิลทั่วไปที่ใช้ในเว็บเฟรมเวิร์ก Symfony มีดังนี้ -

  • FrameworkBundle
  • FrameworkExtraBundle
  • DoctrineBundle

เว็บเฟรมเวิร์ก Symfony ใช้สถาปัตยกรรม Model-View-Controller (MVC) Model แสดงถึงโครงสร้างของหน่วยงานธุรกิจของเรา View แสดงแบบจำลองให้กับผู้ใช้ในวิธีที่ดีที่สุดโดยขึ้นอยู่กับสถานการณ์ Controller จัดการคำขอทั้งหมดจากผู้ใช้ทำงานจริงโดยการโต้ตอบกับ Model และสุดท้ายให้ View พร้อมข้อมูลที่จำเป็นเพื่อแสดงต่อผู้ใช้

เว็บเฟรมเวิร์ก Symfony มีคุณสมบัติระดับสูงทั้งหมดที่จำเป็นสำหรับแอปพลิเคชันระดับองค์กร ต่อไปนี้เป็นขั้นตอนการทำงานอย่างง่ายของเว็บแอปพลิเคชัน Symfony

เวิร์กโฟลว์ประกอบด้วยขั้นตอนต่อไปนี้

Step 1 - ผู้ใช้ส่งคำขอไปยังแอปพลิเคชันผ่านเบราว์เซอร์โดยพูดว่า http://www.symfonyexample.com/index

Step 2 - เบราว์เซอร์จะส่งคำขอไปยังเว็บเซิร์ฟเวอร์กล่าวว่าเว็บเซิร์ฟเวอร์ Apache

Step 3 - เว็บเซิร์ฟเวอร์จะส่งต่อคำขอไปยัง PHP พื้นฐานซึ่งจะส่งไปยังเฟรมเวิร์กเว็บ Symfony

Step 4- HttpKernel เป็นองค์ประกอบหลักของเว็บเฟรมเวิร์ก Symfony HttpKernel แก้ไขตัวควบคุมของคำขอที่กำหนดโดยใช้องค์ประกอบการกำหนดเส้นทางและส่งต่อคำขอไปยังตัวควบคุมเป้าหมาย

Step 5 - ตรรกะทางธุรกิจทั้งหมดเกิดขึ้นในตัวควบคุมเป้าหมาย

Step 6 - คอนโทรลเลอร์จะโต้ตอบกับ Model ซึ่งจะโต้ตอบกับ Datasource ผ่าน Doctrine ORM

Step 7 - เมื่อคอนโทรลเลอร์ดำเนินการเสร็จสิ้นแล้วคอนโทรลเลอร์จะสร้างการตอบสนองเองหรือผ่าน View Engine และส่งกลับไปยังเว็บเซิร์ฟเวอร์

Step 8 - สุดท้ายการตอบกลับจะถูกส่งไปยังเบราว์เซอร์ที่ร้องขอโดยเว็บเซิร์ฟเวอร์