Copyright© Mat Bao Company. All Reserved.
Sử dụng nội dung ở trang này và dịch vụ tại Mắt Bão có nghĩa là bạn đồng ý với Thỏa thuận sử dụng và Chính sách bảo mật của chúng tôi.
Công ty cổ phần Mắt Bão - Giấy phép kinh doanh số: 0302712571 cấp ngày 04/09/2002 bởi Sở Kế Hoạch và Đầu Tư Tp. Hồ Chí Minh.
Giấy phép cung cấp dịch vụ Viễn thông số 247/GP-CVT cấp ngày 08 tháng 05 năm 2018.
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.
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,…
>>> Có thể bạn chưa biết Fframework là gì
Ai có thể sử dụng Symfony?
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ì?
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, 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.
Cấu trúc cần biết khi làm việc với Symfony
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 cũng là một trong những Framework được sử dụng khá phổ biến. Hãy cùng Mắt Bão so sánh chi tiết về những ưu nhược điểm của nền tảng này so với Symfony về:
- Ngôn ngữ lập trình
- Truy cập database
- Template engine
- Middleware
- Cache và performance
- Các công cụ debug và development
- Phần mềm bên thứ 3
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ì?“. Symfony và Laravel 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ả Symfony và Laravel đề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ả Laravel và Symfony đề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
Laravel và Symfony đề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.
Symfony và Laravel đề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
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:
$ sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony $ sudo chmod a+x /usr/local/bin/symfony
- Windows
Đầu tiên, mở cửa sổ dòng lệnh và gõ:
c:> php -r "readfile('https://symfony.com/installer');" > symfony
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:
c:> move symfony c:projects c:projects> php symfony
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
$ symfony new my_project_name
- Đối với Windows
c:> cd projects/ c:projects> php symfony new my_project_name
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:
$ symfony new my_project_name 2.8 $ symfony new my_project_name 3.1.1
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:
$ composer create-project symfony/framework-standard-edition my_project_name
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:
$ composer create-project symfony/framework-standard-edition my_project_name "3.1.*"
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:
$ cd my_project_name/ $ php bin/console server:run
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.
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!
Chuyên gia SEO và yêu thích lập trình Website, đặc biệt với nền tảng WordPress.