1. Symfony là gì? (Tóm lại thôi)
Nếu bạn vừa đọc bài trước (về lý do tôi rẽ hướng từ Laravel sang Symfony), thì xin chào lại 😎
Symfony là framework PHP cao cấp – nơi bạn phải hiểu chuyện mình đang làm, không có kiểu “cắm điện chạy luôn” như Laravel.
2. Cài Symfony CLI
Dùng brew cho Mac:
brew install symfony-cli/tap/symfony-cli
Hoặc Linux:
wget https://get.symfony.com/cli/installer -O - | bash
Sau đó test thử:
symfony check:requirements
Ra như thế này là ok nề. Do mình dùng ServBay để dev nên đường dẫn sẽ có những cái như /Applications/ServBay,... nếu các bạn không dùng ServBay thì sẽ kiểu khác.
Chú ý, hết sức chú ý: Nếu ra background màu xanh chữ [OK] như trên là được nhé, nó báo các phần cài cắm trong máy tính chúng ta sẵn sàng để chạy Symfony application rồi, nếu không có dòng này thì các bạn check lại nó báo gì rồi cứ thế làm theo thôi nhé.
3. Tạo project mới
Tạo project mới bằng câu lệnh sau, câu lệnh này sẽ tạo đầy đủ các đồ chơi đầy đủ để start 1 web application, nó sẽ bao gồm:
- Twig, Doctrine ORM, Webpack Encore, Security, DotEnv.
- Tốt cho web app chuẩn MVC
symfony new my_first_app --webapp && cd my_first_app
Trong demo và tutorial này thì mình sẽ dùng --webapp để Symfony cài cắm những thứ cần thiết cho chúng ta để dễ bắt đầu nhé. Sau này khi thành thạo hơn thì các bạn có thể start theo ý muốn.
Nếu bạn chỉ muốn tối giản hơn:
symfony new my_first_app --bare
--bare nghĩa là tạo một project trống hoàn toàn (gần như chỉ có cấu trúc thư mục + file composer.json, không cài sẵn bất kỳ gói nào (thường sẽ dùng cho microservices).
Tổng hợp lại các cách cài theo nhu cầu của bạn
Lệnh | Đặc điểm |
---|---|
symfony new my_first_app |
Dùng symfony/skeleton : project tối giản, chưa có Twig/Doctrine, phải tự cài thêm |
symfony new my_first_app --webapp |
Dùng symfony/website-skeleton : đầy đủ Twig, Doctrine, Security... |
symfony new my_first_app --bare |
Gần như trống hoàn toàn, chỉ tạo cấu trúc project cơ bản |
composer create-project symfony/demo |
Project demo đầy đủ tính năng để học hỏi |
4. Giải phẫu cấu trúc thư mục
Thư mục/File | Ý nghĩa |
---|---|
/bin/ | Thư mục này chứa console để chúng ta chạy request dạng console, tương tự như php artisan trong Laravel |
/src/ | Code PHP chính (Controller, Entity, Service...) |
/templates/ | View – dùng Twig template |
/config/ | Cấu hình app, route, services |
/public/ | Nơi truy cập công khai (khởi nguyên ứng dụng index.php nằm đây) |
.env | File chứa cấu hình biến môi trường |
/var/ | Thư mục chứa caching và log |
/translations/ | Chứa các text translate để làm đa ngôn ngữ |
/migrations/ | Chứa migrations, schema cho việc thay đổi database |
Nhìn chung thì cấu trúc thư mục của Symfony cũng giống giống Laravel, nếu bạn đã làm với Laravel rồi những cái này như ăn kẹo thôi =)).
5. Chạy thử
symfony serve
Vào http://localhost:8000
, bạn sẽ thấy trang welcome siêu xịn của Symfony như thế này
Tạo controller và route đầu tiên:
php bin/console make:controller HomeController
Lệnh trên sẽ tạo ra 1 controller ở thư mục src/Controller, 1 method mặc định là index ở HomeController.php, và 1 file twig template ở templates/home/index.html.twig.
Quay lại browser, gõ https://127.0.0.1:8001/home sẽ ra 1 page khác kiểu như thế này, xịn nhỉ, giờ các bạn thêm thớt chỉnh sửa gì thì cứ vào file index.html.twig để làm.
6. Kết
Vậy là bạn đã tạo xong dự án Symfony đầu tiên, không cần loay hoay cài tay hay cấu hình lằng nhằng.
Bài tiếp theo, mình sẽ hướng dẫn cách tạo Controller, View, và xử lý Form đơn giản trong Symfony nhé!
BÌNH LUẬN
Địa chỉ email của bạn sẽ không được công khai.