Nếu bạn muốn sửa đổi các tiêu đề của phản hồi, bạn cần sử dụng Trình đăng ký sự kiện. Symphony không có hệ thống hook mà thay vào đó sử dụng hệ thống phát / sự kiện. Vì Symphony điều khiển chu kỳ yêu cầu / phản hồi, về cơ bản bạn cần tích hợp với Symphony để thực hiện điều này.
Bạn có thể xem \Drupal\Core\EventSubscriber\FinishResponseSubscriberđể xem làm thế nào được thực hiện, ý chính của nó là:
/**
* Add custom headers.
*/
class HeaderResponseSubscriber implements EventSubscriberInterface {
public function onRespond(FilterResponseEvent $event) {
$response = $event->getResponse();
$response->headers->set('Some-Header', 'some value');
}
public static function getSubscribedEvents() {
$events[KernelEvents::RESPONSE][] = array('onRespond');
return $events;
}
}
Lưu ý trong đoạn mã trên, tất cả các câu lệnh sử dụng đã được loại trừ, bạn cũng cần phải đăng ký lớp của mình dưới dạng dịch vụ event_subscacker, điều này được thực hiện trong module_name.services.ymltệp mô-đun của bạn như sau:
services:
name_of_service:
class: Drupal\Full\Namespaced\Path\To\Class
tags:
- { name: event_subscriber }
Bạn có thể thêm các đối số (các dịch vụ khác) mà lớp của bạn sẽ phụ thuộc vào tệp dịch vụ như bình thường.