Symfony là gì? Hướng dẫn cách cài đặt và cấu hình Symfony dễ dàng

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. Điểm mạnh của Symfony là gì? Hiện nay, Symfony rất được ưa chuộng nhờ hai ưu điểm lớn, đó 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.

Symfony là gì? Symfony được viết bằng ngôn ngữ lập trình PHP5+ 

Symfony được viết bằng ngôn ngữ lập trình PHP5+

Framework Symfony giúp người sử dụng dễ dàng đạt được các  mục tiêu như: mã nguồn linh hoạt, tối ưu hóa hiệu suất công việc nhanh chóng, hoạt động nâng cấp đơn giản, bảo mật cao (chứng thực điện tử, eBanking), tích hợp với ứng dụng và module,…

Ai có thể sử dụng Symfony?

Symfony là gì? Symfony thích hợp với các doanh nghiệp đang triển khai dự án phát triển ứng dụng quy mô trung bình, lớn

Symfony thích hợp với các doanh nghiệp đang triển khai dự án phát triển ứng dụng quy mô trung bình, lớn

Tính đến thời điểm hiện tại, có khoảng 80% website đang được lập trình bằng ngôn ngữ PHP. Symfony chính là một trong các giải pháp hiệu quả nhất giúp khai thác được tiềm năng thật sự của PHP.

Với đặc điểm là linh hoạt, cấu trúc đáng tin cậy, Symfony rất thích hợp cho các doanh nghiệp đang triển khai/duy trì dự án với quy mô trung bình hoặc lớn trong thời gian dài. Công nghệ này đang được rất nhiều công ty lớn như Facebook, Wikipedia, TF1, M6WEB,… yêu thích sử dụng.

Cấu trúc project của Symfony là gì?

Symfony là gì? Nó có cấu trúc MVC pattern

Symfony có cấu trúc MVC pattern

Tương tự 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, ViewController; 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 ViewModel.

Cấu trúc cần biết khi làm việc với Symfony

ORM giúp ánh xạ cơ sở dữ liệu sang lập trình hướng đối tượng

ORM giúp ánh xạ cơ sở dữ liệu sang lập trình hướng đối tượng

Trước khi tìm hiểu sâu hơn về cách cài đặt, cấu hình Symfony, chúng ta cần tìm hiểu một số cấu trúc sau:

  • ORM: Symfony là 1 framework hướng đối tượng. Muốn thực hiện các thao tác trong Symfony. Thay vì sử dụng câu lệnh SQL, bạn có thể dùng các objects. Trên Symfony, các thông tin database sẽ được chuyển thành object model thông qua ORM tool. Đây là một cơ chế có khả năng ánh xạ cơ sở dữ liệu sang ngôn ngữ lập trình hướng đối tượng.
  • Schema: Để thực hiện quá trình ánh xạ cơ sở dữ liệu thì ORM cần một số thông tin schema mô tả để tạo class tương ứng. Thông qua những mô tả về cơ sở dữ liệu trong file schema.yml, bạn có thể dùng ORM để tạo ra các câu SQL cần thiết.
  • Routing: URL trong Symfony vô cùng quan trọng. Do đó, có hẳn một framework riêng để quản lý chúng, đó là routing framework. Routing sẽ quản lý internal URIs và external URLs. Khi xuất hiện một request đến, routing sẽ phân tích và chuyển URL thành internal URI.

So sánh Laravel và Symfony

Laravel là gì? Nó và Symfony đều có các ưu, nhược điểm riêng

Laravel và Symfony đều có các ưu, nhược điểm riêng

Laravel là gì?

Laravel là một PHP framework, có mã nguồn mở và miễn phí, được xây dựng nhằm hỗ trợ phát triển các phần mềm, ứng dụng, theo kiến trúc MVC.

Bạn có thể tìm hiểu thêm về Laravel cũng như cách cài đặt và sử dụng trong bài viết: “Laravel là gì?“. SymfonyLaravel là 2 trong số những framework PHP tốt nhất hiện nay. Nhưng khi đứng cạnh nhau, bên nào sẽ chiếm ưu thế hơn? Hãy cùng đưa ra một vài so sánh nho nhỏ:

Sự khác biệt giữa Laravel và Symfony là gì? – Ngôn ngữ lập trình

Cả SymfonyLaravel đều sử dụng ngôn ngữ lập trình PHP. Do đó, nhiều người cho rằng về phương diện này, 2 framework không có điểm khác biệt nào đáng kể. Nhưng thật ra điều đó không hoàn toàn đúng.

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.

Trong khi đó, Laravel lại là một trường hợp khác. Nó sử dụng các cấu trúc PHP đặc biệt một cách thường xuyên hơn. Các câu lệnh code trong Laravel cũng ngắn hơn và ít bị lặp lại hơn.

Sự khác biệt giữa Laravel và Symfony là gì? – 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.

Còn trong Laravel, việc truy cập dữ liệu diễn ra linh hoạt và nhanh chóng hơn. Chỉ cần có một số kiến thức về SQL là bạn có thể tìm kiếm database dễ dàng.

Sự khác biệt giữa Laravel và Symfony là gì? – Template engine

Symfony sử dụng template engine là Twig. Trong khi đó, Laravel sử dụng Blade.

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.

Sự khác biệt giữa Laravel và Symfony là gì? – Middleware

Cả LaravelSymfony đều có thể hỗ trợ được middleware nhưng theo các phương thức rất khác nhau. Cụ thể, Laravel sử dụng decorator pattern. Còn Symfony thì dựa trên observer pattern.

Sự khác biệt giữa Laravel và Symfony là gì? – Cache và performance

LaravelSymfony đều caching dữ liệu theo các cách riêng. Nhưng có một sự thật khá thú vị là Laravel hoạt động nhanh hơn ngay cả khi Symfony đang sử dụng cache.

Cả Symfony lẫn Laravel đều có thể hỗ trợ APC, Memcached, Redis và file dựa trên cache.

Sự khác biệt giữa Laravel và Symfony là gì? – Các công cụ debug và development

Xét về các công cụ debug và development thì Symfony được hỗ trợ tốt hơn rất nhiều so với Laravel. 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. Còn panel của Laravel lại rất đơn giản, chỉ có thể làm một vài profiling cơ bản.

Sự khác biệt giữa Laravel và Symfony là gì? – Phần mềm bên thứ 3

Xét về phương diện này, có vẻ như Symfony vượt trội hơn hẳn. 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.

SymfonyLaravel đều có những ưu, nhược điểm riêng. Tùy thuộc vào các yêu cầu cụ thể của công việc mà bạn cần sử dụng loại framework phù hợp nhất.

Cách cài đặt và cấu hình Symfony

Symfony là gì? Việc cài đặt, sử dụng Symfony khá đơn giản

Việc cài đặt, sử dụng Symfony khá đơn giản

Việc bắt đầu sử dụng Symfony khá đơn giản. Tuy nhiên, bạn cũng cần phải nắm rõ một số thao tác cơ bản sau:

Cài đặt Symfony Installer

Đầu tiên, bạn cần cài đặt một ứng dụng Symfony mới bằng cách sử dụng Symfony Installer. Mỗi hệ điều hành sẽ có cách cài đặt Symfony khác nhau. Cụ thể như sau:

  • Linux và Mac OS

Bạn cần mở cửa sổ dòng lệnh trên máy tính rồi gõ các câu lệnh sau:

  • Windows

Đầu tiên, mở cửa sổ dòng lệnh và gõ:

Tiếp đến, di chuyển thư mục vừa download vào đường dẫn chứa dự án thông qua câu lệnh:

Tạo một ứng dụng Symfony

Sau khi tải và cài đặt Symfony về máy thành công, bạn cần tạo project đầu tiên của mình bằng cách thực hiện câu lệnh:

  • Đối với Linux và Mac OS
  • Đối với Windows
Khi đã thực hiện các câu lệnh trên, hệ thống máy tính sẽ xuất hiện một thư mục mới với tên là my_project_name, trong đó có chứa một dự án dựa trên phiên bản Symfony có sẵn.

Tạo project riêng với một phiên bản Symfony cụ thể

Nếu muốn xây dựng project trên một phiên bản Symfony cụ thể, bạn có thể thực hiện các câu lệnh sau:

Tạo project Symfony với Composer

Nếu đang sử dụng PHP 5.3 trở lên thì bạn có thể tạo một dự án Symfony bằng cách dựa trên Composer (không cần thực hiện Symfony Installer).

Đầu tiên, bạn cần tiến hành cài đặt Composer (nếu hệ thống máy tính chưa có).

Sau đó, hãy chạy lệnh:

Với câu lệnh này, bạn sẽ tạo được dự án mới có tên là my_project_name  dựa trên phiên bản Symfony mới nhất.

Trong trường hợp muốn tạo project với một phiên bản Symfony cụ thể, bạn có thể dùng câu lệnh:

Chạy một ứng dụng Symfony

Để chạy một ứng dụng Symfony, bạn cần gõ câu lệnh:

Khi quá trình chạy kết thúc, màn hình sẽ hiển thị thông báo xanh với dòng chữ “Server running on….”

Tiếp đến, hãy chạy trên trình duyệt theo đường dẫn http://localhost:8000/. Bạn sẽ được kết quả như hình bên dưới.

Symfony là gì? Kết quả khi chạy ứng dụng trên trình duyệt theo đường dẫn http://localhost:8000/

Kết quả khi chạy ứng dụng trên trình duyệt theo đường dẫn http://localhost:8000/

Trên đây là các thông tin cơ bản về Symfony và cách cài đặt, cấu hình cho framework PHP này. Hy vọng bài viết từ “Mắt Bão – nhà cung cấp dịch vụ đăng ký hosting hàng đầu” đã đem đến những kiến thức công nghệ tin học bổ ích cho bạn. Chúc bạn thành công!