Góc nhìn của một Laravel Dev sau hơn 5 năm.
Laravel là người yêu đầu tiên. Symfony giống vợ trí thức: hơi khó tính nhưng ở lâu thì thấy sang. ( câu ai đó nói chứ không phải tui =)) )
Mở đầu
Tui là một PHP Dev chính hiệu, hơn 6 năm lăn lộn, chinh chiến nhiều dự án với nhiều công nghệ khác nhau, đã từng lăn lộn với Laravel artisan, hạnh phúc với Eloquent, và thậm chí từng nghĩ Laravel service container là chân lý của anh em lập trình với Laravel 😅
Cho đến một ngày đẹp trời, khi làm một dự án eCommerce cho client châu Âu, họ yêu cầu dùng Sylius, nghe cái tên lạ hoắc luôn, và cái mình oải hơn đó là Sylius thì… built on Symfony. Hummm, Symfony thì nghe lâu rồi nhưng mà làm thì nó là chuyện khác.
Nhưng dù thế nào đi nữa thì cuộc tình này cũng phải bắt đầu.
Symfony là gì?
Nói một cách ngắn gọn:
Symfony là framework PHP được thiết kế để xây những ứng dụng “có não” 🧠 – nơi bạn kiểm soát được mọi thứ, và mọi thứ đều cần bạn hiểu trước khi chạm vào.
Nếu Laravel là “framework for humans”, thì Symfony là “framework for engineers who want to control the humans” 😂
Những thứ bạn sẽ gặp:
-
Event Dispatcher → Nhiều khi thấy giống trò chơi domino 🤯
-
Dependency Injection Container → Giống như… chơi ma trận DI
-
Console Commands → Rất mạnh, nhưng lần đầu nhìn vào hơi… run, tuy nhiên do đã làm với Laravel rồi nên .... cũng thường thôi.
-
Form Component → Yêu ghét lẫn lộn. Code form như viết config cho tên lửa 🚀
So sánh Laravel vs Symfony (bằng… tâm trạng 😁)
Tiêu chí |
Laravel |
Symfony |
---|---|---|
Khởi đầu |
10 phút là có web chạy 🎉 |
2 tiếng config xong, chưa biết mình đang làm gì 😵 |
Cộng đồng |
Nhộn nhịp, trẻ trung, meme nhiều |
Chững chạc, hàn lâm, code sample thường dài |
Tự do |
Laravel: “Anh lo hết cho em” ❤️ |
Symfony: “Tự lo đi, nhưng anh có công cụ siêu đỉnh cho mấy chú tha hồ vọc” 🧰 |
Debug |
dd() vô là thấy |
dump() xong thấy… array recursive đến vô cực 😭 |
Tốc độ học |
Nhanh, dễ tiếp cận |
Chậm mà chắc, hiểu xong rồi… nghiện luôn 🤤 |
Vì sao tôi rẽ sang Symfony
-
Vì Laravel bắt đầu hạn chế tôi trong các dự án lớn: mỗi lần custom sâu là phải override đủ kiểu → mệt
-
Vì tôi muốn viết code có thể mở rộng lâu dài, scale lớn mà không gãy
-
Vì Sylius dùng Symfony, và Sylius thực sự quá chất để làm eCommerce chuyên nghiệp
-
Vì Symfony giúp tôi…
bớt làm Dev code nhanh, mà thành Dev code sạch.
- Nhưng lý do chính thì là dự án làm Sylius nên phải theo 🤤
Lời khuyên thân thương
Nếu bạn là Laravel Dev:
-
Muốn làm shop nhỏ, blog, hệ thống vừa vừa → Cứ Laravel cho nhanh, mọi thứ có sẵn hết, dứt phát ăn ngay.
-
Muốn học kiến trúc tốt hơn, thử những thứ như Event Driven, Hexagonal, DDD, Messenger Bus,... → Symfony là món quà không gói 🎁
Nhưng đừng vội:
-
Symfony không thân thiện lúc đầu đâu. Nó hơi lạnh lùng.
- Nhiều khi bạn sẽ nỗi đoá khi config cho nó, mình đã trải qua :D
Nhưng một khi bạn hiểu được mối quan hệ giữa Service – Container – Event – Form – Bundle…
→ Bạn sẽ yêu nó bằng cả trái tim developer ❤️🔥
Kết
Laravel dạy tôi cách đi nhanh.
Symfony dạy tôi cách xây đường để đi lâu dài.
Bài sau tôi sẽ hướng dẫn các bạn cách setup một dự án Symfony chuẩn chỉnh từ đầu, giải thích từng bước như kể chuyện cho người mới học.
Bạn từng thử Symfony chưa? Hay còn đang chới với giữa autowire và config? Gửi bình luận hoặc góp ý nhé!
Viết bởi Dong Nguyen – Dev PHP hơn 5 năm, giờ nghiện Symfony không lối thoát.
BÌNH LUẬN
Địa chỉ email của bạn sẽ không được công khai.