Điểm:0

RuntimeException: Không thể bắt đầu phiên vì các tiêu đề đã được gửi bởi

lá cờ cn

Mới sử dụng Drupal, tôi vừa tạo một mô-đun tùy chỉnh mới trong Drupal 9 để xem nó hoạt động như thế nào. Tôi đang thử kiểm tra với một đoạn mã tối thiểu. Tôi vừa kích hoạt mô-đun này và gặp lỗi này, bây giờ tôi không thể mở bất kỳ thứ gì và gặp lỗi này trên mọi trang, không có gì xảy ra ngay cả khi tôi thay đổi bất kỳ thứ gì trong mã. Đây là mã mô-đun tùy chỉnh của tôi.

check_hookcalls.info.yml

tên: hook cuộc gọi kiểm tra
mô tả: mô-đun để kiểm tra móc
core_version_requirement: ^8 || ^9
loại: mô-đun

check_hookcalls.module

<?php

function check_hookcalls_node_presave() {
  die;
}

?>

Lỗi tôi nhận được là lỗi sau.

[13-Jul-2021 15:34:49 Châu Âu/Berlin] RuntimeException: Không thể bắt đầu phiên vì các tiêu đề đã được gửi bởi "C:\softwares\xampp\htdocs\d9_firstexperience\2\modules\check_hookcalls\check_hookcalls.module" ở dòng 10. trong C:\softwares\xampp\htdocs\d9_firstexperience\2\vendor\symfony\http-foundation\Session\Storage\NativeSessionStorage.php trên dòng 152

sonfd avatar
lá cờ in
Xóa thẻ php đóng
lá cờ cn
Có, tôi vừa xóa các thẻ và khởi động lại apache, nó bắt đầu hoạt động nhưng thật lạ. Bạn có thể đăng nó như một câu trả lời tôi sẽ chấp nhận.
apaderno avatar
lá cờ us
Các tiêu chuẩn mã hóa Drupal nói rằng không thêm chính xác thẻ đóng PHP để tránh sự cố đó.
lá cờ cn
Được rồi, cảm ơn bạn, tôi phải học các tiêu chuẩn.
apaderno avatar
lá cờ us
Hướng dẫn [Tiêu chuẩn viết mã](https://www.drupal.org/docs/develop/standards) và các hướng dẫn phụ của nó là bước khởi đầu.
Điểm:1
lá cờ in

theo Tiêu chuẩn mã hóa Drupal, nên bỏ qua thẻ php đóng.

Các Phần Thẻ mã PHP của các tiêu chuẩn mã hóa (cũng như câu trả lời stackoverflow này) đưa ra một cái nhìn tổng quan về lý do tại sao nên bỏ qua chúng nói chung:

  • Loại bỏ nó sẽ loại bỏ khả năng có khoảng trắng không mong muốn tại phần cuối của tệp có thể gây ra lỗi "tiêu đề đã được gửi", XHTML/XML vấn đề xác nhận, và các vấn đề khác.
  • Dấu phân cách đóng tại kết thúc của một tập tin là tùy chọn.
  • PHP.net tự loại bỏ việc đóng cửa dấu phân cách từ cuối tệp của nó (ví dụ: trả trước.inc), vậy cái này có thể được coi là một "thực hành tốt nhất."

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.