Getting Started with symfony

Khởi tạo Project

You are currently browsing
the website for symfony 1

Visit the Symfony2 website


About

You are currently reading "Getting Started with symfony" which is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.

Tutorial Content

Master symfony

Be trained by SensioLabs experts (2 to 6 day sessions -- French or English).
trainings.sensiolabs.com

Books on symfony

Learn more about symfony with the official guides.
books.sensiolabs.com

L'audit Qualité par SensioLabs

200 points de contrôle de votre applicatif web.
audit.sensiolabs.com

Chapter Content

Tạo Project

Tạo Application

Phân quyền cho thư mục

Cấu hình cơ sở dữ liệu

Chuyển sang Doctrine

symfony training
Be trained by symfony experts
May 29: Paris (Web Development with Symfony2 - Français)
May 31: Paris (Mastering Symfony2 - Français)
Jun 06: Paris (Introduction to Symfony2 - Français)
Jun 06: Paris (Introduction to Symfony2 - English)
Jun 06: Paris (Going Further with Symfony2 - English)
and more...

Search


powered by google
You are currently browsing "Getting Started with symfony" in for the 1.2 version - Switch to language:
Creative Commons License This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.
This version of symfony is not maintained anymore.
If some of your projects still use this version, consider upgrading as soon as possible.

Ở symfony, các application chia sẻ cùng một data model và được nhóm lại trong một project. Trong phần lớn các project, chúng ta thường có 2 application: frontend và backend.

Tạo Project

Ở thư mục sfproject/, chạy tác vụ symfony generate:project để tạo project symfony:

$ php lib/vendor/symfony/data/bin/symfony generate:project PROJECT_NAME

Ở Windows:

c:\> php lib\vendor\symfony\data\bin\symfony generate:project PROJECT_NAME

Tác vụ generate:project tạo ra cấu trúc thư mục và các file cần thiết cho một project symfony:

Thư mục Mô tả
apps/ Chứa các application của project
cache/ Chứa các file cache của framework
config/ Chứa các file cấu hình
lib/ Chứa các thư viện dùng trong project
log/ Chứa file log của framework
plugins/ Chứa các plugin đã cài đặt
test/ Chứa các file unit và functional test
web/ Thư mục web root (xem bên dưới)

Tại sao symfony tạo ra quá nhiều file như vậy? Một trong những lợi ích của việc sử dụng full-stack framework là chuẩn hóa việc phát triển. Nhờ có cấu trúc file và thư mục mặc định của symfony, bất kì lập trình viên nào có kiến thức về symfony cũng có thể maintenance project symfony. Trong vài phút, anh ta đã có thể nắm bắt được code, sửa lỗi, và thêm tính năng mới.

Tác vụ generate:project cũng tạo một shortcut symfony ở thư mục gốc của project để giảm số kí tự bạn phải gõ khi chạy một lệnh.

Do đó, từ bây giờ, thay vì sử dụng đầy đủ đường dẫn đến symfony, bạn chỉ cần dùng shortcut symfony.

Tạo Application

Tạo application frontend bằng cách chạy tác vụ generate:app:

$ php symfony generate:app --escaping-strategy=on --csrf-secret=UniqueSecret frontend

Do dùng file shortcut symfony, nên người dùng Unix có thể thay thế cụm 'php symfony' bằng './symfony'.

Ở Windows bạn có thể copy file 'symfony.bat' tới project của bạn và sử dụng 'symfony' thay vì 'php symfony':

c:\> copy lib\vendor\symfony\data\bin\symfony.bat .

Dựa vào tên application được cung cấp dưới dạng một tham số, tác vụ generate:app tạo cấu trúc thư mục mặc định cần thiết trong thư mục apps/frontend/:

Thư mục Mô tả
config/ Chứa file cấu hình của application
lib/ Chứa thư viện dùng trong application
modules/ Mã nguồn application (MVC)
templates/ File template toàn cục

Khi gọi tác vụ generate:app, bạn cũng đã cung cấp 2 options bảo mật:

Bằng cách cung cấp 2 tham số này cho tác vụ, bạn đã bảo vệ ứng dụng của mình khỏi những tấn công phổ biến trên web.

Nếu bạn chưa biết về XSSCSRF, hãy dành chút thời gian để tìm hiểu về chúng.

Phân quyền cho thư mục

Trước khi thử truy cập project vừa tạo, bạn cần thiết lập quyền khi cho thư mục cache/log/, để web server có thể ghi vào đó:

$ chmod 777 cache/ log/

Cấu hình cơ sở dữ liệu

Một trong những điều đầu tiên bạn muốn làm là cấu hình để kết nối đến cơ sở dữ liệu cho project của bạn. Symfony framework hỗ trợ tất cả các sơ sở dữ liệu hỗ trợ PDO (MySQL, PostgreSQL, SQLite, Oracle, MSSQL, ...). Symfony chứa sẵn 2 ORM: Propel và Doctrine. Propel là mặc định, nhưng chuyển sang Doctrine rất đơn giản (xem mục tiếp theo).

Cấu hình cơ sở dữ liệu được thực hiện thông qua tác vụ configure:database:

$ php symfony configure:database "mysql:host=localhost;dbname=dbname" root mYsEcret

Tác vụ configure:database nhận 3 tham số: PDO DSN, username, và password để truy cập database. Nếu bạn không cần password để truy cập database, bạn có thể bỏ qua tham số này.

Chuyển sang Doctrine

Nếu bạn quyết định sử dụng Doctrine thay cho Propel, đầu tiên bạn cần enable sfDoctrinePlugin và disable sfPropelPlugin. Điều này có thể thực hiện bằng cách thay đổi file config/ProjectConfiguration.class.php:

public function setup()
{
  $this->enableAllPluginsExcept(array('sfPropelPlugin', 'sfCompat10Plugin'));
}

Sau khi lưu lại thay đổi, chạy những lệnh sau:

$ php symfony plugin:publish-assets
$ php symfony cc
$ rm web/sfPropelPlugin
$ rm config/propel.ini
$ rm config/schema.yml
$ rm config/databases.yml

Sau đó, chạy lệnh để cấu hình database cho Doctrine:

$ php symfony configure:database --name=doctrine --class=sfDoctrineDatabase "mysql:host=localhost;dbname=jobeet" root mYsEcret
Cấu hình Web Server »
« Cài đặt Symfony

Questions & Feedback

If you find a typo or an error, please register and open a ticket.

If you need support or have a technical question, please post to the official user mailing-list.