<commit_before># Changelog

All notable changes to this project will be documented in this file, in reverse chronological order by release.

## 1.0.0rc3 - TBD

Third release candidate.

### Added

- [#185](https://github.com/zendframework/zend-expressive/pull/185)
  Support casting zend-view models to arrays
- [#192](https://github.com/zendframework/zend-expressive/pull/192) adds support
  for specifying arrays of middleware both when routing and when creating
  pipeline middleware. This feature is opt-in and backwards compatible; simply
  specify an array value that does not resolve as a callable. Values in the
  array **must** be callables, service names resolving to callable middleware,
  or fully qualified class names that can be instantiated without arguments, and
  which result in invokable middleware.
- [#200](https://github.com/zendframework/zend-expressive/pull/200) adds a new
  interface, `Zend\Expressive\Router\RouteResultObserverInterface`.
  `Zend\Expressive\Application` now also defines two methods,
  `attachRouteResultObserver()` and `detachRouteResultObserver()`, which accept
  instances of the interface. During `routeMiddleware()`, all observers are
  updated immediately following the call to `RouterInterface::match()` with the
  `RouteResult` instance. This feature enables the ability to notify objects of
  the calculated `RouteResult` without needing to inject middleware into the
  system.

### Deprecated

- Nothing.

### Removed

- Nothing.

### Fixed

- [#187](https://github.com/zendframework/zend-expressive/pull/187)
  Inject the route result as an attribute
- [#197](https://github.com/zendframework/zend-expressive/pull/197) updates the
  `Zend\Expressive\Container\ApplicationFactory` to raise exceptions in cases
  where received configuration is unusable, instead of silently ignoring it.
  This is a small backwards compatibility break, but is done to eliminate
  difficult to identify issues due to bad configuration.
<commit_msg>Added CHANGELOG for #81<commit_after># Changelog

All notable changes to this project will be documented in this file, in reverse chronological order by release.

## 1.0.0rc3 - TBD

Third release candidate.

### Added

- [#185](https://github.com/zendframework/zend-expressive/pull/185)
  Support casting zend-view models to arrays
- [#192](https://github.com/zendframework/zend-expressive/pull/192) adds support
  for specifying arrays of middleware both when routing and when creating
  pipeline middleware. This feature is opt-in and backwards compatible; simply
  specify an array value that does not resolve as a callable. Values in the
  array **must** be callables, service names resolving to callable middleware,
  or fully qualified class names that can be instantiated without arguments, and
  which result in invokable middleware.
- [#200](https://github.com/zendframework/zend-expressive/pull/200) adds a new
  interface, `Zend\Expressive\Router\RouteResultObserverInterface`.
  `Zend\Expressive\Application` now also defines two methods,
  `attachRouteResultObserver()` and `detachRouteResultObserver()`, which accept
  instances of the interface. During `routeMiddleware()`, all observers are
  updated immediately following the call to `RouterInterface::match()` with the
  `RouteResult` instance. This feature enables the ability to notify objects of
  the calculated `RouteResult` without needing to inject middleware into the
  system.
- [#81](https://github.com/zendframework/zend-expressive/pull/81) adds a
  cookbook entry for creating 404 handlers.

### Deprecated

- Nothing.

### Removed

- Nothing.

### Fixed

- [#187](https://github.com/zendframework/zend-expressive/pull/187)
  Inject the route result as an attribute
- [#197](https://github.com/zendframework/zend-expressive/pull/197) updates the
  `Zend\Expressive\Container\ApplicationFactory` to raise exceptions in cases
  where received configuration is unusable, instead of silently ignoring it.
  This is a small backwards compatibility break, but is done to eliminate
  difficult to identify issues due to bad configuration.

{'fraction_non_alphanumeric': 0.08420795704173786, 'fraction_numerical': 0.018794239687576274, 'mean_word_length': 4.739495798319328, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 11, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7094905', 'n_tokens_mistral': 1159, 'n_tokens_neox': 1084, 'n_words': 426}