Không có lệnh nào được định nghĩa trong không gian tên make''

Tôi đã thử tạo phần mềm trung gian thông qua

$ composer mezzio:middleware:create "App\XClacksOverheadMiddleware"

Tôi đang đối mặt với lỗi
Không có lệnh nào được định nghĩa trong “mezzio. phần mềm trung gian” không gian tên

Bất kỳ gợi ý hữu ích, xin vui lòng

Thanks

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

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

Trướ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

$ curl -sS //getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
0

1
$ composer create-project symfony/framework-standard-edition myproject/ '~2.3'

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
$ curl -sS //getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer

Để 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

$ curl -sS //getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
1 nhiều lần

Trướ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
$ cd myproject/
$ php app/check.php

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
$ php app/console server:run

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

$ curl -sS //getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
2 để xem trang Chào mừng của Symfony

Mộ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
//localhost:8000/app_dev.php/demo/hello/Fabien

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ả đều được giải thích trong phần của cuốn sách chính thức

Những gì đang xảy ra ở đây?

  • $ curl -sS //getcomposer.org/installer | php
    $ sudo mv composer.phar /usr/local/bin/composer
    3. Đây là một. Nó là điểm vào duy nhất của ứng dụng và nó đáp ứng tất cả các yêu cầu của người dùng;
  • $ curl -sS //getcomposer.org/installer | php
    $ sudo mv composer.phar /usr/local/bin/composer
    4. Đây là đường dẫn ảo đến tài nguyên mà người dùng muốn truy cập

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 [

$ curl -sS //getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
4] tới tài nguyên được liên kết với nó [trang HTML
$ curl -sS //getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
6]

Symfony đị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

$ curl -sS //getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
7

$ composer create-project symfony/framework-standard-edition myproject/ '~2.3'
0
$ composer create-project symfony/framework-standard-edition myproject/ '~2.3'
1

Thao tác này sẽ nhập tệp

$ curl -sS //getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
8 nằm bên trong AcmeDemoBundle

$ composer create-project symfony/framework-standard-edition myproject/ '~2.3'
2_______3_______3

Ba 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 "

$ curl -sS //getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
9" [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
1
2
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ể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
2
1 hoặc
1
2
2] để quản lý các thông báo HTTP này, Symfony sử dụng các đối tượng. và. 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

$ composer create-project symfony/framework-standard-edition myproject/ '~2.3'
4_______3_______5

Symfony chọn bộ điều khiển dựa trên giá trị

1
2
3 từ cấu hình định tuyến.
1
2
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
1
2
5 từ lớp
1
2
6

$ composer create-project symfony/framework-standard-edition myproject/ '~2.3'
6
$ composer create-project symfony/framework-standard-edition myproject/ '~2.3'
7

Mẹo

Bạn có thể đã sử dụng tên lớp và phương thức đầy đủ -

1
2
7 - cho giá trị
1
2
3. Nhưng sử dụng tên logic ngắn hơn và cho phép linh hoạt hơn

Lớp

1
2
9 mở rộng lớp
$ cd myproject/
$ php app/check.php
0 tích hợp, cung cấp các phương thức phím tắt hữu ích, giống như phương thức tải và hiển thị mẫu [
$ cd myproject/
$ php app/check.php
1]. Giá trị được trả về là một đối tượng
$ cd myproject/
$ php app/check.php
2 được điền với nội dung được hiển thị. Vì vậy, nếu có nhu cầu,
$ cd myproject/
$ php app/check.php
2 có thể được chỉnh sửa trước khi gửi tới trình duyệt

$ composer create-project symfony/framework-standard-edition myproject/ '~2.3'
8
$ composer create-project symfony/framework-standard-edition myproject/ '~2.3'
9

Bấ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

$ cd myproject/
$ php app/check.php
2 sẽ được gửi lại cho người dùng. Đối tượng
$ cd myproject/
$ php app/check.php
2 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 đề
$ cd myproject/
$ php app/check.php
6 của
$ cd myproject/
$ php app/check.php
7

Tên mẫu,

$ cd myproject/
$ php app/check.php
1, là tên lô-gic của mẫu và nó tham chiếu đến tệp
$ cd myproject/
$ php app/check.php
9 bên trong AcmeDemoBundle [đặt tại
1
0]. Phần 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

1
1

$ composer create-project symfony/framework-standard-edition myproject/ '~2.3'
0
1
2
1

Tên logic của tệp chứa các tuyến đường

1
1 là
1
3 và đề cập đến tệp
1
4. 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
2
2_______4_______3

Chú thích

1
5 tạo một tuyến đường mới khớp với đường dẫn
1
6 với phương thức
1
7. Bất kỳ chuỗi nào được đặt trong dấu ngoặc nhọn, như
1
8, đượ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

$ cd myproject/
$ php app/check.php
2 như trước đây, nó chỉ trả về một mảng các tham số. Chú thích
$ php app/console server:run
0 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
$ php app/console server:run
1 được hiển thị [đặt tại
$ php app/console server:run
2]

Bộ điều khiển hiển thị mẫu

$ php app/console server:run
2 [hoặc
$ php app/console server:run
1 nếu bạn sử dụng tên logic]

1
2
4_______4_______5

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ạn có thể đã tự hỏi tại sao từ này được sử dụng trong nhiều tên mà 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

Bâ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

$ php app/console server:run
5

An đạ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.

$ php app/console server:run
6 [phù hợp khi phát triển ứng dụng cục bộ] và
$ php app/console server:run
5 [đượ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

$ php app/console server:run
8 và ghi đè lên tệp cấu hình cụ thể cho từng môi trường nếu cần

$ composer create-project symfony/framework-standard-edition myproject/ '~2.3'
8
1
2
7

Trong ví dụ này, môi trường

$ php app/console server:run
6 tải tệp cấu hình
1
0, tệp này tự nhập tệp chung
$ php app/console server:run
8 và sau đó sửa đổi tệp đó bằng cách bật thanh công cụ gỡ lỗi web

Khi bạn truy cập tệp

$ curl -sS //getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
3 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
$ php app/console server:run
6. Để truy cập ứng dụng của bạn trong môi trường
$ php app/console server:run
5, thay vào đó hãy truy cập tệp
1
5

Các tuyến demo trong ứng dụng của chúng tôi chỉ khả dụng trong môi trường

$ php app/console server:run
6. Do đó, nếu bạn cố truy cập vào URL
1
7, bạn sẽ gặp lỗi 404

Mẹo

Nếu thay vì sử dụng máy chủ web tích hợp sẵn của PHP, bạn sử dụng Apache đã bật

1
8 và tận dụng tệp
1
9 mà Symfony cung cấp trong
//localhost:8000/app_dev.php/demo/hello/Fabien
0, bạn thậm chí có thể bỏ qua phần
1
5 của URL. Mặc định
1
9 trỏ tất cả các yêu cầu tới bộ điều khiển phía trước
1
5

1
1
2
9

Để biết thêm chi tiết về môi trường, hãy xem bài viết ""

Xin 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"

Chủ Đề