Removing "startSession()" from the main Klein class
it was left in after moving it by accident
Swapping the "substr()" method for the "strpos()" method
of checking if a string starts with another for performance reasons:
- http://maettig.com/code/php/php-performance-benchmarks.php
- https://github.com/chriso/klein.php/pull/92#discussion_r4196057
Haha, #oopsbigtime. Fixing casts so they actually work
Increasing privacy on "compileRoute()" and "error()"
Removing service calls through Klein.
It does feel a little dirty
Moving the "file()" and "json()" methods BACK to the Response class,
where they really do belong
Moving "query()" back to the Request class
Moving tests around in correspondence with the
ServiceProvider class method moving
Removing duplicate handling from "onError()"
New Exception class for Locked Responses
New method and implementations for making sure
that a response is unlocked before modifying it
Making sure that automated response manipulation doesn't cause
exceptions on a locked response object
Updated tests to reflect changes
New Exception class for when a response has already
been sent
Now throwing an exception when attempting to send
a response that's already been sent
Also, a new method for checking if a response has already been sent or not
Making sure we don't resend our response if its already been sent
New "pathname()" method for getting the URI without the query string
New tests for new method
Merge branch 'kleinV2-chriso-review' into klein-v2