Hướng dẫn php symfony

Symfony là một mã nguồn mở khung ứng dụng web PHP, được thiết kế cho các nhà phát triển, những người cần một bộ công cụ đơn giản và thanh lịch để tạo ra các ứng dụng web đầy đủ tính năng. Symfony được hỗ trợ bởi SensioLabs. Nó được phát triển bởi Fabien Potencier vào năm 2005

nó là khung MVC

trong ứng dụng này, bạn sẽ tìm hiểu sau
-> Symfony - Hướng dẫn
-> Symfony - Giới thiệu
-> Symfony - Set
-> Symfony - Kiến trúc
-> Symfony - Linh kiện
-> Symfony - Dịch vụ container
-> Symfony - Event and EventListener
-> Symfony - Biểu hiện
-> Symfony - Gói
-> Tạo một ứng dụng web đơn giản
-> Symfony - Bộ xử lý
-> Symfony - Định tuyến
-> Symfony - Công cụ xem
-> Symfony - Học thuyết ORM
-> Symfony - Biểu mẫu
-> Symfony - Xác thực
-> Symfony - Tải lên tập tin
-> Symfony - Kiểm soát Ajax
-> Cookie và Quản lý phiên
-> Symfony - Quốc tế hóa
-> Symfony - Ghi nhật ký
-> Symfony - Quản lý Email
-> Symfony - Đơn vị kiểm tra
-> Symfony - Các khái niệm nâng cao
-> Symfony - REST của bản
-> Symfony - Bản CMF
-> Hoàn thành Ví dụ làm việc
-> Symfony - câu hỏi phỏng vấn liên quan và trả lời

Lần cập nhật gần đây nhất

Giới thiệu Framework symfony đã trở thành dự án mã nguồn mở cách đây 3 năm và đã trở thành một trong những framework PHP phổ biến nhất nhờ những tính năng tuyệt vời và tài liệu phong phú. Tháng 12-2005, sau khi symfony ra phiên bản đầu tiên, chúng tôi đã ra mắt "Askeet tutorial", bao gồm 24 bài hướng dẫn, được đưa lên từng ngày từ 1/12 đến giáng sinh. Hướng dẫn này là một công cụ vô giá để quảng cáo khuôn khổ cho những người mới bắt đầu sử dụng. Rất nhiều lập trình viên học symfony thích thú với askeet, và nhiều công ty vẫn sử dụng askeet làm tài liệu đào tạo. Chúng ta vừa chào đón symfony 1. 2 và yêu cầu hướng dẫn trở nên lạc hậu. Vì thế chúng ta cần một loạt bài hướng dẫn mới. Chào mừng đến với Jobeet, loạt bài hướng dẫn của năm 2008

Thử lại đúng như vậy, chúng tôi thực hiện lại nó. Mỗi ngày kể cả cuối tuần, một bài hướng dẫn mới sẽ được đưa lên. Mỗi bài hướng dẫn sẽ mất khoảng một giờ để thực hiện, và là cơ hội để học symfony bằng cách viết mã một trang web thực sự, từ đầu đến cuối. 1 giờ/1 bài hướng dẫn x 24 bài hướng dẫn = 1 ngày, đó chính là khoảng thời gian mà chúng tôi nghĩ là một lập trình viên cần để học cơ bản về symfony. Mỗi ngày, các tính năng mới sẽ được bổ sung vào ứng dụng, đồng thời các chức năng mới của symfony cũng được giới thiệu. Với Asket, ngày thứ 21 là "get-a-symfony-guru-for-a-day". Chúng tôi không có kế hoạch cho ngày này, cộng đồng sẽ đề xuất một tính năng để bổ sung vào yêu cầu. Và cộng đồng quyết định chúng ta cần một công cụ tìm kiếm cho ứng dụng. Và chúng tôi đã làm nó. Với Jobeet, chúng tôi dự kiến ​​ngày thứ 21 sẽ là "ngày thiết kế". Sau ngày thứ 4, bạn sẽ có tất cả thông tin cần thiết về HTML và CSS để bắt đầu thiết kế website Jobeet. Vì vậy, nếu bạn là nhà thiết kế, hoặc công ty bạn có bộ phận về thiết kế, bạn có thể đóng góp cho thiết kế. Vào ngày thứ 21, chúng tôi sẽ tổ chức bầu chọn và cộng đồng sẽ chọn thiết kế chính thức cho Jobeet. Tất nhiên, nếu được chọn, bạn sẽ nhận được thẻ thanh toán và cả sự nổi tiếng

Sự khác biệt của hướng dẫn này Hãy nhớ lại những ngày còn PHP4. À, la Belle Epoque. PHP là 1 trong những ngôn ngữ đầu tiên có mục đích chính là web và là một trong những ngôn ngữ dễ học nhất

Nhưng công nghệ web phát triển rất nhanh, người lập trình web cần luôn cập nhật những công cụ và công nghệ mới. Cách tốt nhất để học là đọc blog, hướng dẫn và sách. Chúng tôi đã đọc rất nhiều, với nhiều ngôn ngữ khác nhau PHP, Python, Java, Ruby, Perl. Chắc chắn bạn thường gặp những cảnh báo như vậy. "Với một ứng dụng thực tế, đừng quên kiểm tra hợp lệ [xác thực] và điều khiển lỗi [xử lý lỗi thích hợp]. " hoặc "An ninh là một bài tập cho người đọc. " hoặc "Bạn cần phải viết bài kiểm tra. "Những thứ đó cũng quan trọng như mã vậy. Không có nó, mã nguồn có thể chạy không đúng như dự kiến. Thật là tệ. in sao vậy? . Trong hướng dẫn này, bạn sẽ không bao giờ phải thấy những câu như chúng tôi phải viết bài kiểm tra, kiểm tra lỗi, mã xác nhận, mà vẫn chắc chắn rằng ứng dụng của chúng tôi hoàn toàn bảo mật. Đó là bởi vì symfony không chỉ để viết mã, mà còn là môi trường tốt nhất để phát triển các ứng dụng chuyên nghiệp. Chúng ta có thể làm được vì symfony cung cấp tất cả các công cụ cần thiết để thực hiện những công việc này mà không cần phải viết nhiều mã để làm điều đó. Xác thực, xử lý lỗi, bảo mật và kiểm tra là những ưu tiên hàng đầu trong symfony. Đó là một trong những lý do chúng ta sử dụng khuôn khổ trong một dự án thực tế. Toàn bộ mã nguồn trong hướng dẫn này bạn có thể sử dụng trong dự án thực tế. Bạn có thể thoải mái sử dụng một phần hoặc toàn bộ mã nguồn

Dự án ứng dụng được thiết kế trên symfony. Mục đích để chứng minh rằng symfony có thể sử dụng để phát triển một ứng dụng chuyên nghiệp một cách dễ dàng và tốn ít công sức nhất. hôm nay, nội dung của dự án sẽ được bí mật. Chúng ta chỉ biết tên của dự án là. việc làm

Công việc hôm nay?

24 giờ là đủ để phát triển 1 ứng dụng với symfony, hôm nay chúng ta sẽ không viết dòng code PHP nào. Tuy không viết mã, nhưng bạn sẽ bắt đầu hiểu được lợi ích của việc sử dụng một framework như symfony, bằng cách khởi tạo một dự án mới. Mục tiêu của ngày hôm nay là cài đặt môi trường phát triển và hiển thị một trang của ứng dụng trên trình duyệt web. Bao gồm công việc. cài đặt, khởi tạo ứng dụng và cấu hình máy chủ web

Yêu cầu trước tiên, bạn phải có một máy chủ web [Apache giả sử], một hệ thống quản trị cơ sở dữ liệu [MySQL, PostgreSQL, hoặc SQLite], và PHP 5. 2. 4 trở lên. Chúng ta sẽ sử dụng rất nhiều dòng lệnh, tốt nhất là sử dụng hệ điều hành của họ Unix, nhưng nếu bạn sử dụng Windows, bạn cần nhập lệnh từ cửa sổ cmd. Có thể sử dụng các lệnh của Unix trên môi trường Windows. Nếu bạn muốn sử dụng các công cụ như tar, gzip, hay grep trên Windows, bạn có thể cài đặt Cygwin. Tài liệu hướng dẫn không nhiều, hướng dẫn cài đặt bạn có thể xem tại đây. Bạn cũng có thể thử khám phá Windows Services for Unix. Hướng dẫn chủ đề này chủ yếu liên quan đến symfony framework, chúng tôi giả định rằng bạn đã hiểu về PHP 5 và lập trình hướng đối tượng

Cài đặt Symfony Đầu tiên, tạo một thư mục để chứa các tệp của dự án Jobeet. $ mkdir -p /home/sfprojects/jobeet $ cd /home/sfprojects/jobeet

ở cửa sổ. c. \> mkdir c. \Development\sfprojects\jobeet c. \> cd c. \Development\sfprojects\jobeet

Người dùng Windows nên chạy symfony và khởi động dự án tại thư mục không chứa dấu cách. Thư mục sử dụng thư mục Tài liệu và Cài đặt , hoặc Tài liệu của tôi. Tạo một thư mục để chứa thư viện symfony framework. $ mkdir -p lib/nhà cung cấp

Để cài đặt symfony, hãy tải gói lưu trữ trên trang web symfony. Hướng dẫn này được viết trên symfony 1. 2, hãy tải xuống phiên bản mới nhất của symfony 1. 2

Tại mục "Tải xuống nguồn", bạn sẽ tìm thấy tệp nén định dạng. tgz or. khóa kéo. Tải xuống tệp này và sao chép vào thư mục vừa tạo lib/vendor sau đó giải nén. $ cd lib/nhà cung cấp $ tar zxpf symfony-1. 2-mới nhất. tgz $ mv symfony-1. 2. 0

Tại Windows, việc giải nén tệp zip có thể thực hiện được từ menu chuột phải. Sau khi đổi tên thư mục thành symfony, chúng ta có thư mục như sau c. \Development\sfprojects\jobeet\lib\vendor\symfony. Các cấu hình PHP có thể khác nhau, chúng ta cần kiểm tra cấu hình PHP để đảm bảo đáp ứng các yêu cầu tối thiểu để chạy symfony. Kiểm tra đoạn mã chạy đoạn mã từ dòng lệnh. $cd. /. $ php lib/nhà cung cấp/symfony/data/bin/check_configuration. php

Nếu có vấn đề, màn hình sẽ đưa ra gợi ý và cách chỉnh sửa. You have running file kiểm tra cấu hình PHP từ trình duyệt. Sao chép tập tin vào thư mục gốc của máy chủ web và truy cập nó từ trình duyệt. Đừng quên xóa tệp đi sau khi kiểm tra xong

Nếu đoạn script không hiển thị thông báo lỗi, hãy kiểm tra để đảm bảo rằng symfony đã được cài đặt thành công bằng cách sử dụng lệnh của symfony để xem phiên bản [chữ cái V viết hoa]. $ php lib/nhà cung cấp/symfony/data/bin/symfony -V

ở cửa sổ. c. \> đĩa. \. c. \> php lib\vendor\symfony\data\bin\symfony -V

Nếu bạn muốn xem tất cả các lệnh của symfony, hãy nhập symfony để xem danh sách các lệnh. $ php lib/nhà cung cấp/symfony/data/bin/symfony

ở cửa sổ. c. \> php lib\vendor\symfony\data\bin\symfony

Các lệnh của symfony rất hữu dụng. Nó cung cấp rất nhiều công cụ giúp việc phát triển sản phẩm của bạn tiện lợi như xóa cache, tự động sinh mã,

Cài đặt Project Trong symfony, các ứng dụng có chung một cơ sở dữ liệu [data model] được nhóm lại thành các dự án. Với Jobeet project, chúng ta có 2 ứng dụng. frontend và backend

Tạo dự án Từ thư mục công việc, chạy lệnh tạo. project to create 1 project symfony. $ php lib/nhà cung cấp/symfony/data/bin/symfony tạo. công việc dự án

ở cửa sổ. c. \> tạo php lib\vendor\symfony\data\bin\symfony. công việc dự án

Lệnh tạo. dự án tạo tập tin cấu trúc và thư mục mặc định cần thiết cho một dự án symfony. Thư mục Mô tả ứng dụng/ chứa toàn bộ bộ đệm của các ứng dụng dự án/ chứa các tệp bộ nhớ đệm được tạo bởi framework config/ chứa các tệp cấu hình lib/ chứa các lớp và nhật ký thư viện/ nhật ký tệp của các plugin khung/ chứa các plugin có được

Thư mục Mô tả kiểm tra/ chứa các đơn vị tệp và web kiểm tra chức năng/ thư mục web gốc [xem bên dưới] Tại sao symfony tạo ra quá nhiều tệp như vậy? . Nhờ cấu trúc tập tin cấu trúc và thư mục hệ thống nhất của symfony, bất kỳ lập trình viên nào hiểu biết về symfony cũng có thể thực hiện công việc bảo trì cho bất kỳ dự án symfony nào. Sau một thời gian ngắn, anh ta có thể bắt đầu mã, sửa lỗi và thêm tính năng mới. Lệnh tạo. dự án cũng tạo một phím tắt symfony ở thư mục bên ngoài cùng của dự án Jobeet để giảm số ký tự phải nhập trong lệnh. Vì thế, từ bây giờ, thay vì nhập đầy đủ đường dẫn, chúng ta chỉ cần nhập symfony

Tạo ứng dụng ngay bây giờ, tạo giao diện ứng dụng bằng lệnh tạo. nhiệm vụ ứng dụng. $ php symfony tạo. ứng dụng --escaping-strategy=on --csrfsecret=Unique$ecret frontend

Khi chạy file symfony, người dùng Unix có thể thay thế toàn bộ đoạn 'php symfony' bằng '. /symfony' từ bây giờ. Tại Windows, bạn có thể sao chép tệp 'symfony. bat' vào dự án của bạn và sử dụng 'symfony' thay vì 'php symfony'. c. \> sao chép lib\vendor\symfony\data\bin\symfony. con dơi

Một lần nữa, tạo lệnh. ứng dụng tạo cấu trúc thư mục mặc định cấu trúc cần thiết cho một ứng dụng nằm trong thư mục ứng dụng/giao diện người dùng. Thư mục Mô tả cấu hình/ chứa các tệp cấu hình cho ứng dụng lib/ các lớp và thư viện của mô-đun ứng dụng/ chứa mã nguồn của các mẫu ứng dụng [MVC]/ chứa các mẫu tệp toàn cục Tất cả các lệnh của symfony phải chạy bên dưới . Khi tạo lệnh gọi. app , chúng ta đã cung cấp hai lựa chọn liên quan đến bảo mật. • •

--escaping-chiến lược. cho phép thoát đầu ra để chống tấn công XSS --csrf-secret. cho phép mã thông báo phiên ở dạng để chống tấn công CSRF

Nhờ 2 tham số này, chúng ta đã bảo vệ được ứng dụng của mình khỏi 2 lỗ truy tìm mật khẩu phổ biến trên web. Nếu bạn chưa biết về XSS và CSRF, hãy dành vài phút để tìm hiểu về những lỗ hổng bảo mật này

Đường dẫn symfony Bạn có thể xem phiên bản symfony sử dụng trong dự án của bạn bằng cách gõ. $ php biểu tượng -V

Lệnh này cũng hiển thị đường dẫn đến thư mục cài đặt symfony, được sử dụng trong tệp config/ProjectConfiguration. tầng lớp. php. // config/ProjectConfiguration. tầng lớp. php request_once '/Users/fabien/work/symfony/dev/1. 2/lib/autoload/sfCoreAutoload. tầng lớp. p hp';

to cho tiện, thay đường dẫn tuyệt đối bằng đường dẫn tương đối. // config/ProjectConfiguration. tầng lớp. php require_once dirname[__FILE__]. '/. /lib/vendor/symfony/lib/autoload/sfCoreAutoload. tầng lớp. php';

Bây giờ, bạn có thể sao chép dự án Jobeet đến bất kỳ đâu, nó vẫn chạy được

Môi trường Trong thư mục web/ , bạn có thể thấy 2 tệp PHP. mục lục. php và frontend_dev. php. Những tập tin này được gọi là bộ điều khiển phía trước. mọi yêu cầu đến ứng dụng đều thông qua chúng. Nhưng tại sao chúng ta có 2 file front controllers trong khi chúng ta chỉ có 1 ứng dụng? . Khi bạn phát triển một ứng dụng, ngoại trừ khi bạn phát triển sản phẩm trực tiếp trên máy chủ, bạn cần vài môi trường. • • • •

môi trương phat triển. môi trường được sử dụng bởi các nhà phát triển web để bổ sung các tính năng, sửa lỗi,. môi trường thử nghiệm. môi trường sử dụng cho các ứng dụng kiểm tra tự động. Môi trường dàn dựng. môi trường do khách hàng sử dụng để kiểm tra ứng dụng và thông báo lỗi và thiếu tính năng. môi trường sản xuất. môi trường tương tác với người dùng cuối

Trong môi trường phát triển, ứng dụng cần đăng nhập tất cả các yêu cầu để dễ dàng tìm ra lỗi, nó phải hiển thị ngoại lệ trên trình duyệt và bộ đệm hệ thống phải được tắt để có thể thấy thay đổi khi thay đổi mã. Vì thế, môi trường phát triển phải được cấu hình để phù hợp với lập trình viên

Trong môi trường sản xuất, ứng dụng phải hiển thị một thông báo lỗi thay vì hiển thị công cụ lỗi có thể của hệ thống và tất cả, bộ đệm phải được bật. Vì thế, môi trường sản xuất phải được cấu hình cho phù hợp

Mỗi môi trường trong symfony có một tập tin cấu hình riêng và symfony có sẵn 3 môi trường. dev, test, and prod. Nếu bạn mở các tập tin phía trước bộ điều khiển, bạn sẽ thấy chúng khác nhau về cấu hình của môi trường. // web/chỉ mục. php

Chủ Đề