Symfony - Kiến trúc
Symfony về cơ bản là một tập hợp các thành phần và gói chất lượng cao. Các thành phần là tập hợp các lớp cung cấp một chức năng lõi duy nhất. Ví dụ,Cache componentcung cấp chức năng bộ nhớ cache, có thể được thêm vào bất kỳ ứng dụng nào. Các thành phần là các khối xây dựng của một ứng dụng Symfony. Symfony có hơn 30 thành phần chất lượng cao, được sử dụng trong nhiều khuôn khổ PHP như Laravel, Silex, v.v.
Các gói tương tự như plugin nhưng dễ tạo và dễ sử dụng. Trên thực tế, một ứng dụng Symfony tự nó là một gói bao gồm các gói khác. Một gói duy nhất có thể sử dụng bất kỳ số lượng thành phần Symfony nào và cả các thành phần của bên thứ ba để cung cấp các tính năng như Webframework, truy cập cơ sở dữ liệu, v.v. Symfony core web-framework là một gói có tên là FrameworkBundle và có một gói gọi là FrameworkExtraBundle, cung cấp nhiều tính năng phức tạp hơn các tùy chọn để viết một ứng dụng web.
Mối quan hệ giữa các thành phần, gói và ứng dụng Symfony được chỉ định trong sơ đồ sau.
Khung web
Symfony chủ yếu được thiết kế để viết ứng dụng web chất lượng cao một cách tương đối dễ dàng. Nó cung cấp các tùy chọn khác nhau để viết các loại ứng dụng web khác nhau từ trang web đơn giản đến các dịch vụ web dựa trên REST nâng cao. Symfony cung cấp khung công tác web dưới dạng các gói riêng biệt. Các gói phổ biến được sử dụng trong khung công tác web Symfony như sau:
- FrameworkBundle
- FrameworkExtraBundle
- DoctrineBundle
Khung công tác web Symfony dựa trên kiến trúc Model-View-Controller (MVC). Model đại diện cho cấu trúc của các thực thể kinh doanh của chúng tôi. View hiển thị các mô hình cho người dùng theo cách tốt nhất có thể tùy thuộc vào tình huống. Controller xử lý tất cả yêu cầu từ người dùng, hoạt động thực tế bằng cách tương tác với Model và cuối cùng cung cấp cho View dữ liệu cần thiết để hiển thị cho người dùng.
Khung công tác web Symfony cung cấp tất cả các tính năng cấp cao cần thiết cho một ứng dụng nâng cấp doanh nghiệp. Sau đây là quy trình làm việc đơn giản của ứng dụng web Symfony.
Quy trình làm việc bao gồm các bước sau.
Step 1 - Người dùng gửi yêu cầu đến ứng dụng thông qua trình duyệt, chẳng hạn như http://www.symfonyexample.com/index.
Step 2 - Trình duyệt sẽ gửi một yêu cầu đến máy chủ web, chẳng hạn như máy chủ web Apache.
Step 3 - Máy chủ web sẽ chuyển tiếp yêu cầu đến PHP bên dưới, sau đó sẽ gửi nó đến khung công tác web Symfony.
Step 4- HttpKernel là thành phần cốt lõi của khung công tác web Symfony. HttpKernel giải quyết bộ điều khiển của yêu cầu đã cho bằng cách sử dụng thành phần Định tuyến và chuyển tiếp yêu cầu đến bộ điều khiển đích.
Step 5 - Tất cả logic nghiệp vụ diễn ra trong bộ điều khiển mục tiêu.
Step 6 - Bộ điều khiển sẽ tương tác với Model, từ đó tương tác với Datasource thông qua Doctrine ORM.
Step 7 - Khi bộ điều khiển hoàn tất quá trình, nó sẽ tự tạo ra phản hồi hoặc thông qua View Engine và gửi nó trở lại máy chủ web.
Step 8 - Cuối cùng, phản hồi sẽ được máy chủ web gửi đến trình duyệt được yêu cầu.