Skip to content

Latest commit

 

History

History
72 lines (51 loc) · 2 KB

File metadata and controls

72 lines (51 loc) · 2 KB

Lifecycle Events

This package defines HTTP lifecycle event contracts and immutable event value objects.

Implemented Contracts

  • LiquidRazor\HttpContracts\Include\Event\HttpLifecycleEventInterface
  • LiquidRazor\HttpContracts\Include\Event\HttpRequestReceivedEventInterface
  • LiquidRazor\HttpContracts\Include\Event\HttpRequestPreparedEventInterface
  • LiquidRazor\HttpContracts\Include\Event\HttpRequestDtoResolvedEventInterface
  • LiquidRazor\HttpContracts\Include\Event\HttpResponseDtoResolvedEventInterface
  • LiquidRazor\HttpContracts\Include\Event\HttpResponsePreparedEventInterface
  • LiquidRazor\HttpContracts\Include\Event\HttpResponseFinalizedEventInterface

Implemented Value Objects

  • LiquidRazor\HttpContracts\Lib\Event\HttpRequestReceivedEvent
  • LiquidRazor\HttpContracts\Lib\Event\HttpRequestPreparedEvent
  • LiquidRazor\HttpContracts\Lib\Event\HttpRequestDtoResolvedEvent
  • LiquidRazor\HttpContracts\Lib\Event\HttpResponseDtoResolvedEvent
  • LiquidRazor\HttpContracts\Lib\Event\HttpResponsePreparedEvent
  • LiquidRazor\HttpContracts\Lib\Event\HttpResponseFinalizedEvent

Event Payload

Each lifecycle event carries:

HttpExchangeInterface

This package uses HttpExchangeInterface for lifecycle consistency across all implemented event types.

Implemented Event Stages

HttpRequestReceivedEvent
HttpRequestPreparedEvent
HttpRequestDtoResolvedEvent
HttpResponseDtoResolvedEvent
HttpResponsePreparedEvent
HttpResponseFinalizedEvent

These events describe HTTP lifecycle state only.

What Is Not Included

This package does not provide:

  • an event dispatcher
  • a listener registry
  • event discovery
  • event priority rules

Example

<?php

declare(strict_types=1);

use LiquidRazor\HttpContracts\Lib\Event\HttpRequestReceivedEvent;
use LiquidRazor\HttpContracts\Lib\Request\HttpRequest;
use LiquidRazor\HttpContracts\Lib\Transport\HttpExchange;

$event = new HttpRequestReceivedEvent(
    new HttpExchange(new HttpRequest()),
);

$exchange = $event->exchange();