Mục lục

Symfony – Khung ứng dụng web mã nguồn mở PHP
Symfony là gì?
Symfony là framework Open Source được xây dựng dựa trên ngôn ngữ lập trình PHP5, giúp phát triển thiết kế website cá nhân. Hiện nay, Symfony rất được ưa chuộng nhờ hai ưu điểm lớn, chính là: cộng đồng người dùng, lập trình viên đông đảo và cấu trúc đáng tin cậy, tự do triển khai.
Framework này được viết bằng ngôn ngữ lập trình PHP5. Symfony tạo nên những dự án tối ưu giúp phát triển thành một công đồng lớn các lập trình viên. Cộng đồng này đảm bảo về tính linh động, tự do, chi phí thấp và khả năng phát triển hiệu quả.
Symfony2 hiện đang là một trong các phiên bản hệ thống quản trị nội dung (CMS) mới nhất được viết bằng PHP. Phiên bản này phát triển song hành cùng các cộng sự của mình như: phpBB, Drupal, ezPublish.
Lịch sử phát triển Symfony
Symfony ra mắt người dùng vào năm 2005 được biết đến là một framework mạnh mẽ. Sản phẩm này được phát triển bởi SensioLabs – nhà phát triển phần mềm và cung cấp dịch vụ chuyên nghiệp người Pháp.
Ban đầu, Symfony có tên là Sensio Framework. Sau một thời gian nâng cấp, sản phẩm này được hoạt động theo dạng khung nguồn mở nên đã hình thành cái tên Symfony (từ phiên bản thứ 2 trở đi).
Đánh giá tính năng của Symfony
Như rất nhiều framework PHP khác, Symfony cũng chạy code dựa trên mô hình MVC design pattern. Mô hình này chia ứng dụng ra làm 3 phần: Model, View và Controller; mỗi phần sẽ có một nhiệm vụ riêng biệt so với các phần còn lại.
Trong đó, Model sẽ bao gồm các class mô tả nghiệp vụ của ứng dụng, đối tượng làm việc trên ứng dụng, database. Còn View sẽ chứa tất cả những gì tương tác với người dùng (template engine cũng là một nhân tố trong phần này). Controller thì có trách nhiệm xử lý request đầu vào, nhận thông tin input từ người dùng thông qua View, sau đó xử lý qua Model và cuối cùng truyền dữ liệu đến View để hiển thị kết quả. Có thể nói Controller chính là cầu nối giữa View và Model.
1. Ngôn ngữ lập trình
Symfony sử dụng ngôn ngữ PHP phổ thông. Vì vậy, bạn có thể chỉnh sửa cú pháp dễ dàng để trở thành các ngôn ngữ lập trình khác như Java hay C# và mọi thứ vẫn hoạt động bình thường.
2. Truy cập database
Symfony sử dụng Doctrine để truy cập database. Trong khi đó, Laravel lại dùng Eloquent.
Với Doctrine của Symfony, mỗi lần muốn truy cập dữ liệu, bạn phải tạo một repository function khá phức tạp.
3. Template Engine
Nhìn chung, Twig của Symfony có được nhiều ưu thế hơn so với Blade nhờ cộng đồng lớn, code trông đẹp hơn và có rất nhiều từ khóa được bổ sung bới các extension khác nhau.
Tuy nhiên, Blade vẫn gây được ấn tượng tốt nhờ tính tái sử dụng của code. Nếu tạo ra một function ở template và controller trong Twig thì bạn phải định nghĩa 2 lần. Trong khi đó, Blade, nếu đã định nghĩa bất cứ function nào tại controller thì bạn cũng có thể sử dụng trên template.
4. Các công cụ debug và development
Symfony có hẳn một panel hiện đại, có thể khái quát hầu hết tất cả các vấn đề của profiling.
5. Phần mềm bên thứ 3
Hiện nay, có rất nhiều team lớn trong cộng đồng đang nghiên cứu và tạo ra các package cho Symfony như Sonata, Liip Imagine, FOS, KnpLabs,… Những gói package của bên thứ 3 này sẽ giúp cho Symfony phát triển nhanh hơn Laravel ở một số điểm.
Ảnh màn hình
– ORM giúp ánh xạ cơ sở dữ liệu sang lập trình hướng đối tượng