# Changelog for `bramus/router`

## 1.next – ????.??.??

## 1.6.1 – 2021.11.19

- Fixed: Fix `trigger404()` to work without custom 404 handler _([#169](https://github.com/bramus/router/pull/169))_ _(@mjoris)_

## 1.6 – 2021.07.23

- Added: Ability to set multiple 404s, depending on the route prefix _(@uvulpos)_

## 1.5 – 2020.10.26

- Fixed: Correctly invoke static/non-static class methods _(@bramus)_
- Fixed: Fix PHP 5.3 support _(@cikal)_
- Fixed: Fix arguments in demo _(@khromov)_
- Fixed: Fix #72 _(@acicali)_
- Added: PHP 7.4 support _(@ShaneMcC)_
- Added: Ability to externally trigger a 404 _(@PlanetTheCloud)_

## 1.4.2 – 2019.02.27

- Fixed: Play nice with emoji in base paths ([ref](https://github.com/bramus/router/commit/8692190532db269882f83d27cea95d4f22a50da2#commitcomment-32492636), [ref](https://github.com/bramus/router/commit/492444d84fde7e54551ff0bf8ca79ff9292094da#commitcomment-32496820)) _(@bramus)_
- Added: Extra Tests _(@bramus)_

## 1.4.1 – 2019.02.26

- Fixed: Fix bug where Cyrillic charges and Emojis in placeholder were urlencoded (see [#80](https://github.com/bramus/router/issues/80#issuecomment-467154490)) _(@bramus)_
- Fixed: Make `bramus/router` play nice with situations where the entry script and entry URLs are not coupled (see [#82](https://github.com/bramus/router/issues/82#issuecomment-466956078)) _(@bramus)_
- Changed: Changed visibility of `getBasePath` and `getCurrentUri` to being `public` _(@bramus)_

## 1.4 – 2019.02.18

- Added: Support for Cyrillic chars and Emoji in placeholder values and placeholder names (see [#80](https://github.com/bramus/router/issues/80)) _(@bramus)_
- Added: `composer test` shorthand _(@bramus)_
- Added: Changelog _(@bramus)_
- Changed: Documentation Improvements _(@bramus)_

## 1.3.1 – 2017.12.22

- Added: Extra Tests _(@bramus)_
- Changed: Documentation Improvements _(@artyuum)_

## 1.3 – 2017.12.21

- Added: Support `Class@method` callbacks in `set404()` _(@bramus)_
- Changed: Refactored callback invocation _(@bramus)_
- Changed: Documentation Improvements _(@artyuum)_

## 1.2.1 – 2017.10.06

- Changed: Documentation Improvements _(@bramus)_

## 1.2 – 2017.10.06

- Added: Support route matching using _“placeholders”_ (e.g. curly braces) _(@ovflowd)_
- Added: Default Namespace Capability using `setNamespace()`, for use with `Class@Method` calls _(@ovflowd)_
- Added: Extra Tests _(@bramus)_
- Bugfix: Make sure callable are actually callable _(@ovflowd)_
- Demo: Added a multilang demo _(@bramus)_
- Changed: Documentation Improvements _(@lai0n)_

## 1.1 – 2016.05.26

- Added: Return `true` if a route was handled, `false` otherwise _(@tleb)_
- Added: `getBasePath()` _(@ovflowd)_
- Added: Support `Class@Method` calls _(@ovflowd)_
- Changed: Tweak a few method signaturs so that they're protected _(@tleb)_
- Changed: Documentation Improvements _(@tleb)_

## 1.0 – 2015.02.04

- First 1.x release

## _(Unversioned Releases)_ – 2013.04.08 - 2015.02.04

- Initial release with suppport for:
	- Static and Dynamic Route Handling
	- Shorthands: `get()`, `post()`, `put()`, `delete()`, and `options()`
	- Before Route Middlewares / Before Route Middlewares: `before()`
	- After Router Middlewares / Run Callback

- Added: Optional Route Patterns
- Added: Subrouting (mount callables onto a subroute/prefix)
- Added: `patch()` shorthand
- Added: Support for `X-HTTP-Method-Override` header
- Bugfix: Use the HTTP version as found in `['SERVER_PROTOCOL']`
- Bugfix: Nested Subpatterns / Multiple Matching _(@jbleuzen)_