Khanh Hoang - Kenn
Kenn is a user experience designer and front end developer who enjoys creating beautiful and usable web and mobile experiences.
Ngày đầu tiên học Symfony2, chúng ta sẽ cần hoàn tất việc thiết lập và cấu hình môi trường sử dụng Symfony2. Một số việc chính bao gồm lấy về phiên bản Symfony 2 mới nhất, kiểm tra hệ thống hiện tại có thỏa mãn những yêu cầu tối thiểu để chạy Symfony2 hay không và cuối cùng là thiết lập dự án Jobeet.
Trước tiên sẽ cần tạo một thư mục trên web server của bạn chứa toàn bộ dự án. Tôi đặt tên thư mục này là jobeet. Vào trang Download của Symfony http://symfony.com/download và chọn “Symfony Standard” (phiên bản mới nhất) và lấy về máy (phiên bản tôi sử dụng là 2.3.1 vừa ra mắt ngày 11/06/2013!). Sau khi download về, giải nén và copy toàn bộ nội dung của thư mục symfony vào thư mục dự án đã chọn, mà ở đây là jobeet. Kết quả thu được khi list thư mục jobeet tương tự như sau:
Cấu hình của tôi như ở hình bên dưới
Như vậy, tôi sẽ sử dụng www.jobeet.com như domain cho site jobeet và sẽ cần thêm 1 dòng mới trong file hosts như sau:
127.0.0.1 www.jobeet.com
Tất nhiên bạn sẽ cần khởi động lại Apache để có thể nhận được virtual host mới tạo, tôi sử dụng Linux (Ubuntu) và sử dụng lệnh sau:
sudo service apache2 restart
Sau bước này thông thường bạn sẽ có thể truy cập được site jobeet vừa cấu hình ở trên để kiểm tra xem mọi thứ có làm việc hay không. Kết quả sẽ kiểu như hình bên dưới.
Việc này cực kỳ quan trọng để tránh mọi rắc rối về sau khi phát triển 1 site Symfony2. Để làm điều này, bạn sẽ cần truy cập liên kết /config.php, cụ thể ở đây là http://www.jobeet.com/config.php để kiếm tra thông số hệ thống có tương thích Symfony2 hay không. Như trường hợp của tôi kết quả như sau:
Tất nhiên để ra được màn hình này với riêng tôi đã cần thực hiện 1 số nâng cấp, thay đổi với hệ thống hiện tại!!!
Cụ thể:
- Phiên bản PHP tôi đang sử dụng là 5.3.2 sẽ cần nâng cấp lên 1 version > 5.3.4 như Symfony hướng dẫn, và thực tế tôi đã nâng cấp lên 5.3.10
với lệnh cụ thể sau (Ubuntu)
sudo apt-get remove --purge php*
sudo apt-get autoremove
sudo apt-add-repository ppa:brianmercer/php5
sudo apt-get update
sudo apt-get install php5 libapache2-mod-php5 php5-cli php5-cgi php5-mysql php5-gd
sudo service apache2 restart
- Ngoài ra, tôi cũng cần thực hiện một số nâng cấp, tối ưu khác như cài đặt intl extension.
Thiết lập short_open_tag về Off, thiết lập date.timezone là Asia/Ho_Chi_Minh (http://us2.php.net/manual/en/timezones.php)…, những thay đổi này đều được thực hiện thông qua chính sửa file php.ini (trường hợp của tôi là /etc/php5/apache2/php.ini) và bạn sẽ cần khởi động lại Apache để nhận những thay đổi này.
sudo apt-get install php5-intl
sudo apache2ctl restart
// php.ini
short_open_tag = Off
date.timezone = Asia/Ho_Chi_Minh
Giống như Symfony 1.x, Symfony2 cung cấp các công cụ dòng lệnh giúp bạn sử dụng framework dễ dàng. Để xem danh sách đầy đủ các lệnh, hãy sử dụng lênh sau:
php app/console list
Symfony2 bao gồm một tập các bundle. Bản thân chính Symfony framework cũng là một bundle. Để tạo ứng dụng jobeet, chúng ta sẽ cần tạo 1 bundle jobeet mới sử dụng lệnh:
php app/console generate:bundle --namespace=Ens/JobeetBundle --format=yml
Trong suốt quá trình tạo bundle, bộ tạo sẽ hỏi bạn các câu hỏi để trợ giúp việc tạo bundle, như tên bundle,…
Dưới đây là hình ảnh tạo bundle jobeet của tôi:
Đến bước này thì xem như bạn đã hoàn thành ngày đầu tiên học Symfony 2 qua dự án Jobeet. Việc cuối cùng là xóa toàn bộ cache để đảm bảo truy cập site với cấu trúc và dữ liêu mới nhất.
php app/console cache:clear --env=prod
php app/console cache:clear --env=dev
Để xem thành quả của mình, bạn truy cập từ trình duyệt: http://www.jobeet.com/hello/jobeet cho production site hoặc http://www.jobeet.com/app_dev.php/hello/jobeet cho dev site. Chú ý thay đổi domain www.jobeet.com thành domain tương ứng mà bạn đã thiết lập.