Không có lệnh nào được xác định trong không gian tên của bộ điều khiển
Bắt đầu sử dụng Symfony sau 10 phút. Chương này sẽ hướng dẫn bạn một số khái niệm quan trọng nhất đằng sau Symfony và giải thích cách bạn có thể bắt đầu nhanh chóng bằng cách hiển thị cho bạn một dự án đơn giản đang hoạt động Show Nếu bạn đã từng sử dụng một web framework trước đây, bạn sẽ cảm thấy quen thuộc với Symfony. Nếu không, chào mừng bạn đến với một cách phát triển ứng dụng web hoàn toàn mới Cài đặt SymfonyTrước tiên, hãy kiểm tra xem phiên bản PHP được cài đặt trên máy tính của bạn có đáp ứng các yêu cầu của Symfony không. 5. 3. 3 hoặc cao hơn. Sau đó, mở bảng điều khiển và thực hiện lệnh sau để cài đặt phiên bản Symfony mới nhất trong thư mục 10 1
Ghi chú Composer là trình quản lý gói được sử dụng bởi các ứng dụng PHP hiện đại và là cách duy nhất được đề xuất để cài đặt Symfony. Để cài đặt Trình soạn thảo trên hệ thống Linux hoặc Mac của bạn, hãy thực hiện các lệnh sau 1 2
Để cài đặt Trình soạn thảo trên hệ thống Windows, hãy tải xuống trình cài đặt thực thi Xin lưu ý rằng lần đầu tiên bạn cài đặt Symfony, có thể mất vài phút để tải xuống tất cả các thành phần của nó. Khi kết thúc quá trình cài đặt, trình cài đặt sẽ yêu cầu bạn cung cấp một số tùy chọn cấu hình cho dự án Symfony. Đối với dự án đầu tiên này, bạn có thể bỏ qua cấu hình này một cách an toàn bằng cách nhấn phím 11 liên tục Chạy SymfonyTrước khi chạy Symfony lần đầu tiên, hãy thực hiện lệnh sau để đảm bảo rằng hệ thống của bạn đáp ứng tất cả các yêu cầu kỹ thuật 1 2
Sửa bất kỳ lỗi nào được báo cáo bởi lệnh và sau đó sử dụng máy chủ web tích hợp PHP để chạy Symfony 1
Xem thêm Đọc thêm về máy chủ nội bộ trong sách dạy nấu ăn Nếu bạn gặp lỗi `Không có lệnh nào được xác định trong không gian tên "máy chủ". `, thì có lẽ bạn đang sử dụng PHP 5. 3. Vậy là được rồi. Nhưng máy chủ web tích hợp chỉ khả dụng cho PHP 5. 4. 0 hoặc cao hơn. Nếu bạn có phiên bản PHP cũ hơn hoặc nếu bạn thích máy chủ web truyền thống như Apache hoặc Nginx, hãy đọc bài viết Định cấu hình Máy chủ Web Mở trình duyệt của bạn và truy cập URL 12 để xem trang Chào mừng của Symfony Hiểu các nguyên tắc cơ bảnMột trong những mục tiêu chính của khung là giữ cho mã của bạn được tổ chức và cho phép ứng dụng của bạn dễ dàng phát triển theo thời gian bằng cách tránh trộn lẫn các lệnh gọi cơ sở dữ liệu, thẻ HTML và logic nghiệp vụ trong cùng một tập lệnh. Để đạt được mục tiêu này với Symfony, trước tiên bạn cần học một số khái niệm và thuật ngữ cơ bản Symfony đi kèm với một số mã mẫu mà bạn có thể sử dụng để tìm hiểu thêm về các khái niệm chính của nó. Truy cập URL sau để được Symfony chào đón (thay thế Fabien bằng tên của bạn) 1 12 Ghi chú Thay vì trang lời chào, bạn có thể thấy một trang trống hoặc một trang lỗi. Điều này là do cấu hình sai quyền thư mục. Có một số giải pháp khả thi tùy thuộc vào hệ điều hành của bạn. Tất cả chúng được giải thích trong phần Thiết lập quyền của cuốn sách chính thức Những gì đang xảy ra ở đây?
Trách nhiệm của bạn với tư cách là nhà phát triển là viết mã ánh xạ yêu cầu của người dùng ( 14) tới tài nguyên được liên kết với nó (trang HTML 16) Lộ trìnhSymfony định tuyến yêu cầu tới mã xử lý nó bằng cách khớp với URL được yêu cầu (i. e. đường dẫn ảo) đối với một số đường dẫn được định cấu hình. Các đường dẫn demo được xác định trong tệp cấu hình 17 0 1Thao tác này sẽ nhập tệp 18 nằm bên trong AcmeDemoBundle 2____23Ba dòng đầu tiên (sau nhận xét) xác định mã được thực thi khi người dùng yêu cầu tài nguyên " 19" (i. e. trang chào mừng mà bạn đã thấy trước đó). Khi được yêu cầu, bộ điều khiển 0 sẽ được thực thi. Trong phần tiếp theo, bạn sẽ tìm hiểu chính xác điều đó có nghĩa là gìMẹo Ngoài các tệp YAML, các tuyến có thể được định cấu hình trong các tệp XML hoặc PHP và thậm chí có thể được nhúng trong các chú thích PHP. Tính linh hoạt này là một trong những tính năng chính của Symfony, một framework không bao giờ áp đặt một định dạng cấu hình cụ thể cho bạn Bộ điều khiểnBộ điều khiển là một hàm hoặc phương thức PHP xử lý các yêu cầu gửi đến và trả về các phản hồi (thường là mã HTML). Thay vì sử dụng các biến và hàm toàn cục PHP (như 1 hoặc 2) để quản lý các thông báo HTTP này, Symfony sử dụng các đối tượng. Yêu cầu và phản hồi. Bộ điều khiển đơn giản nhất có thể có thể tạo phản hồi bằng tay, dựa trên yêu cầu 4 5Symfony chọn bộ điều khiển dựa trên giá trị 3 từ cấu hình định tuyến. 0. Chuỗi này là tên logic của bộ điều khiển và nó tham chiếu phương thức 5 từ lớp 6 6 7Mẹo Bạn có thể đã sử dụng tên lớp và phương thức đầy đủ - 7 - cho giá trị 3. Nhưng sử dụng tên logic ngắn hơn và cho phép linh hoạt hơnLớp 9 mở rộng lớp 10 có sẵn, cung cấp các phương thức tắt hữu ích, như phương thức render() tải và hiển thị một mẫu ( 11). Giá trị được trả về là một đối tượng 12 được điền với nội dung được hiển thị. Vì vậy, nếu có nhu cầu, 12 có thể được điều chỉnh trước khi nó được gửi đến trình duyệt 8 9Bất kể bạn làm như thế nào, mục tiêu cuối cùng của bộ điều khiển của bạn luôn là trả lại đối tượng 12 sẽ được gửi lại cho người dùng. Đối tượng 12 này có thể được điền bằng mã HTML, đại diện cho chuyển hướng máy khách hoặc thậm chí trả về nội dung của hình ảnh JPG với tiêu đề 16 của 17 Tên mẫu, 11, là tên lô-gic của mẫu và nó tham chiếu đến tệp 19 bên trong AcmeDemoBundle (đặt tại 120). Phần Gói bên dưới sẽ giải thích tại sao điều này lại hữu ích Bây giờ, hãy xem lại cấu hình định tuyến và tìm khóa 121 01 21 Tên logic của tệp chứa các tuyến đường 121 là 123 và đề cập đến tệp 124. Trong tệp này, các tuyến đường được định nghĩa là chú thích trên các phương thức hành động 1 22____33 Chú thích 125 tạo một tuyến đường mới khớp với đường dẫn 126 với phương thức 127. Bất kỳ chuỗi nào được đặt trong dấu ngoặc nhọn, chẳng hạn như 128, được coi là một biến có thể được truy xuất trực tiếp dưới dạng đối số phương thức có cùng tên Nếu bạn xem kỹ mã của bộ điều khiển, bạn có thể thấy rằng thay vì hiển thị một mẫu và trả về một đối tượng 12 như trước đây, nó chỉ trả về một mảng các tham số. Chú thích 00 yêu cầu Symfony hiển thị mẫu cho bạn, chuyển cho nó từng biến của mảng được trả về. Tên của mẫu được hiển thị theo sau tên của bộ điều khiển. Vì vậy, trong ví dụ này, mẫu 01 được hiển thị (đặt tại 02)mẫuBộ điều khiển hiển thị mẫu 02 (hoặc 01 nếu bạn sử dụng tên logic)1 24 1 25 Theo mặc định, Symfony sử dụng Twig làm công cụ mẫu nhưng bạn cũng có thể sử dụng các mẫu PHP truyền thống nếu muốn. Phần thứ hai của hướng dẫn này sẽ giới thiệu cách các mẫu hoạt động trong Symfony BóBạn có thể thắc mắc tại sao từ Gói lại được sử dụng trong nhiều tên bạn đã thấy cho đến nay. Tất cả mã bạn viết cho ứng dụng của mình được sắp xếp theo gói. Trong Symfony speak, một gói là một tập hợp các tệp có cấu trúc (tệp PHP, biểu định kiểu, JavaScript, hình ảnh,. ) triển khai một tính năng duy nhất (blog, diễn đàn,. ) và có thể dễ dàng chia sẻ với các nhà phát triển khác. Hiện tại, bạn đã thao tác một gói, AcmeDemoBundle. Bạn sẽ tìm hiểu thêm về các gói trong phần cuối của hướng dẫn này Làm việc với môi trườngBây giờ bạn đã hiểu rõ hơn về cách thức hoạt động của Symfony, hãy xem kỹ phần cuối của bất kỳ trang kết xuất Symfony nào. Bạn sẽ thấy một thanh nhỏ có logo Symfony. Đây là "Thanh công cụ gỡ lỗi web" và nó là người bạn tốt nhất của nhà phát triển Symfony Nhưng những gì bạn nhìn thấy ban đầu chỉ là phần nổi của tảng băng chìm; Tất nhiên, sẽ không khôn ngoan nếu bật công cụ này khi bạn triển khai ứng dụng của mình, do đó, theo mặc định, trình lược tả không được bật trong môi trường 05Môi trường là gì?Môi trường đại diện cho một nhóm cấu hình được sử dụng để chạy ứng dụng của bạn. Symfony định nghĩa hai môi trường theo mặc định. 06 (phù hợp khi phát triển ứng dụng cục bộ) và 05 (được tối ưu hóa khi thực thi ứng dụng trên sản xuất)Thông thường, các môi trường chia sẻ một số lượng lớn các tùy chọn cấu hình. Vì lý do đó, bạn đặt cấu hình chung của mình trong 08 và ghi đè lên tệp cấu hình cụ thể cho từng môi trường nếu cần 81 27 Trong ví dụ này, môi trường 06 tải tệp cấu hình 10, chính tệp này sẽ nhập tệp chung 08 và sau đó sửa đổi tệp đó bằng cách bật thanh công cụ gỡ lỗi webKhi bạn truy cập tệp 13 trong trình duyệt của mình, bạn đang thực thi ứng dụng Symfony của mình trong môi trường 06. Để truy cập ứng dụng của bạn trong môi trường 05, thay vào đó hãy truy cập tệp 15Các tuyến demo trong ứng dụng của chúng tôi chỉ khả dụng trong môi trường 06. Do đó, nếu bạn cố truy cập vào URL 17, bạn sẽ gặp lỗi 404Mẹo Nếu thay vì sử dụng máy chủ web tích hợp của PHP, bạn sử dụng Apache có bật 18 và tận dụng tệp 19 mà Symfony cung cấp trong 20, bạn thậm chí có thể bỏ qua phần 15 của URL. 19 mặc định trỏ tất cả các yêu cầu tới bộ điều khiển phía trước 151 1 29 Để biết thêm chi tiết về môi trường, hãy xem bài viết "Môi trường & Bộ điều khiển phía trước" Suy nghĩ cuối cùngXin chúc mừng. Bạn đã có trải nghiệm đầu tiên về mã Symfony. Điều đó không quá khó phải không? . Nếu bạn muốn tìm hiểu thêm về Symfony, hãy đi sâu vào phần tiếp theo. "Cái nhìn" |