Laminas Diactoros v2.0.0 Release Notes

Release Date: 2018-09-27 // over 5 years ago
  • ➕ Added

    • zendframework/zend-diactoros#326 adds PSR-17 HTTP Message Factory implementations, including:

      • Laminas\Diactoros\RequestFactory
      • Laminas\Diactoros\ResponseFactory
      • Laminas\Diactoros\ServerRequestFactory
      • Laminas\Diactoros\StreamFactory
      • Laminas\Diactoros\UploadedFileFactory
      • Laminas\Diactoros\UriFactory

    These factories may be used to produce the associated instances; we encourage users to rely on the PSR-17 factory interfaces to allow exchanging PSR-7 implementations within their applications.

    • 📦 zendframework/zend-diactoros#328 adds a package-level exception interface, Laminas\Diactoros\Exception\ExceptionInterface, and several implementations for specific exceptions raised within the package. These include:

      • Laminas\Diactoros\Exception\DeserializationException (extends UnexpectedValueException)
      • Laminas\Diactoros\Exception\InvalidArgumentException (extends InvalidArgumentException)
      • Laminas\Diactoros\Exception\InvalidStreamPointerPositionException (extends RuntimeException)
      • Laminas\Diactoros\Exception\SerializationException (extends UnexpectedValueException)
      • Laminas\Diactoros\Exception\UnreadableStreamException (extends RuntimeException)
      • Laminas\Diactoros\Exception\UnrecognizedProtocolVersionException (extends UnexpectedValueException)
      • Laminas\Diactoros\Exception\UnrewindableStreamException (extends RuntimeException)
      • Laminas\Diactoros\Exception\UnseekableStreamException (extends RuntimeException)
      • Laminas\Diactoros\Exception\UntellableStreamException (extends RuntimeException)
      • Laminas\Diactoros\Exception\UnwritableStreamException (extends RuntimeException)
      • Laminas\Diactoros\Exception\UploadedFileAlreadyMovedException (extends RuntimeException)
      • Laminas\Diactoros\Exception\UploadedFileErrorException (extends RuntimeException)

    🔄 Changed

    • zendframework/zend-diactoros#329 adds return type hints and scalar parameter type hints wherever possible. The changes were done to help improve code quality, in part by reducing manual type checking. If you are extending any classes, you may need to update your signatures; check the signatures of the class(es) you are extending for changes.

    • zendframework/zend-diactoros#162 modifies Serializer\Request such that it now no longer raises an UnexpectedValueException via its toString() method when an unexpected HTTP method is encountered; this can be done safely, as the value can never be invalid due to other changes in the same patch.

    • zendframework/zend-diactoros#162 modifies RequestTrait such that it now invalidates non-string method arguments to either the constructor or withMethod(), raising an InvalidArgumentException for any that do not validate.

    🗄 Deprecated

    • Nothing.

    ✂ Removed

    • 🚚 zendframework/zend-diactoros#308 removes the following methods from the ServerRequestFactory class:

      • normalizeServer() (use Laminas\Diactoros\normalizeServer() instead)
      • marshalHeaders() (use Laminas\Diactoros\marshalHeadersFromSapi() instead)
      • marshalUriFromServer() (use Laminas\Diactoros\marshalUriFromSapi() instead)
      • marshalRequestUri() (use Uri::getPath() from the Uri instance returned by marshalUriFromSapi() instead)
      • marshalHostAndPortFromHeaders() (use Uri::getHost() and Uri::getPort() from the Uri instances returned by marshalUriFromSapi() instead)
      • stripQueryString() (use explode("?", $path, 2)[0] instead)
      • normalizeFiles() (use Laminas\Diactoros\normalizeUploadedFiles() instead)
    • 🚚 zendframework/zend-diactoros#295 removes Laminas\Diactoros\Server. You can use the RequestHandlerRunner class from laminas/laminas-httphandlerrunner to provide these capabilities instead.

    • 🚚 zendframework/zend-diactoros#295 removes Laminas\Diactoros\Response\EmitterInterface and the various emitter implementations. These can now be found in the package laminas/laminas-httphandlerrunner, which also provides a PSR-7-implementation agnostic way of using them.

    🛠 Fixed

    • Nothing.