canax/router

View on GitHub
REVISION.md

Summary

Maintainability
Test Coverage
Revision history
=================================

Notes for development v2.0.0*
---------------------------------

* Add route length (max, min) as a feature like type.
* Add forward to enable forwarding to another route handler, like MVC triads.
* (Use regexp to match route).



v2.1.0 (2020-05-19)
---------------------------------

* The controller method initialize() can return a response, useful to deny access to a particular controller.
* Upgrade to phpunit 8 (and rewrite some testcases).
* Add support to use handlers as a class implementing \__invoke.
* Add route handler support for isInvocableClass and handleAsInvocableClass (without support for taking arguments).
* Fix when mountpart d/ overlaps dev/.



v2.0.1 (2020-05-06)
---------------------------------

* Enhance error handling in config/di/router.php and allow that config/router.php is missing and configuration only handled by config/router.



v2.0.0 (2019-04-01)
---------------------------------

* Release 2.0, documentation is still to be done.



v2.0.0-beta.9 (2018-11-23)
---------------------------------

* Enable router to call [class, method] using specific path to control argument types.



v2.0.0-beta.8 (2018-11-22)
---------------------------------

* Add name of method, as first argument sent to the catchAll-methods.



v2.0.0-beta.7 (2018-11-19)
---------------------------------

* Add support for controller method catchAll by request method.



v2.0.0-beta.6 (2018-09-25)
---------------------------------

* Add support for app style controllers injecting app.



v2.0.0-beta.5 (2018-08-15)
---------------------------------

* Update Makefile.



v2.0.0-beta.4 (2018-08-15)
---------------------------------

* Change description in composer.json.



v2.0.0-beta.3 (2018-08-15)
---------------------------------

* Add get method for internal error messages.



v2.0.0-beta.2 (2018-08-15)
---------------------------------

* Improve support for when the controller accepts a request.
* Use detailed exception messages in handleInternal



v2.0.0-beta.1 (2018-08-15)
---------------------------------

* Rename route/ to router/.
* Rmove router/999_404.php, dealt by with the internal route.
* Add test/controller to mount a controller.



v2.0.0-alpha.14 (2018-08-14)
---------------------------------

* Add method to get type of route handler, Route::getHandlerType().



v2.0.0-alpha.13 (2018-08-14)
---------------------------------

* Improve error handling when route handler is not callable.



v2.0.0-alpha.12 (2018-08-14)
---------------------------------

* Remove the 404 route, use internal instead.



v2.0.0-alpha.11 (2018-08-13)
---------------------------------

* Integrate with Anax Flat.



v2.0.0-alpha.10 (2018-08-10)
---------------------------------

* Fix correct urls in route dev/index.



v2.0.0-alpha.9 (2018-08-10)
---------------------------------

* Development routes without requirement on anax/{page,view}.
* Unit testing of config/route/710_development.php.



v2.0.0-alpha.8 (2018-08-09)
---------------------------------

* Load routes from file, programming style.
* Enhance test suite.



v2.0.0-alpha.7 (2018-08-08)
---------------------------------

* Fix: Testroute test/500 generate correct exception.



v2.0.0-alpha.6 (2018-08-08)
---------------------------------

* Fix: Use correct interface for $di.
* Add controller/action as handler.
* Add sample routes.



v2.0.0-alpha.5 (2018-08-07)
---------------------------------

* Rewrote major parts of Router and Route.
* Move anax/di to require-dev.



v2.0.0-alpha.4 (2018-08-03)
---------------------------------

* Rewrote src/Route/Router for newer configuration files.



v2.0.0-alpha.3 (2018-08-03)
---------------------------------

* @deprecated src/Route/RouterInjectable and removed it.
* Removed older route files.
* Removed direct router dependency to anax/configure.



v2.0.0-alpha.3 (2018-08-03)
---------------------------------

* Fix phpunit.
* Use v2.0.0@alpha from anax/common to start work to remove it.



v2.0.0-alpha.2 (2018-08-01)
---------------------------------

* Set requirement of PHP 7.2 in composer.json.
* Mark anax/common as obsolete and prepare to remove it and traces of $app constructions.
* Move composer.json require anax/di to suggests, eventually try to remove dependency to real version.



v2.0.0-alpha.1 (2018-08-01)
---------------------------------

* Prepare to go through code and remove some waist and potentially breaking backward compatibility.



v1.1.0 (2018-03-16)
---------------------------------

* Update to require PHP 7.0 and over.
* Move to circlesi v2.
* Add support for including $app centered routes through 'include'.
* Remove composer.lock.
* Show 404 when no route returns true nor does exit.



v1.0.15 (2017-09-28)
---------------------------------

* A route handler returning a non empty value will be the last handler to be called.
* Enhance error handling when the route callback is misconfigured.
* Move exceptions to subnamespace and own directory.
* Add ConfigurationException when configuration is incorrect.



v1.0.14 (2017-09-26)
---------------------------------

* Router::configure now uses Configure2Trait and can read from directory and files and support "sort".



v1.0.13 (2017-09-14)
---------------------------------

* Router::configure shall return self.
* Minor edit in docblock in Router.



v1.0.12 (2017-08-15)
---------------------------------

* Removing getName() and replacing with getInfo().
* Adding member info to the Route.
* Adding module anax/di as required in composer.json.
* Loading routes from configuration file.



v1.0.11 (2017-08-10)
---------------------------------

* Adding class Router as a DI enabled version.
* Add getName() for Route.



v1.0.10 (2017-08-10)
---------------------------------

* Add comment in route file to make 404 last in sequence.



v1.0.9 (2017-08-03)
---------------------------------

* Adding config/ with some default routes.



v1.0.8 (2017-06-27)
---------------------------------

* Fix unittest passing.
* Fix Route::checkPartAsArgument missing type vvariable.



v1.0.7 (2017-06-27)
---------------------------------

* Add Route::getRequestMethod() to show information on request method for route.
* Load routes from configuration file.
* Made RouterInjectable injectable with $app.



v1.0.6 (2017-06-27)
---------------------------------

* Modify type of integer argument when validatet using digit.



v1.0.5 (2017-04-24)
---------------------------------

* Adding documentation and testcases for documentation.
* Adding method RouterInjectable::always() as a default routehandler matching any route and request method.
* Rearrange methods to improve readability.
* Add docblocks for properties.
* Add support for adding several path rules with one route->add().



v1.0.4 (2017-04-13)
---------------------------------

* Add support for path/** to match subpaths.
* Fix composer validate PHP version in require-dev.



v1.0.3 (2017-03-26)
---------------------------------

* Extending support for default routes to partly include "\*\*" and null, matching any route.
* Support adding request method as string separated by |



v1.0.2 (2017-03-26)
---------------------------------

* Allow matching of several routehandlers having the same path.
* Add testcases.



v1.0.1 (2017-03-13)
---------------------------------

* Add arguments as part of route.
* Arguments can be validated as alpha, alphanum, digit, hex.
* Support different routes per request methods.



v1.0.0 (2017-03-07)
---------------------------------

* Making standalone without `$di`.
* Enhancing unittest.
* Adding exceptions.
* Cleanup makefile.
* Extracted from anax to be its own module.