mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-06-17 08:47:52 +00:00
Generated
+315
-313
@@ -1,14 +1,25 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
|
<component name="BookmarkManager">
|
||||||
|
<bookmark url="file://$PROJECT_DIR$/src/Pecee/Http/Input/InputHandler.php" line="221" />
|
||||||
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="a7058529-bdc4-40b4-a50d-c50564dc83f0" name="Default" comment="">
|
<list default="true" id="a7058529-bdc4-40b4-a50d-c50564dc83f0" name="Default" comment="">
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/Pecee/SimpleRouter/Handlers/EventHandler.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Pecee/SimpleRouter/Handlers/EventHandler.php" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/helpers.php" beforeDir="false" afterPath="$PROJECT_DIR$/helpers.php" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/ILoadableRoute.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/ILoadableRoute.php" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/Pecee/Http/Input/InputHandler.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Pecee/Http/Input/InputHandler.php" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Pecee/Http/Middleware/BaseCsrfVerifier.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Pecee/Http/Middleware/BaseCsrfVerifier.php" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Pecee/Http/Request.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Pecee/Http/Request.php" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Pecee/Http/Url.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Pecee/Http/Url.php" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/LoadableRoute.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/LoadableRoute.php" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/LoadableRoute.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/LoadableRoute.php" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/Route.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/Route.php" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteController.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteController.php" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteGroup.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteGroup.php" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteResource.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteResource.php" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/Pecee/SimpleRouter/Router.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Pecee/SimpleRouter/Router.php" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/Pecee/SimpleRouter/Router.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Pecee/SimpleRouter/Router.php" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/tests/Pecee/SimpleRouter/EventHandlerTest.php" beforeDir="false" afterPath="$PROJECT_DIR$/tests/Pecee/SimpleRouter/EventHandlerTest.php" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/Pecee/SimpleRouter/SimpleRouter.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Pecee/SimpleRouter/SimpleRouter.php" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/tests/Pecee/SimpleRouter/InputHandlerTest.php" beforeDir="false" afterPath="$PROJECT_DIR$/tests/Pecee/SimpleRouter/InputHandlerTest.php" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||||
<option name="TRACKING_ENABLED" value="true" />
|
<option name="TRACKING_ENABLED" value="true" />
|
||||||
@@ -20,25 +31,16 @@
|
|||||||
<component name="ComposerSettings" doNotAsk="true" synchronizationState="SYNCHRONIZE">
|
<component name="ComposerSettings" doNotAsk="true" synchronizationState="SYNCHRONIZE">
|
||||||
<pharConfigPath>$PROJECT_DIR$/composer.json</pharConfigPath>
|
<pharConfigPath>$PROJECT_DIR$/composer.json</pharConfigPath>
|
||||||
</component>
|
</component>
|
||||||
|
<component name="FavoritesManager">
|
||||||
|
<favorites_list name="simple-php-router" />
|
||||||
|
</component>
|
||||||
<component name="FileEditorManager">
|
<component name="FileEditorManager">
|
||||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="375">
|
<leaf SIDE_TABS_SIZE_LIMIT_KEY="375">
|
||||||
<file leaf-file-name="README.md" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/README.md">
|
|
||||||
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
|
||||||
<state split_layout="SPLIT">
|
|
||||||
<first_editor relative-caret-position="230">
|
|
||||||
<caret line="1298" column="39" selection-start-line="1298" selection-start-column="39" selection-end-line="1298" selection-end-column="39" />
|
|
||||||
</first_editor>
|
|
||||||
<second_editor />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="LoadableRoute.php" pinned="false" current-in-tab="false">
|
<file leaf-file-name="LoadableRoute.php" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/LoadableRoute.php">
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/LoadableRoute.php">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="146">
|
<state relative-caret-position="20">
|
||||||
<caret line="92" column="7" lean-forward="true" selection-start-line="92" selection-start-column="7" selection-end-line="92" selection-end-column="7" />
|
<caret line="71" column="33" selection-start-line="71" selection-start-column="27" selection-end-line="71" selection-end-column="33" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#44#82#0#PHP" expanded="true" />
|
<element signature="e#44#82#0#PHP" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
@@ -49,26 +51,17 @@
|
|||||||
<file leaf-file-name="RouteController.php" pinned="false" current-in-tab="false">
|
<file leaf-file-name="RouteController.php" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteController.php">
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteController.php">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="213">
|
<state relative-caret-position="20">
|
||||||
<caret line="15" column="13" selection-start-line="15" selection-start-column="13" selection-end-line="15" selection-end-column="13" />
|
<caret line="15" column="22" lean-forward="true" selection-start-line="15" selection-start-column="22" selection-end-line="15" selection-end-column="22" />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="RouteResource.php" pinned="false" current-in-tab="false">
|
<file leaf-file-name="IRoute.php" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteResource.php">
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/IRoute.php">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="213">
|
<state relative-caret-position="224">
|
||||||
<caret line="33" column="13" selection-start-line="33" selection-start-column="13" selection-end-line="33" selection-end-column="13" />
|
<caret line="39" column="10" selection-start-line="39" selection-start-column="10" selection-end-line="39" selection-end-column="10" />
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="RouteUrl.php" pinned="false" current-in-tab="true">
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteUrl.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="300">
|
|
||||||
<caret line="21" column="50" lean-forward="true" selection-start-line="21" selection-start-column="50" selection-end-line="21" selection-end-column="50" />
|
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
@@ -76,8 +69,8 @@
|
|||||||
<file leaf-file-name="ILoadableRoute.php" pinned="false" current-in-tab="false">
|
<file leaf-file-name="ILoadableRoute.php" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/ILoadableRoute.php">
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/ILoadableRoute.php">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="362">
|
<state relative-caret-position="204">
|
||||||
<caret line="42" column="18" selection-start-line="42" selection-start-column="18" selection-end-line="42" selection-end-column="18" />
|
<caret line="32" column="36" selection-start-line="32" selection-start-column="30" selection-end-line="32" selection-end-column="36" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#44#67#0#PHP" expanded="true" />
|
<element signature="e#44#67#0#PHP" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
@@ -85,11 +78,35 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
|
<file leaf-file-name="RouteUrl.php" pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteUrl.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="200">
|
||||||
|
<caret line="10" column="22" lean-forward="true" selection-start-line="10" selection-start-column="22" selection-end-line="10" selection-end-column="22" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="InputHandler.php" pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/Pecee/Http/Input/InputHandler.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="425">
|
||||||
|
<caret line="280" column="38" selection-start-line="280" selection-start-column="38" selection-end-line="280" selection-end-column="38" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#36#82#0#PHP" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
<file leaf-file-name="Route.php" pinned="false" current-in-tab="false">
|
<file leaf-file-name="Route.php" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/Route.php">
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/Route.php">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="211">
|
<state relative-caret-position="162">
|
||||||
<caret line="239" column="10" selection-start-line="239" selection-start-column="10" selection-end-line="239" selection-end-column="10" />
|
<caret line="498" column="61" selection-start-line="498" selection-start-column="61" selection-end-line="498" selection-end-column="61" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#44#82#0#PHP" expanded="true" />
|
||||||
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
@@ -97,8 +114,8 @@
|
|||||||
<file leaf-file-name="Router.php" pinned="false" current-in-tab="false">
|
<file leaf-file-name="Router.php" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Router.php">
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Router.php">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="245">
|
<state relative-caret-position="220">
|
||||||
<caret line="156" selection-start-line="156" selection-end-line="156" />
|
<caret line="517" lean-forward="true" selection-start-line="517" selection-end-line="517" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#38#84#0#PHP" expanded="true" />
|
<element signature="e#38#84#0#PHP" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
@@ -106,26 +123,23 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="EventHandler.php" pinned="false" current-in-tab="false">
|
<file leaf-file-name="SimpleRouter.php" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Handlers/EventHandler.php">
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/SimpleRouter.php">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="-742">
|
<state relative-caret-position="505">
|
||||||
<caret line="28" selection-start-line="28" selection-end-line="28" />
|
<caret line="63" selection-start-line="63" selection-end-line="63" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#47#90#0#PHP" expanded="true" />
|
<element signature="e#302#319#0#PHP" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="EventHandlerTest.php" pinned="false" current-in-tab="false">
|
<file leaf-file-name="helpers.php" pinned="false" current-in-tab="true">
|
||||||
<entry file="file://$PROJECT_DIR$/tests/Pecee/SimpleRouter/EventHandlerTest.php">
|
<entry file="file://$PROJECT_DIR$/helpers.php">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="278">
|
<state relative-caret-position="180">
|
||||||
<caret line="88" column="13" lean-forward="true" selection-start-line="88" selection-start-column="13" selection-end-line="88" selection-end-column="13" />
|
<caret line="51" column="59" selection-start-line="51" selection-start-column="59" selection-end-line="51" selection-end-column="59" />
|
||||||
<folding>
|
|
||||||
<element signature="e#249#292#0#PHP" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
@@ -134,36 +148,36 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="FindInProjectRecents">
|
<component name="FindInProjectRecents">
|
||||||
<findStrings>
|
<findStrings>
|
||||||
<find>$this->r</find>
|
|
||||||
<find>getInput</find>
|
|
||||||
<find>input()->get</find>
|
|
||||||
<find>getObject</find>
|
|
||||||
<find>helpers</find>
|
|
||||||
<find>group</find>
|
|
||||||
<find>addDefault</find>
|
|
||||||
<find>handleExc</find>
|
|
||||||
<find>function group</find>
|
|
||||||
<find>function parti</find>
|
|
||||||
<find>__toString</find>
|
|
||||||
<find>getValue</find>
|
|
||||||
<find>getError</find>
|
|
||||||
<find>(int)</find>
|
|
||||||
<find>setSize</find>
|
|
||||||
<find>helpers.php</find>
|
|
||||||
<find>getName</find>
|
|
||||||
<find>url(</find>
|
|
||||||
<find>url()</find>
|
|
||||||
<find>: void</find>
|
|
||||||
<find>void</find>
|
<find>void</find>
|
||||||
<find>set</find>
|
<find>set</find>
|
||||||
<find>hasParam</find>
|
<find>hasParam</find>
|
||||||
<find>csrf_token</find>
|
<find>csrf_token</find>
|
||||||
<find>static function start</find>
|
<find>static function start</find>
|
||||||
<find>fireEvents(</find>
|
<find>fireEvents(</find>
|
||||||
<find>EVENT_LOAD</find>
|
|
||||||
<find>->setUrl</find>
|
<find>->setUrl</find>
|
||||||
<find>setUrl</find>
|
<find>EVENT_LOAD</find>
|
||||||
<find>addRoute</find>
|
<find>addRoute</find>
|
||||||
|
<find>$this->isPro</find>
|
||||||
|
<find>7.2</find>
|
||||||
|
<find>options</find>
|
||||||
|
<find>parent::set</find>
|
||||||
|
<find>parseParameters</find>
|
||||||
|
<find>stripos</find>
|
||||||
|
<find>setPrefix</find>
|
||||||
|
<find>var_dum</find>
|
||||||
|
<find>parse</find>
|
||||||
|
<find>getParams</find>
|
||||||
|
<find>setQuery</find>
|
||||||
|
<find>contains</find>
|
||||||
|
<find>matchRoute</find>
|
||||||
|
<find>->getValue</find>
|
||||||
|
<find>->find</find>
|
||||||
|
<find>function find</find>
|
||||||
|
<find>Req</find>
|
||||||
|
<find>value(</find>
|
||||||
|
<find>file(</find>
|
||||||
|
<find>setUrl</find>
|
||||||
|
<find>TODO</find>
|
||||||
</findStrings>
|
</findStrings>
|
||||||
<dirStrings>
|
<dirStrings>
|
||||||
<dir>D:\Workspace\simple-php-router\src\Pecee\SimpleRouter\Route</dir>
|
<dir>D:\Workspace\simple-php-router\src\Pecee\SimpleRouter\Route</dir>
|
||||||
@@ -172,11 +186,11 @@
|
|||||||
<dir>D:\Workspace\simple-php-router</dir>
|
<dir>D:\Workspace\simple-php-router</dir>
|
||||||
<dir>E:\Workspace\simple-php-router\tests</dir>
|
<dir>E:\Workspace\simple-php-router\tests</dir>
|
||||||
<dir>E:\Workspace\simple-php-router\src\Pecee</dir>
|
<dir>E:\Workspace\simple-php-router\src\Pecee</dir>
|
||||||
<dir>E:\Workspace\simple-php-router</dir>
|
|
||||||
<dir>E:\Workspace\simple-php-router\src\Pecee\SimpleRouter</dir>
|
|
||||||
<dir>E:\Workspace\simple-php-router\tests\Pecee\SimpleRouter</dir>
|
<dir>E:\Workspace\simple-php-router\tests\Pecee\SimpleRouter</dir>
|
||||||
<dir>E:\Workspace\simple-php-router\src</dir>
|
|
||||||
<dir>E:\Workspace\simple-php-router\src\Pecee\SimpleRouter\Route</dir>
|
<dir>E:\Workspace\simple-php-router\src\Pecee\SimpleRouter\Route</dir>
|
||||||
|
<dir>E:\Workspace\simple-php-router\src\Pecee\SimpleRouter</dir>
|
||||||
|
<dir>E:\Workspace\simple-php-router\src</dir>
|
||||||
|
<dir>E:\Workspace\simple-php-router</dir>
|
||||||
</dirStrings>
|
</dirStrings>
|
||||||
</component>
|
</component>
|
||||||
<component name="Git.Settings">
|
<component name="Git.Settings">
|
||||||
@@ -188,22 +202,15 @@
|
|||||||
<option value="$PROJECT_DIR$/tests/Pecee/SimpleRouter/Dummy/Handler/ExceptionHandlerFirst.php" />
|
<option value="$PROJECT_DIR$/tests/Pecee/SimpleRouter/Dummy/Handler/ExceptionHandlerFirst.php" />
|
||||||
<option value="$PROJECT_DIR$/tests/Pecee/SimpleRouter/Dummy/Handler/ExceptionHandlerSecond.php" />
|
<option value="$PROJECT_DIR$/tests/Pecee/SimpleRouter/Dummy/Handler/ExceptionHandlerSecond.php" />
|
||||||
<option value="$PROJECT_DIR$/tests/TestRouter.php" />
|
<option value="$PROJECT_DIR$/tests/TestRouter.php" />
|
||||||
<option value="$PROJECT_DIR$/tests/Pecee/SimpleRouter/RouterUrlTest.php" />
|
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Event/IEventArgument.php" />
|
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Event/IEventArgument.php" />
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/IRouterBootManager.php" />
|
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/IRouterBootManager.php" />
|
||||||
<option value="$PROJECT_DIR$/tests/Pecee/SimpleRouter/Dummy/Security/SilentTokenProvider.php" />
|
<option value="$PROJECT_DIR$/tests/Pecee/SimpleRouter/Dummy/Security/SilentTokenProvider.php" />
|
||||||
<option value="$PROJECT_DIR$/tests/Pecee/SimpleRouter/Dummy/Managers/TestBootManager.php" />
|
<option value="$PROJECT_DIR$/tests/Pecee/SimpleRouter/Dummy/Managers/TestBootManager.php" />
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/Http/Middleware/BaseCsrfVerifier.php" />
|
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/Http/Security/CookieTokenProvider.php" />
|
<option value="$PROJECT_DIR$/src/Pecee/Http/Security/CookieTokenProvider.php" />
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/Http/Security/ITokenProvider.php" />
|
<option value="$PROJECT_DIR$/src/Pecee/Http/Security/ITokenProvider.php" />
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/Http/Request.php" />
|
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/Http/Response.php" />
|
<option value="$PROJECT_DIR$/src/Pecee/Http/Response.php" />
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/IRoute.php" />
|
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/IRoute.php" />
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteController.php" />
|
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteGroup.php" />
|
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RoutePartialGroup.php" />
|
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RoutePartialGroup.php" />
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteResource.php" />
|
|
||||||
<option value="$PROJECT_DIR$/tests/Pecee/SimpleRouter/InputHandlerTest.php" />
|
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Handlers/IEventHandler.php" />
|
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Handlers/IEventHandler.php" />
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Handlers/DebugEventHandler.php" />
|
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Handlers/DebugEventHandler.php" />
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Event/EventArgument.php" />
|
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Event/EventArgument.php" />
|
||||||
@@ -224,18 +231,25 @@
|
|||||||
<option value="$PROJECT_DIR$/src/Pecee/Http/Input/IInputItem.php" />
|
<option value="$PROJECT_DIR$/src/Pecee/Http/Input/IInputItem.php" />
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/Http/Input/InputItem.php" />
|
<option value="$PROJECT_DIR$/src/Pecee/Http/Input/InputItem.php" />
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/Http/Input/InputFile.php" />
|
<option value="$PROJECT_DIR$/src/Pecee/Http/Input/InputFile.php" />
|
||||||
<option value="$PROJECT_DIR$/helpers.php" />
|
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/Route.php" />
|
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/SimpleRouter.php" />
|
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/Http/Url.php" />
|
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/Http/Input/InputHandler.php" />
|
|
||||||
<option value="$PROJECT_DIR$/README.md" />
|
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/ILoadableRoute.php" />
|
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/LoadableRoute.php" />
|
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Router.php" />
|
|
||||||
<option value="$PROJECT_DIR$/tests/Pecee/SimpleRouter/EventHandlerTest.php" />
|
<option value="$PROJECT_DIR$/tests/Pecee/SimpleRouter/EventHandlerTest.php" />
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Handlers/EventHandler.php" />
|
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Handlers/EventHandler.php" />
|
||||||
|
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteGroup.php" />
|
||||||
|
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteResource.php" />
|
||||||
|
<option value="$PROJECT_DIR$/src/Pecee/Http/Url.php" />
|
||||||
|
<option value="$PROJECT_DIR$/tests/Pecee/SimpleRouter/RouterUrlTest.php" />
|
||||||
|
<option value="$PROJECT_DIR$/src/Pecee/Http/Middleware/BaseCsrfVerifier.php" />
|
||||||
|
<option value="$PROJECT_DIR$/README.md" />
|
||||||
|
<option value="$PROJECT_DIR$/src/Pecee/Http/Request.php" />
|
||||||
|
<option value="$PROJECT_DIR$/tests/Pecee/SimpleRouter/InputHandlerTest.php" />
|
||||||
|
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/LoadableRoute.php" />
|
||||||
|
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteController.php" />
|
||||||
|
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/ILoadableRoute.php" />
|
||||||
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteUrl.php" />
|
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteUrl.php" />
|
||||||
|
<option value="$PROJECT_DIR$/src/Pecee/Http/Input/InputHandler.php" />
|
||||||
|
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/Route.php" />
|
||||||
|
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/Router.php" />
|
||||||
|
<option value="$PROJECT_DIR$/src/Pecee/SimpleRouter/SimpleRouter.php" />
|
||||||
|
<option value="$PROJECT_DIR$/helpers.php" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
@@ -378,19 +392,6 @@
|
|||||||
<item name="simple-php-router" type="2a2b976b:PhpTreeStructureProvider$1" />
|
<item name="simple-php-router" type="2a2b976b:PhpTreeStructureProvider$1" />
|
||||||
<item name="tests" type="2a2b976b:PhpTreeStructureProvider$1" />
|
<item name="tests" type="2a2b976b:PhpTreeStructureProvider$1" />
|
||||||
</path>
|
</path>
|
||||||
<path>
|
|
||||||
<item name="simple-php-router" type="b2602c69:ProjectViewProjectNode" />
|
|
||||||
<item name="simple-php-router" type="2a2b976b:PhpTreeStructureProvider$1" />
|
|
||||||
<item name="tests" type="2a2b976b:PhpTreeStructureProvider$1" />
|
|
||||||
<item name="Pecee" type="2a2b976b:PhpTreeStructureProvider$1" />
|
|
||||||
</path>
|
|
||||||
<path>
|
|
||||||
<item name="simple-php-router" type="b2602c69:ProjectViewProjectNode" />
|
|
||||||
<item name="simple-php-router" type="2a2b976b:PhpTreeStructureProvider$1" />
|
|
||||||
<item name="tests" type="2a2b976b:PhpTreeStructureProvider$1" />
|
|
||||||
<item name="Pecee" type="2a2b976b:PhpTreeStructureProvider$1" />
|
|
||||||
<item name="SimpleRouter" type="2a2b976b:PhpTreeStructureProvider$1" />
|
|
||||||
</path>
|
|
||||||
</expand>
|
</expand>
|
||||||
<select />
|
<select />
|
||||||
</subPane>
|
</subPane>
|
||||||
@@ -437,7 +438,7 @@
|
|||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
<component name="RunManager" selected="PHPUnit.EventHandlerTest">
|
<component name="RunManager" selected="PHPUnit.phpunit.xml">
|
||||||
<configuration name="EventHandlerTest" type="PHPUnitRunConfigurationType" factoryName="PHPUnit" temporary="true">
|
<configuration name="EventHandlerTest" type="PHPUnitRunConfigurationType" factoryName="PHPUnit" temporary="true">
|
||||||
<TestRunner class="EventHandlerTest" file="$PROJECT_DIR$/tests/Pecee/SimpleRouter/EventHandlerTest.php" scope="Class" />
|
<TestRunner class="EventHandlerTest" file="$PROJECT_DIR$/tests/Pecee/SimpleRouter/EventHandlerTest.php" scope="Class" />
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -460,8 +461,8 @@
|
|||||||
</list>
|
</list>
|
||||||
<recent_temporary>
|
<recent_temporary>
|
||||||
<list>
|
<list>
|
||||||
<item itemvalue="PHPUnit.EventHandlerTest" />
|
|
||||||
<item itemvalue="PHPUnit.phpunit.xml" />
|
<item itemvalue="PHPUnit.phpunit.xml" />
|
||||||
|
<item itemvalue="PHPUnit.EventHandlerTest" />
|
||||||
<item itemvalue="PHPUnit.tests" />
|
<item itemvalue="PHPUnit.tests" />
|
||||||
<item itemvalue="PHP Script.debug.php" />
|
<item itemvalue="PHP Script.debug.php" />
|
||||||
<item itemvalue="PHPUnit.RouterUrlTest" />
|
<item itemvalue="PHPUnit.RouterUrlTest" />
|
||||||
@@ -539,44 +540,45 @@
|
|||||||
<workItem from="1522507670882" duration="309000" />
|
<workItem from="1522507670882" duration="309000" />
|
||||||
<workItem from="1522508007514" duration="2427000" />
|
<workItem from="1522508007514" duration="2427000" />
|
||||||
<workItem from="1522530661439" duration="3502000" />
|
<workItem from="1522530661439" duration="3502000" />
|
||||||
<workItem from="1522668357317" duration="2371000" />
|
<workItem from="1522668357317" duration="4847000" />
|
||||||
|
<workItem from="1523014652739" duration="11926000" />
|
||||||
</task>
|
</task>
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
<component name="TestHistory">
|
<component name="TestHistory">
|
||||||
<history-entry file="phpunit_xml - 2018.04.02 at 13h 40m 00s.xml">
|
<history-entry file="phpunit_xml - 2018.04.06 at 16h 11m 34s.xml">
|
||||||
<configuration name="phpunit.xml" configurationId="PHPUnitRunConfigurationType" />
|
<configuration name="phpunit.xml" configurationId="PHPUnitRunConfigurationType" />
|
||||||
</history-entry>
|
</history-entry>
|
||||||
<history-entry file="phpunit_xml - 2018.04.02 at 13h 40m 14s.xml">
|
<history-entry file="phpunit_xml - 2018.04.06 at 16h 11m 56s.xml">
|
||||||
<configuration name="phpunit.xml" configurationId="PHPUnitRunConfigurationType" />
|
<configuration name="phpunit.xml" configurationId="PHPUnitRunConfigurationType" />
|
||||||
</history-entry>
|
</history-entry>
|
||||||
<history-entry file="phpunit_xml - 2018.04.02 at 13h 40m 37s.xml">
|
<history-entry file="phpunit_xml - 2018.04.06 at 16h 12m 06s.xml">
|
||||||
<configuration name="phpunit.xml" configurationId="PHPUnitRunConfigurationType" />
|
<configuration name="phpunit.xml" configurationId="PHPUnitRunConfigurationType" />
|
||||||
</history-entry>
|
</history-entry>
|
||||||
<history-entry file="phpunit_xml - 2018.04.02 at 13h 40m 42s.xml">
|
<history-entry file="phpunit_xml - 2018.04.06 at 16h 12m 15s.xml">
|
||||||
<configuration name="phpunit.xml" configurationId="PHPUnitRunConfigurationType" />
|
<configuration name="phpunit.xml" configurationId="PHPUnitRunConfigurationType" />
|
||||||
</history-entry>
|
</history-entry>
|
||||||
<history-entry file="phpunit_xml - 2018.04.02 at 13h 43m 05s.xml">
|
<history-entry file="phpunit_xml - 2018.04.06 at 16h 53m 38s.xml">
|
||||||
<configuration name="phpunit.xml" configurationId="PHPUnitRunConfigurationType" />
|
<configuration name="phpunit.xml" configurationId="PHPUnitRunConfigurationType" />
|
||||||
</history-entry>
|
</history-entry>
|
||||||
<history-entry file="phpunit_xml - 2018.04.02 at 13h 43m 07s.xml">
|
<history-entry file="phpunit_xml - 2018.04.06 at 16h 54m 36s.xml">
|
||||||
<configuration name="phpunit.xml" configurationId="PHPUnitRunConfigurationType" />
|
<configuration name="phpunit.xml" configurationId="PHPUnitRunConfigurationType" />
|
||||||
</history-entry>
|
</history-entry>
|
||||||
<history-entry file="phpunit_xml - 2018.04.02 at 14h 48m 41s.xml">
|
<history-entry file="phpunit_xml - 2018.04.06 at 16h 55m 10s.xml">
|
||||||
<configuration name="phpunit.xml" configurationId="PHPUnitRunConfigurationType" />
|
<configuration name="phpunit.xml" configurationId="PHPUnitRunConfigurationType" />
|
||||||
</history-entry>
|
</history-entry>
|
||||||
<history-entry file="EventHandlerTest - 2018.04.02 at 14h 50m 26s.xml">
|
<history-entry file="phpunit_xml - 2018.04.06 at 16h 55m 25s.xml">
|
||||||
<configuration name="EventHandlerTest" configurationId="PHPUnitRunConfigurationType" />
|
<configuration name="phpunit.xml" configurationId="PHPUnitRunConfigurationType" />
|
||||||
</history-entry>
|
</history-entry>
|
||||||
<history-entry file="EventHandlerTest - 2018.04.02 at 14h 50m 34s.xml">
|
<history-entry file="phpunit_xml - 2018.04.06 at 16h 57m 00s.xml">
|
||||||
<configuration name="EventHandlerTest" configurationId="PHPUnitRunConfigurationType" />
|
<configuration name="phpunit.xml" configurationId="PHPUnitRunConfigurationType" />
|
||||||
</history-entry>
|
</history-entry>
|
||||||
<history-entry file="EventHandlerTest - 2018.04.02 at 14h 51m 17s.xml">
|
<history-entry file="phpunit_xml - 2018.04.06 at 16h 57m 10s.xml">
|
||||||
<configuration name="EventHandlerTest" configurationId="PHPUnitRunConfigurationType" />
|
<configuration name="phpunit.xml" configurationId="PHPUnitRunConfigurationType" />
|
||||||
</history-entry>
|
</history-entry>
|
||||||
</component>
|
</component>
|
||||||
<component name="TimeTrackingManager">
|
<component name="TimeTrackingManager">
|
||||||
<option name="totallyTimeSpent" value="146739000" />
|
<option name="totallyTimeSpent" value="161141000" />
|
||||||
</component>
|
</component>
|
||||||
<component name="TodoView">
|
<component name="TodoView">
|
||||||
<todo-panel id="selected-file">
|
<todo-panel id="selected-file">
|
||||||
@@ -594,16 +596,17 @@
|
|||||||
<window_info anchor="bottom" id="TODO" order="11" weight="0.32983023" />
|
<window_info anchor="bottom" id="TODO" order="11" weight="0.32983023" />
|
||||||
<window_info anchor="bottom" id="Event Log" order="7" sideWeight="0.50919265" side_tool="true" weight="0.32902184" />
|
<window_info anchor="bottom" id="Event Log" order="7" sideWeight="0.50919265" side_tool="true" weight="0.32902184" />
|
||||||
<window_info anchor="bottom" id="Database Changes" order="13" show_stripe_button="false" />
|
<window_info anchor="bottom" id="Database Changes" order="13" show_stripe_button="false" />
|
||||||
<window_info active="true" anchor="bottom" id="Run" order="2" sideWeight="0.49080735" visible="true" weight="0.3272727" />
|
<window_info anchor="bottom" id="Run" order="2" sideWeight="0.49080735" weight="0.3272727" />
|
||||||
<window_info anchor="bottom" id="Version Control" order="14" weight="0.32902184" />
|
<window_info anchor="bottom" id="Version Control" order="14" weight="0.32828283" />
|
||||||
<window_info anchor="bottom" id="Terminal" order="12" sideWeight="0.49680257" weight="0.28282827" />
|
<window_info anchor="bottom" id="Terminal" order="12" sideWeight="0.49680257" visible="true" weight="0.28282827" />
|
||||||
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.2027972" />
|
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.20479521" />
|
||||||
<window_info anchor="bottom" id="Docker" order="8" show_stripe_button="false" />
|
<window_info anchor="bottom" id="Docker" order="8" show_stripe_button="false" />
|
||||||
|
<window_info anchor="bottom" id="Inspection Results" order="15" weight="0.32828283" />
|
||||||
<window_info anchor="right" id="Database" order="3" />
|
<window_info anchor="right" id="Database" order="3" />
|
||||||
<window_info anchor="bottom" id="Find" order="1" sideWeight="0.48880896" weight="0.3272727" />
|
<window_info anchor="bottom" id="Find" order="1" sideWeight="0.48880896" weight="0.3272727" />
|
||||||
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
|
<window_info id="Structure" order="1" weight="0.24975026" />
|
||||||
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
|
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
|
||||||
<window_info id="Favorites" order="2" side_tool="true" />
|
<window_info id="Favorites" order="2" weight="0.32967034" />
|
||||||
<window_info anchor="bottom" id="Message" order="0" />
|
<window_info anchor="bottom" id="Message" order="0" />
|
||||||
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
|
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
|
||||||
<window_info anchor="bottom" id="Inspection" order="6" weight="0.4" />
|
<window_info anchor="bottom" id="Inspection" order="6" weight="0.4" />
|
||||||
@@ -611,7 +614,6 @@
|
|||||||
<window_info anchor="right" id="Commander" order="0" weight="0.4" />
|
<window_info anchor="right" id="Commander" order="0" weight="0.4" />
|
||||||
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
|
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
|
||||||
<window_info anchor="bottom" id="PHP-CGI Server" order="10" />
|
<window_info anchor="bottom" id="PHP-CGI Server" order="10" />
|
||||||
<window_info anchor="bottom" id="Inspection Results" order="15" weight="0.32828283" />
|
|
||||||
<window_info anchor="bottom" id="REST Client" order="5" weight="0.32929292" />
|
<window_info anchor="bottom" id="REST Client" order="5" weight="0.32929292" />
|
||||||
<window_info anchor="bottom" id="Command Line Tools Console" order="9" weight="0.32928804" />
|
<window_info anchor="bottom" id="Command Line Tools Console" order="9" weight="0.32928804" />
|
||||||
</layout>
|
</layout>
|
||||||
@@ -628,66 +630,6 @@
|
|||||||
</breakpoint-manager>
|
</breakpoint-manager>
|
||||||
</component>
|
</component>
|
||||||
<component name="editorHistoryManager">
|
<component name="editorHistoryManager">
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/Http/Input/IInputItem.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="380">
|
|
||||||
<caret line="19" column="40" selection-start-line="19" selection-start-column="40" selection-end-line="19" selection-end-column="40" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/README.md">
|
|
||||||
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
|
||||||
<state split_layout="SPLIT">
|
|
||||||
<first_editor relative-caret-position="7400">
|
|
||||||
<caret line="370" column="1" selection-start-line="370" selection-start-column="1" selection-end-line="370" selection-end-column="1" />
|
|
||||||
</first_editor>
|
|
||||||
<second_editor />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Router.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="9860">
|
|
||||||
<caret line="509" column="45" selection-start-line="509" selection-start-column="45" selection-end-line="509" selection-end-column="45" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/helpers.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="1420">
|
|
||||||
<caret line="74" selection-end-line="87" selection-end-column="1" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/SimpleRouter.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="5160">
|
|
||||||
<caret line="283" column="39" selection-start-line="283" selection-start-column="39" selection-end-line="283" selection-end-column="39" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#302#319#0#PHP" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/Http/Input/InputHandler.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="4460">
|
|
||||||
<caret line="224" column="80" selection-start-line="224" selection-start-column="80" selection-end-line="224" selection-end-column="80" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/IRouterBootManager.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="264">
|
|
||||||
<caret line="11" column="28" selection-start-line="11" selection-start-column="28" selection-end-line="11" selection-end-column="28" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/IGroupRoute.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="-288" />
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Handlers/IExceptionHandler.php">
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Handlers/IExceptionHandler.php">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="48">
|
<state relative-caret-position="48">
|
||||||
@@ -695,13 +637,6 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/IRoute.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="258">
|
|
||||||
<caret line="27" column="20" selection-start-line="27" selection-start-column="20" selection-end-line="27" selection-end-column="20" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Handlers/DebugEventHandler.php">
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Handlers/DebugEventHandler.php">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="168">
|
<state relative-caret-position="168">
|
||||||
@@ -783,13 +718,6 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/tmp/CompiledContainer.php" />
|
<entry file="file://$PROJECT_DIR$/tmp/CompiledContainer.php" />
|
||||||
<entry file="file://$PROJECT_DIR$/tests/TestRouter.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="474">
|
|
||||||
<caret line="24" column="30" selection-start-line="24" selection-start-column="30" selection-end-line="24" selection-end-column="30" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/composer.json">
|
<entry file="file://$PROJECT_DIR$/composer.json">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="370">
|
<state relative-caret-position="370">
|
||||||
@@ -811,13 +739,6 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/tests/Pecee/SimpleRouter/InputHandlerTest.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="267">
|
|
||||||
<caret line="16" column="8" selection-start-line="16" selection-start-column="8" selection-end-line="16" selection-end-column="8" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/tests/Pecee/SimpleRouter/RouterRouteTest.php">
|
<entry file="file://$PROJECT_DIR$/tests/Pecee/SimpleRouter/RouterRouteTest.php">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="572">
|
<state relative-caret-position="572">
|
||||||
@@ -839,13 +760,6 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/Http/Request.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="316">
|
|
||||||
<caret line="223" column="5" selection-start-line="223" selection-start-column="5" selection-end-line="223" selection-end-column="5" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/Http/Input/IInputItem.php">
|
<entry file="file://$PROJECT_DIR$/src/Pecee/Http/Input/IInputItem.php">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="380">
|
<state relative-caret-position="380">
|
||||||
@@ -867,101 +781,9 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/Http/Url.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="6160">
|
|
||||||
<caret line="308" column="7" selection-start-line="308" selection-start-column="7" selection-end-line="308" selection-end-column="7" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/helpers.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="1520">
|
|
||||||
<caret line="79" column="30" selection-start-line="79" selection-start-column="30" selection-end-line="79" selection-end-column="30" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/Http/Input/InputHandler.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="191">
|
|
||||||
<caret line="255" column="7" selection-start-line="255" selection-start-column="7" selection-end-line="255" selection-end-column="7" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/SimpleRouter.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="165">
|
|
||||||
<caret line="60" column="4" lean-forward="true" selection-start-line="60" selection-start-column="4" selection-end-line="63" selection-end-column="5" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#302#319#0#PHP" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/README.md">
|
|
||||||
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
|
||||||
<state split_layout="SPLIT">
|
|
||||||
<first_editor relative-caret-position="230">
|
|
||||||
<caret line="1298" column="39" selection-start-line="1298" selection-start-column="39" selection-end-line="1298" selection-end-column="39" />
|
|
||||||
</first_editor>
|
|
||||||
<second_editor />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/ILoadableRoute.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="362">
|
|
||||||
<caret line="42" column="18" selection-start-line="42" selection-start-column="18" selection-end-line="42" selection-end-column="18" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#44#67#0#PHP" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteController.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="213">
|
|
||||||
<caret line="15" column="13" selection-start-line="15" selection-start-column="13" selection-end-line="15" selection-end-column="13" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteResource.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="213">
|
|
||||||
<caret line="33" column="13" selection-start-line="33" selection-start-column="13" selection-end-line="33" selection-end-column="13" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/LoadableRoute.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="146">
|
|
||||||
<caret line="92" column="7" lean-forward="true" selection-start-line="92" selection-start-column="7" selection-end-line="92" selection-end-column="7" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#44#82#0#PHP" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/Route.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="211">
|
|
||||||
<caret line="239" column="10" selection-start-line="239" selection-start-column="10" selection-end-line="239" selection-end-column="10" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Router.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="245">
|
|
||||||
<caret line="156" selection-start-line="156" selection-end-line="156" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#38#84#0#PHP" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Handlers/EventHandler.php">
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Handlers/EventHandler.php">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="-742">
|
<state relative-caret-position="540">
|
||||||
<caret line="28" selection-start-line="28" selection-end-line="28" />
|
<caret line="28" selection-start-line="28" selection-end-line="28" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#47#90#0#PHP" expanded="true" />
|
<element signature="e#47#90#0#PHP" expanded="true" />
|
||||||
@@ -971,18 +793,198 @@
|
|||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/tests/Pecee/SimpleRouter/EventHandlerTest.php">
|
<entry file="file://$PROJECT_DIR$/tests/Pecee/SimpleRouter/EventHandlerTest.php">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="278">
|
<state relative-caret-position="1860">
|
||||||
<caret line="88" column="13" lean-forward="true" selection-start-line="88" selection-start-column="13" selection-end-line="88" selection-end-column="13" />
|
<caret line="94" column="24" selection-start-line="94" selection-start-column="24" selection-end-line="94" selection-end-column="24" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#249#292#0#PHP" expanded="true" />
|
<element signature="e#249#292#0#PHP" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/IPartialGroupRoute.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="80">
|
||||||
|
<caret line="4" column="10" selection-start-line="4" selection-start-column="10" selection-end-line="4" selection-end-column="10" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteResource.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="403">
|
||||||
|
<caret line="94" column="116" selection-start-line="94" selection-start-column="116" selection-end-line="94" selection-end-column="116" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/Pecee/Http/Response.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="-2096" />
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/README.md">
|
||||||
|
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
||||||
|
<state split_layout="SPLIT">
|
||||||
|
<first_editor relative-caret-position="165">
|
||||||
|
<caret line="1202" lean-forward="true" selection-start-line="1202" selection-end-line="1202" />
|
||||||
|
</first_editor>
|
||||||
|
<second_editor />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/vendor/phpunit/phpunit/src/Framework/TestCase.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="-687">
|
||||||
|
<caret line="100" column="15" selection-start-line="100" selection-start-column="15" selection-end-line="100" selection-end-column="15" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/Pecee/Http/Middleware/BaseCsrfVerifier.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="213">
|
||||||
|
<caret line="69" column="56" selection-start-line="69" selection-start-column="56" selection-end-line="69" selection-end-column="56" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/Pecee/Http/Request.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="286">
|
||||||
|
<caret line="88" column="24" lean-forward="true" selection-start-line="88" selection-start-column="24" selection-end-line="88" selection-end-column="35" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/tests/Pecee/SimpleRouter/MiddlewareTest.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="120">
|
||||||
|
<caret line="6" column="53" lean-forward="true" selection-start-line="6" selection-start-column="53" selection-end-line="6" selection-end-column="53" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/tests/Pecee/SimpleRouter/RouterUrlTest.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="-34">
|
||||||
|
<caret line="85" selection-start-line="85" selection-end-line="85" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/vendor/phpunit/phpunit/src/Framework/Assert.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="333">
|
||||||
|
<caret line="1197" column="27" selection-start-line="1197" selection-start-column="27" selection-end-line="1197" selection-end-column="27" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/tests/Pecee/SimpleRouter/InputHandlerTest.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="1806">
|
||||||
|
<caret line="93" column="63" selection-start-line="93" selection-start-column="63" selection-end-line="93" selection-end-column="63" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/Pecee/Http/Url.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="86">
|
||||||
|
<caret line="25" column="20" selection-start-line="25" selection-start-column="20" selection-end-line="25" selection-end-column="20" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteGroup.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="716">
|
||||||
|
<caret line="55" column="45" selection-start-line="55" selection-start-column="45" selection-end-line="55" selection-end-column="45" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/tests/TestRouter.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="240">
|
||||||
|
<caret line="12" selection-start-line="12" selection-end-line="12" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/LoadableRoute.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="20">
|
||||||
|
<caret line="71" column="33" selection-start-line="71" selection-start-column="27" selection-end-line="71" selection-end-column="33" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#44#82#0#PHP" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteController.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="20">
|
||||||
|
<caret line="15" column="22" lean-forward="true" selection-start-line="15" selection-start-column="22" selection-end-line="15" selection-end-column="22" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/IRoute.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="224">
|
||||||
|
<caret line="39" column="10" selection-start-line="39" selection-start-column="10" selection-end-line="39" selection-end-column="10" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/ILoadableRoute.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="204">
|
||||||
|
<caret line="32" column="36" selection-start-line="32" selection-start-column="30" selection-end-line="32" selection-end-column="36" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#44#67#0#PHP" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteUrl.php">
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/RouteUrl.php">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="300">
|
<state relative-caret-position="200">
|
||||||
<caret line="21" column="50" lean-forward="true" selection-start-line="21" selection-start-column="50" selection-end-line="21" selection-end-column="50" />
|
<caret line="10" column="22" lean-forward="true" selection-start-line="10" selection-start-column="22" selection-end-line="10" selection-end-column="22" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/Pecee/Http/Input/InputHandler.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="425">
|
||||||
|
<caret line="280" column="38" selection-start-line="280" selection-start-column="38" selection-end-line="280" selection-end-column="38" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#36#82#0#PHP" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Route/Route.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="162">
|
||||||
|
<caret line="498" column="61" selection-start-line="498" selection-start-column="61" selection-end-line="498" selection-end-column="61" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#44#82#0#PHP" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/Router.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="220">
|
||||||
|
<caret line="517" lean-forward="true" selection-start-line="517" selection-end-line="517" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#38#84#0#PHP" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/Pecee/SimpleRouter/SimpleRouter.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="505">
|
||||||
|
<caret line="63" selection-start-line="63" selection-end-line="63" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#302#319#0#PHP" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/helpers.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="180">
|
||||||
|
<caret line="51" column="59" selection-start-line="51" selection-start-column="59" selection-end-line="51" selection-end-column="59" />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
|||||||
@@ -1,7 +1,16 @@
|
|||||||
# simple-router
|
# simple-router
|
||||||
|
|
||||||
Simple, fast and yet powerful PHP router that is easy to get integrated and in any project.
|
Simple, fast and yet powerful PHP router that is easy to get integrated and in any project. Heavily inspired by the way Laravel handles routing, with both simplicity and expand-ability in mind.
|
||||||
Heavily inspired by the way Laravel handles routing, with both simplicity and expand-ability in mind.
|
|
||||||
|
With simple-router you can create a new project fast, without depending on a framework.
|
||||||
|
|
||||||
|
**It only takes a few lines of code to get started:**
|
||||||
|
|
||||||
|
```php
|
||||||
|
SimpleRouter::get('/', function() {
|
||||||
|
return 'Hello world';
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
### Support the project
|
### Support the project
|
||||||
|
|
||||||
@@ -84,6 +93,9 @@ You can donate any amount of your choice by [clicking here](https://www.paypal.c
|
|||||||
- [Extending](#extending)
|
- [Extending](#extending)
|
||||||
- [Help and support](#help-and-support)
|
- [Help and support](#help-and-support)
|
||||||
- [Common issues and fixes](#common-issues-and-fixes)
|
- [Common issues and fixes](#common-issues-and-fixes)
|
||||||
|
- [Multiple routes matches? Which one has the priority?](#multiple-routes-matches-which-one-has-the-priority)
|
||||||
|
- [Parameters won't match or route not working with special characters](#parameters-wont-match-or-route-not-working-with-special-characters)
|
||||||
|
- [Using the router on sub-paths](#using-the-router-on-sub-paths)
|
||||||
- [Debugging](#debugging)
|
- [Debugging](#debugging)
|
||||||
- [Creating unit-tests](#creating-unit-tests)
|
- [Creating unit-tests](#creating-unit-tests)
|
||||||
- [Debug information](#debug-information)
|
- [Debug information](#debug-information)
|
||||||
@@ -229,7 +241,9 @@ Simply create a new `web.config` file in your projects `public` directory and pa
|
|||||||
#### Troubleshooting
|
#### Troubleshooting
|
||||||
|
|
||||||
If you do not have a `favicon.ico` file in your project, you can get a `NotFoundHttpException` (404 - not found).
|
If you do not have a `favicon.ico` file in your project, you can get a `NotFoundHttpException` (404 - not found).
|
||||||
|
|
||||||
To add `favicon.ico` to the IIS ignore-list, add the following line to the `<conditions>` group:
|
To add `favicon.ico` to the IIS ignore-list, add the following line to the `<conditions>` group:
|
||||||
|
|
||||||
```
|
```
|
||||||
<add input="{REQUEST_FILENAME}" negate="true" pattern="favicon.ico" ignoreCase="true" />
|
<add input="{REQUEST_FILENAME}" negate="true" pattern="favicon.ico" ignoreCase="true" />
|
||||||
```
|
```
|
||||||
@@ -239,7 +253,9 @@ You can also make one exception for files with some extensions:
|
|||||||
<add input="{REQUEST_FILENAME}" pattern="\.ico|\.png|\.css|\.jpg" negate="true" ignoreCase="true" />
|
<add input="{REQUEST_FILENAME}" pattern="\.ico|\.png|\.css|\.jpg" negate="true" ignoreCase="true" />
|
||||||
```
|
```
|
||||||
|
|
||||||
If you are using `$_SERVER['ORIG_PATH_INFO']`, you will get `\index.php\` as part of the returned value. For example:
|
If you are using `$_SERVER['ORIG_PATH_INFO']`, you will get `\index.php\` as part of the returned value.
|
||||||
|
|
||||||
|
**Example:**
|
||||||
```
|
```
|
||||||
/index.php/test/mypage.php
|
/index.php/test/mypage.php
|
||||||
```
|
```
|
||||||
@@ -332,12 +348,12 @@ function request(): Request
|
|||||||
* @param string|null $index Parameter index name
|
* @param string|null $index Parameter index name
|
||||||
* @param string|null $defaultValue Default return value
|
* @param string|null $defaultValue Default return value
|
||||||
* @param array ...$methods Default methods
|
* @param array ...$methods Default methods
|
||||||
* @return \Pecee\Http\Input\InputHandler|string
|
* @return \Pecee\Http\Input\InputHandler|array|string|null
|
||||||
*/
|
*/
|
||||||
function input($index = null, $defaultValue = null, ...$methods)
|
function input($index = null, $defaultValue = null, ...$methods)
|
||||||
{
|
{
|
||||||
if ($index !== null) {
|
if ($index !== null) {
|
||||||
return request()->getInputHandler()->getValue($index, $defaultValue, ...$methods);
|
return request()->getInputHandler()->value($index, $defaultValue, ...$methods);
|
||||||
}
|
}
|
||||||
|
|
||||||
return request()->getInputHandler();
|
return request()->getInputHandler();
|
||||||
@@ -383,7 +399,7 @@ Below is a very basic example of setting up a route. First parameter is the url
|
|||||||
|
|
||||||
```php
|
```php
|
||||||
SimpleRouter::get('/', function() {
|
SimpleRouter::get('/', function() {
|
||||||
return 'Hello world';
|
return 'Hello world';
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -406,11 +422,11 @@ Sometimes you might need to create a route that accepts multiple HTTP-verbs. If
|
|||||||
|
|
||||||
```php
|
```php
|
||||||
SimpleRouter::match(['get', 'post'], '/', function() {
|
SimpleRouter::match(['get', 'post'], '/', function() {
|
||||||
// ...
|
// ...
|
||||||
});
|
});
|
||||||
|
|
||||||
SimpleRouter::any('foo', function() {
|
SimpleRouter::any('foo', function() {
|
||||||
// ...
|
// ...
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -418,7 +434,7 @@ We've created a simple method which matches `GET` and `POST` which is most commo
|
|||||||
|
|
||||||
```php
|
```php
|
||||||
SimpleRouter::form('foo', function() {
|
SimpleRouter::form('foo', function() {
|
||||||
// ...
|
// ...
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -430,7 +446,7 @@ You'll properly wondering by know how you parse parameters from your urls. For e
|
|||||||
|
|
||||||
```php
|
```php
|
||||||
SimpleRouter::get('/user/{id}', function ($userId) {
|
SimpleRouter::get('/user/{id}', function ($userId) {
|
||||||
return 'User with id: ' . $userId;
|
return 'User with id: ' . $userId;
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -438,7 +454,7 @@ You may define as many route parameters as required by your route:
|
|||||||
|
|
||||||
```php
|
```php
|
||||||
SimpleRouter::get('/posts/{post}/comments/{comment}', function ($postId, $commentId) {
|
SimpleRouter::get('/posts/{post}/comments/{comment}', function ($postId, $commentId) {
|
||||||
// ...
|
// ...
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -450,11 +466,11 @@ Occasionally you may need to specify a route parameter, but make the presence of
|
|||||||
|
|
||||||
```php
|
```php
|
||||||
SimpleRouter::get('/user/{name?}', function ($name = null) {
|
SimpleRouter::get('/user/{name?}', function ($name = null) {
|
||||||
return $name;
|
return $name;
|
||||||
});
|
});
|
||||||
|
|
||||||
SimpleRouter::get('/user/{name?}', function ($name = 'Simon') {
|
SimpleRouter::get('/user/{name?}', function ($name = 'Simon') {
|
||||||
return $name;
|
return $name;
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -464,15 +480,21 @@ You may constrain the format of your route parameters using the where method on
|
|||||||
|
|
||||||
```php
|
```php
|
||||||
SimpleRouter::get('/user/{name}', function ($name) {
|
SimpleRouter::get('/user/{name}', function ($name) {
|
||||||
//
|
|
||||||
|
// ... do stuff
|
||||||
|
|
||||||
})->where('name', '[A-Za-z]+');
|
})->where('name', '[A-Za-z]+');
|
||||||
|
|
||||||
SimpleRouter::get('/user/{id}', function ($id) {
|
SimpleRouter::get('/user/{id}', function ($id) {
|
||||||
//
|
|
||||||
|
// ... do stuff
|
||||||
|
|
||||||
})->where('id', '[0-9]+');
|
})->where('id', '[0-9]+');
|
||||||
|
|
||||||
SimpleRouter::get('/user/{id}/{name}', function ($id, $name) {
|
SimpleRouter::get('/user/{id}/{name}', function ($id, $name) {
|
||||||
//
|
|
||||||
|
// ... do stuff
|
||||||
|
|
||||||
})->where(['id' => '[0-9]+', 'name' => '[a-z]+']);
|
})->where(['id' => '[0-9]+', 'name' => '[a-z]+']);
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -1136,9 +1158,7 @@ In the example below, we check if the current url contains the `/api` part.
|
|||||||
|
|
||||||
```php
|
```php
|
||||||
if(url()->contains('/api')) {
|
if(url()->contains('/api')) {
|
||||||
|
|
||||||
// ... do stuff
|
// ... do stuff
|
||||||
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -1156,86 +1176,82 @@ For more available methods please check the `Pecee\Http\Url` class.
|
|||||||
|
|
||||||
# Input & parameters
|
# Input & parameters
|
||||||
|
|
||||||
|
simple-router offers libraries and helpers that makes it easy to manage and manipulate input-parameters like `$_POST`, `$_GET` and `$_FILE`.
|
||||||
|
|
||||||
## Using the Input class to manage parameters
|
## Using the Input class to manage parameters
|
||||||
|
|
||||||
We've added the `Input` class to easy access and manage parameters from your Controller-classes.
|
You can use the `InputHandler` class to easily access and manage parameters from your request. The `InputHandler` class offers extended features such as copying/moving uploaded files directly on the object, getting file-extension, mime-type etc.
|
||||||
|
|
||||||
### Get single parameter value:
|
### Get single parameter value
|
||||||
|
|
||||||
If items is grouped in the html, it will return an array of items.
|
```input($index, $defaultValue, ...$methods);```
|
||||||
|
|
||||||
**Note:** `get` will automatically trim the value and ensure that it's not empty. If it's empty the `$defaultValue` will be returned.
|
To quickly get a value from a parameter, you can use the `input` helper function.
|
||||||
|
|
||||||
|
This will automatically trim the value and ensure that it's not empty. If it's empty the `$defaultValue` will be returned instead.
|
||||||
|
|
||||||
|
**Note:**
|
||||||
|
This function returns a `string` unless the parameters are grouped together, in that case it will return an `array` of values.
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
|
||||||
|
This example matches both POST and GET request-methods and if name is empty the default-value "Guest" will be returned.
|
||||||
|
|
||||||
```php
|
```php
|
||||||
$value = input($index, $defaultValue, $methods);
|
$name = input('name', 'Guest', 'post', 'get');
|
||||||
```
|
```
|
||||||
|
|
||||||
### Get parameter object
|
### Get parameter object
|
||||||
|
|
||||||
The example below will return an instance of `InputItem` or `InputFile` depending on the type.
|
When dealing with file-uploads it can be useful to retrieve the raw parameter object.
|
||||||
|
|
||||||
You can use this in your html as it will render the value of the item.
|
**Search for object with default-value across multiple or specific request-methods:**
|
||||||
|
|
||||||
If you want to compare value in your if statements, you have to use the `getValue` or use the `input()` helper function instead.
|
The example below will return an `InputItem` object if the parameter was found or return the `$defaultValue`. If parameters are grouped, it will return an array of `InputItem` objects.
|
||||||
|
|
||||||
If items is grouped in the html, it will return an array of items.
|
|
||||||
|
|
||||||
```php
|
```php
|
||||||
$object = input()->get($index, $defaultValue = null, $methods = null);
|
$object = input()->find($index, $defaultValue = null, ...$methods);
|
||||||
```
|
```
|
||||||
|
|
||||||
### Return specific GET parameter (where name is the name of your parameter):
|
**Getting specific `$_GET` parameter as `InputItem` object:**
|
||||||
|
|
||||||
|
The example below will return an `InputItem` object if the parameter was found or return the `$defaultValue`. If parameters are grouped, it will return an array of `InputItem` objects.
|
||||||
|
|
||||||
```php
|
```php
|
||||||
# -- match any (default) --
|
$object = input()->get($index, $defaultValue = null);
|
||||||
|
```
|
||||||
|
|
||||||
/*
|
**Getting specific `$_POST` parameter as `InputItem` object:**
|
||||||
* This is the recommended way to go for normal usage
|
|
||||||
* as it will strip empty values, ensuring that
|
|
||||||
* $defaultValue is returned if the value is empty.
|
|
||||||
*/
|
|
||||||
|
|
||||||
$id = input()->getValue($index, $defaultValue, $method);
|
The example below will return an `InputItem` object if the parameter was found or return the `$defaultValue`. If parameters are grouped, it will return an array of `InputItem` objects.
|
||||||
|
|
||||||
# -- shortcut to above --
|
```php
|
||||||
|
$object = input()->post($index, $defaultValue = null);
|
||||||
|
```
|
||||||
|
|
||||||
$id = input($index, $defaultValue, $method);
|
**Getting specific `$_FILE` parameter as `InputFile` object:**
|
||||||
|
|
||||||
# -- match specific --
|
The example below will return an `InputFile` object if the parameter was found or return the `$defaultValue`. If parameters are grouped, it will return an array of `InputFile` objects.
|
||||||
|
|
||||||
$value = input($index, $defaultValue, 'get');
|
```php
|
||||||
$value = input($index, $defaultValue, 'post');
|
$object = input()->file($index, $defaultValue = null);
|
||||||
$value = input($index, $defaultValue, 'file');
|
|
||||||
|
|
||||||
# -- or --
|
|
||||||
|
|
||||||
$object = input()->findGet($index, $defaultValue);
|
|
||||||
$object = input()->findPost($index, $defaultValue);
|
|
||||||
$object = input()->findFile($index, $defaultValue);
|
|
||||||
|
|
||||||
# -- get the full object --
|
|
||||||
|
|
||||||
$object = input()->get($index, 'post', 'get');
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Managing files
|
### Managing files
|
||||||
|
|
||||||
```php
|
```php
|
||||||
/**
|
/**
|
||||||
* In this small example we loop through a collection of files
|
* Loop through a collection of files uploaded from a form on the page like this
|
||||||
* added on the page like this
|
|
||||||
* <input type="file" name="images[]" />
|
* <input type="file" name="images[]" />
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* @var $image \Pecee\Http\Input\InputFile */
|
/* @var $image \Pecee\Http\Input\InputFile */
|
||||||
foreach(input('images', []) as $image)
|
foreach(input()->file('images', []) as $image)
|
||||||
{
|
{
|
||||||
if($image->getMime() === 'image/jpeg') {
|
if($image->getMime() === 'image/jpeg')
|
||||||
|
{
|
||||||
$destinationFilname = sprintf('%s.%s', uniqid(), $image->getExtension());
|
$destinationFilname = sprintf('%s.%s', uniqid(), $image->getExtension());
|
||||||
|
$image->move(sprintf('/uploads/%s', $destinationFilename));
|
||||||
$image->move('/uploads/' . $destinationFilename);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1244,10 +1260,10 @@ foreach(input('images', []) as $image)
|
|||||||
### Get all parameters
|
### Get all parameters
|
||||||
|
|
||||||
```php
|
```php
|
||||||
// Get all
|
# Get all
|
||||||
$values = input()->all();
|
$values = input()->all();
|
||||||
|
|
||||||
// Only match certain keys
|
# Only match specific keys
|
||||||
$values = input()->all([
|
$values = input()->all([
|
||||||
'company_name',
|
'company_name',
|
||||||
'user_id'
|
'user_id'
|
||||||
@@ -1261,6 +1277,7 @@ All object implements the `IInputItem` interface and will always contain these m
|
|||||||
- `getValue()` - returns the value of the input.
|
- `getValue()` - returns the value of the input.
|
||||||
|
|
||||||
`InputFile` has the same methods as above along with some other file-specific methods like:
|
`InputFile` has the same methods as above along with some other file-specific methods like:
|
||||||
|
|
||||||
- `getFilename` - get the filename.
|
- `getFilename` - get the filename.
|
||||||
- `getTmpName()` - get file temporary name.
|
- `getTmpName()` - get file temporary name.
|
||||||
- `getSize()` - get file size.
|
- `getSize()` - get file size.
|
||||||
@@ -1268,16 +1285,9 @@ All object implements the `IInputItem` interface and will always contain these m
|
|||||||
- `getContents()` - get file content.
|
- `getContents()` - get file content.
|
||||||
- `getType()` - get mime-type for file.
|
- `getType()` - get mime-type for file.
|
||||||
- `getError()` - get file upload error.
|
- `getError()` - get file upload error.
|
||||||
- `hasError()` - returns `bool` if an error occurred while uploading (if getError is not 0).
|
- `hasError()` - returns `bool` if an error occurred while uploading (if `getError` is not 0).
|
||||||
- `toArray()` - returns raw array
|
- `toArray()` - returns raw array
|
||||||
|
|
||||||
Below example requires you to have the helper functions added. Please refer to the helper functions section in the documentation.
|
|
||||||
|
|
||||||
```php
|
|
||||||
/* Get parameter site_id or default-value 2 from either post-value or query-string */
|
|
||||||
$siteId = input('site_id', 2, ['post', 'get']);
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Events
|
# Events
|
||||||
@@ -1560,6 +1570,51 @@ This section will go into details on how to debug the router and answer some of
|
|||||||
|
|
||||||
This section will go over common issues and how to resolve them.
|
This section will go over common issues and how to resolve them.
|
||||||
|
|
||||||
|
### Parameters won't match or route not working with special characters
|
||||||
|
|
||||||
|
Often people experience this issue when one or more parameters contains special characters. The router uses a sparse regular-expression that matches letters from a-z along with numbers when matching parameters, to improve performance.
|
||||||
|
|
||||||
|
All other characters has to be defined via the `defaultParameterRegex` option on your route.
|
||||||
|
|
||||||
|
You can read more about adding your own custom regular expression for matching parameters by [clicking here](#custom-regex-for-matching-parameters).
|
||||||
|
|
||||||
|
### Multiple routes matches? Which one has the priority?
|
||||||
|
|
||||||
|
The router will match routes in the order they're added.
|
||||||
|
|
||||||
|
It's possible to render multiple routes.
|
||||||
|
|
||||||
|
If you want the router to stop when a route is matched, you simply return a value in your callback or stop the execution manually (using `response()->json()` etc.).
|
||||||
|
|
||||||
|
Any returned objects that implements the `__toString()` magic method will also prevent other routes from being rendered.
|
||||||
|
|
||||||
|
### Using the router on sub-paths
|
||||||
|
|
||||||
|
Using the library on a sub-path like `localhost/project/` is not officially supported, however it is possible to get it working quite easily.
|
||||||
|
|
||||||
|
Add an event that appends your sub-path when a new loadable route is added.
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
|
||||||
|
```php
|
||||||
|
// ... your routes.php file
|
||||||
|
|
||||||
|
if($isRunningLocally) {
|
||||||
|
|
||||||
|
$eventHandler = new EventHandler();
|
||||||
|
$eventHandler->register(EventHandler::EVENT_ADD_ROUTE, function (EventArgument $arg) use (&$status) {
|
||||||
|
|
||||||
|
if ($arg->route instanceof \Pecee\SimpleRouter\Route\LoadableRoute) {
|
||||||
|
$arg->route->prependUrl('/local-path');
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
TestRouter::addEventHandler($eventHandler);
|
||||||
|
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## Debugging
|
## Debugging
|
||||||
|
|
||||||
This section will show you how to write unit-tests for the router, view useful debugging information and answer some of the frequently asked questions.
|
This section will show you how to write unit-tests for the router, view useful debugging information and answer some of the frequently asked questions.
|
||||||
|
|||||||
+2
-2
@@ -49,12 +49,12 @@ function request(): Request
|
|||||||
* @param string|null $index Parameter index name
|
* @param string|null $index Parameter index name
|
||||||
* @param string|null $defaultValue Default return value
|
* @param string|null $defaultValue Default return value
|
||||||
* @param array ...$methods Default methods
|
* @param array ...$methods Default methods
|
||||||
* @return \Pecee\Http\Input\InputHandler|string
|
* @return \Pecee\Http\Input\InputHandler|array|string|null
|
||||||
*/
|
*/
|
||||||
function input($index = null, $defaultValue = null, ...$methods)
|
function input($index = null, $defaultValue = null, ...$methods)
|
||||||
{
|
{
|
||||||
if ($index !== null) {
|
if ($index !== null) {
|
||||||
return request()->getInputHandler()->getValue($index, $defaultValue, ...$methods);
|
return request()->getInputHandler()->value($index, $defaultValue, ...$methods);
|
||||||
}
|
}
|
||||||
|
|
||||||
return request()->getInputHandler();
|
return request()->getInputHandler();
|
||||||
|
|||||||
@@ -10,17 +10,17 @@ class InputHandler
|
|||||||
/**
|
/**
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
public $get = [];
|
protected $get = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
public $post = [];
|
protected $post = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
public $file = [];
|
protected $file = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var Request
|
* @var Request
|
||||||
@@ -46,7 +46,7 @@ class InputHandler
|
|||||||
{
|
{
|
||||||
/* Parse get requests */
|
/* Parse get requests */
|
||||||
if (\count($_GET) !== 0) {
|
if (\count($_GET) !== 0) {
|
||||||
$this->get = $this->handleGetPost($_GET);
|
$this->get = $this->parseInputItem($_GET);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Parse post requests */
|
/* Parse post requests */
|
||||||
@@ -57,7 +57,7 @@ class InputHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (\count($postVars) !== 0) {
|
if (\count($postVars) !== 0) {
|
||||||
$this->post = $this->handleGetPost($postVars);
|
$this->post = $this->parseInputItem($postVars);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Parse get requests */
|
/* Parse get requests */
|
||||||
@@ -87,7 +87,7 @@ class InputHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
$keys = [$key];
|
$keys = [$key];
|
||||||
$files = $this->rearrangeFiles($value['name'], $keys, $value);
|
$files = $this->rearrangeFile($value['name'], $keys, $value);
|
||||||
|
|
||||||
if (isset($list[$key]) === true) {
|
if (isset($list[$key]) === true) {
|
||||||
$list[$key][] = $files;
|
$list[$key][] = $files;
|
||||||
@@ -100,9 +100,16 @@ class InputHandler
|
|||||||
return $list;
|
return $list;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function rearrangeFiles(array $values, &$index, $original): array
|
/**
|
||||||
|
* Rearrange multi-dimensional file object created by PHP.
|
||||||
|
*
|
||||||
|
* @param array $values
|
||||||
|
* @param array $index
|
||||||
|
* @param array|null $original
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
protected function rearrangeFile(array $values, &$index, $original): array
|
||||||
{
|
{
|
||||||
|
|
||||||
$originalIndex = $index[0];
|
$originalIndex = $index[0];
|
||||||
array_shift($index);
|
array_shift($index);
|
||||||
|
|
||||||
@@ -138,7 +145,7 @@ class InputHandler
|
|||||||
|
|
||||||
$index[] = $key;
|
$index[] = $key;
|
||||||
|
|
||||||
$files = $this->rearrangeFiles($value, $index, $original);
|
$files = $this->rearrangeFile($value, $index, $original);
|
||||||
|
|
||||||
if (isset($output[$key]) === true) {
|
if (isset($output[$key]) === true) {
|
||||||
$output[$key][] = $files;
|
$output[$key][] = $files;
|
||||||
@@ -151,7 +158,13 @@ class InputHandler
|
|||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function handleGetPost(array $array): array
|
/**
|
||||||
|
* Parse input item from array
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
protected function parseInputItem(array $array): array
|
||||||
{
|
{
|
||||||
$list = [];
|
$list = [];
|
||||||
|
|
||||||
@@ -163,7 +176,7 @@ class InputHandler
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$output = $this->handleGetPost($value);
|
$output = $this->parseInputItem($value);
|
||||||
|
|
||||||
$list[$key] = $output;
|
$list[$key] = $output;
|
||||||
}
|
}
|
||||||
@@ -172,62 +185,26 @@ class InputHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find post-value by index or return default value.
|
* Find input object
|
||||||
*
|
|
||||||
* @param string $index
|
|
||||||
* @param string|null $defaultValue
|
|
||||||
* @return InputItem|string
|
|
||||||
*/
|
|
||||||
public function findPost(string $index, ?string $defaultValue = null)
|
|
||||||
{
|
|
||||||
return $this->post[$index] ?? $defaultValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Find file by index or return default value.
|
|
||||||
*
|
|
||||||
* @param string $index
|
|
||||||
* @param string|null $defaultValue
|
|
||||||
* @return InputFile|string
|
|
||||||
*/
|
|
||||||
public function findFile(string $index, ?string $defaultValue = null)
|
|
||||||
{
|
|
||||||
return $this->file[$index] ?? $defaultValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Find parameter/query-string by index or return default value.
|
|
||||||
*
|
|
||||||
* @param string $index
|
|
||||||
* @param string|null $defaultValue
|
|
||||||
* @return InputItem|string
|
|
||||||
*/
|
|
||||||
public function findGet(string $index, ?string $defaultValue = null)
|
|
||||||
{
|
|
||||||
return $this->get[$index] ?? $defaultValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get input object
|
|
||||||
*
|
*
|
||||||
* @param string $index
|
* @param string $index
|
||||||
* @param array ...$methods
|
* @param array ...$methods
|
||||||
* @return IInputItem|null
|
* @return IInputItem|array|null
|
||||||
*/
|
*/
|
||||||
public function get(string $index, ...$methods): ?IInputItem
|
public function find(string $index, ...$methods)
|
||||||
{
|
{
|
||||||
$element = null;
|
$element = null;
|
||||||
|
|
||||||
if (\count($methods) === 0 || \in_array('get', $methods, true) === true) {
|
if (\count($methods) === 0 || \in_array('get', $methods, true) === true) {
|
||||||
$element = $this->findGet($index);
|
$element = $this->get($index);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($element === null && \count($methods) === 0) || (\count($methods) !== 0 && \in_array('post', $methods, true) === true)) {
|
if (($element === null && \count($methods) === 0) || (\count($methods) !== 0 && \in_array('post', $methods, true) === true)) {
|
||||||
$element = $this->findPost($index);
|
$element = $this->post($index);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($element === null && \count($methods) === 0) || (\count($methods) !== 0 && \in_array('file', $methods, true) === true)) {
|
if (($element === null && \count($methods) === 0) || (\count($methods) !== 0 && \in_array('file', $methods, true) === true)) {
|
||||||
$element = $this->findFile($index);
|
$element = $this->file($index);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $element;
|
return $element;
|
||||||
@@ -239,11 +216,24 @@ class InputHandler
|
|||||||
* @param string $index
|
* @param string $index
|
||||||
* @param string|null $defaultValue
|
* @param string|null $defaultValue
|
||||||
* @param array ...$methods
|
* @param array ...$methods
|
||||||
* @return string
|
* @return string|array
|
||||||
*/
|
*/
|
||||||
public function getValue(string $index, ?string $defaultValue = null, ...$methods): ?string
|
public function value(string $index, ?string $defaultValue = null, ...$methods)
|
||||||
{
|
{
|
||||||
$input = $this->get($index, ...$methods);
|
$input = $this->find($index, ...$methods);
|
||||||
|
|
||||||
|
$output = [];
|
||||||
|
|
||||||
|
/* Handle collection */
|
||||||
|
if (\is_array($input) === true) {
|
||||||
|
/* @var $item InputItem */
|
||||||
|
foreach ($input as $item) {
|
||||||
|
$output[] = $item->getValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
return (\count($output) === 0) ? $defaultValue : $output;
|
||||||
|
}
|
||||||
|
|
||||||
return ($input === null || ($input !== null && trim($input->getValue()) === '')) ? $defaultValue : $input->getValue();
|
return ($input === null || ($input !== null && trim($input->getValue()) === '')) ? $defaultValue : $input->getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -256,15 +246,51 @@ class InputHandler
|
|||||||
*/
|
*/
|
||||||
public function exists(string $index, ...$methods): bool
|
public function exists(string $index, ...$methods): bool
|
||||||
{
|
{
|
||||||
return $this->get($index, ...$methods) !== null;
|
return $this->value($index, null, ...$methods) !== null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find post-value by index or return default value.
|
||||||
|
*
|
||||||
|
* @param string $index
|
||||||
|
* @param string|null $defaultValue
|
||||||
|
* @return InputItem|array|string|null
|
||||||
|
*/
|
||||||
|
public function post(string $index, ?string $defaultValue = null)
|
||||||
|
{
|
||||||
|
return $this->post[$index] ?? $defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find file by index or return default value.
|
||||||
|
*
|
||||||
|
* @param string $index
|
||||||
|
* @param string|null $defaultValue
|
||||||
|
* @return InputFile|array|string|null
|
||||||
|
*/
|
||||||
|
public function file(string $index, ?string $defaultValue = null)
|
||||||
|
{
|
||||||
|
return $this->file[$index] ?? $defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find parameter/query-string by index or return default value.
|
||||||
|
*
|
||||||
|
* @param string $index
|
||||||
|
* @param string|null $defaultValue
|
||||||
|
* @return InputItem|array|string|null
|
||||||
|
*/
|
||||||
|
public function get(string $index, ?string $defaultValue = null)
|
||||||
|
{
|
||||||
|
return $this->get[$index] ?? $defaultValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all get/post items
|
* Get all get/post items
|
||||||
* @param array|null $filter Only take items in filter
|
* @param array $filter Only take items in filter
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function all(array $filter = null): array
|
public function all(array $filter): array
|
||||||
{
|
{
|
||||||
$output = $_GET;
|
$output = $_GET;
|
||||||
|
|
||||||
@@ -273,13 +299,16 @@ class InputHandler
|
|||||||
// Append POST data
|
// Append POST data
|
||||||
$output += $_POST;
|
$output += $_POST;
|
||||||
|
|
||||||
$contents = file_get_contents('php://input');
|
if (\in_array($this->request->getMethod(), ['put', 'patch', 'delete'], false) === true) {
|
||||||
|
|
||||||
// Append any PHP-input json
|
$contents = file_get_contents('php://input');
|
||||||
if (strpos(trim($contents), '{') === 0) {
|
|
||||||
$post = json_decode($contents, true);
|
// Append any PHP-input json
|
||||||
if ($post !== false) {
|
if (strpos(trim($contents), '{') === 0) {
|
||||||
$output += $post;
|
$post = json_decode($contents, true);
|
||||||
|
if ($post !== false) {
|
||||||
|
$output += $post;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ class BaseCsrfVerifier implements IMiddleware
|
|||||||
|
|
||||||
if ($this->skip($request) === false && \in_array($request->getMethod(), ['post', 'put', 'delete'], true) === true) {
|
if ($this->skip($request) === false && \in_array($request->getMethod(), ['post', 'put', 'delete'], true) === true) {
|
||||||
|
|
||||||
$token = $request->getInputHandler()->getValue(
|
$token = $request->getInputHandler()->value(
|
||||||
static::POST_KEY,
|
static::POST_KEY,
|
||||||
$request->getHeader(static::HEADER_KEY),
|
$request->getHeader(static::HEADER_KEY),
|
||||||
'post'
|
'post'
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ class Request
|
|||||||
$this->setUrl(new Url($this->getHeader('unencoded-url', $this->getHeader('request-uri'))));
|
$this->setUrl(new Url($this->getHeader('unencoded-url', $this->getHeader('request-uri'))));
|
||||||
|
|
||||||
$this->inputHandler = new InputHandler($this);
|
$this->inputHandler = new InputHandler($this);
|
||||||
$this->method = strtolower($this->inputHandler->getValue('_method', $this->getHeader('request-method')));
|
$this->method = strtolower($this->inputHandler->value('_method', $this->getHeader('request-method')));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isSecure(): bool
|
public function isSecure(): bool
|
||||||
@@ -279,7 +279,7 @@ class Request
|
|||||||
*/
|
*/
|
||||||
public function setMethod(string $method): void
|
public function setMethod(string $method): void
|
||||||
{
|
{
|
||||||
$this->method = $method;
|
$this->method = strtolower($method);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+19
-4
@@ -14,7 +14,7 @@ class Url implements \JsonSerializable
|
|||||||
private $username;
|
private $username;
|
||||||
private $password;
|
private $password;
|
||||||
private $path;
|
private $path;
|
||||||
private $params;
|
private $params = [];
|
||||||
private $fragment;
|
private $fragment;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -43,9 +43,7 @@ class Url implements \JsonSerializable
|
|||||||
$this->fragment = $data['fragment'] ?? null;
|
$this->fragment = $data['fragment'] ?? null;
|
||||||
|
|
||||||
if (isset($data['query']) === true) {
|
if (isset($data['query']) === true) {
|
||||||
$params = [];
|
$this->setQueryString($data['query']);
|
||||||
parse_str($data['query'], $params);
|
|
||||||
$this->setParams($params);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -240,6 +238,23 @@ class Url implements \JsonSerializable
|
|||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set raw query-string parameters as string
|
||||||
|
*
|
||||||
|
* @param string $queryString
|
||||||
|
* @return static
|
||||||
|
*/
|
||||||
|
public function setQueryString(string $queryString): self
|
||||||
|
{
|
||||||
|
$params = [];
|
||||||
|
|
||||||
|
if(parse_str($queryString, $params) !== false) {
|
||||||
|
return $this->setParams($params);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get query-string params as string
|
* Get query-string params as string
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -120,9 +120,6 @@ abstract class LoadableRoute extends Route implements ILoadableRoute
|
|||||||
$url = '//' . $group->getDomains()[0] . $url;
|
$url = '//' . $group->getDomains()[0] . $url;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Contains parameters that aren't recognized and will be appended at the end of the url */
|
|
||||||
$unknownParams = [];
|
|
||||||
|
|
||||||
/* Create the param string - {parameter} */
|
/* Create the param string - {parameter} */
|
||||||
$param1 = $this->paramModifiers[0] . '%s' . $this->paramModifiers[1];
|
$param1 = $this->paramModifiers[0] . '%s' . $this->paramModifiers[1];
|
||||||
|
|
||||||
@@ -142,7 +139,7 @@ abstract class LoadableRoute extends Route implements ILoadableRoute
|
|||||||
$value = array_key_exists($param, $p) ? $p[$param] : $params[$param];
|
$value = array_key_exists($param, $p) ? $p[$param] : $params[$param];
|
||||||
|
|
||||||
/* If parameter is specifically set to null - use the original-defined value */
|
/* If parameter is specifically set to null - use the original-defined value */
|
||||||
if ($value === null && isset($this->originalParameters[$param])) {
|
if ($value === null && isset($this->originalParameters[$param]) === true) {
|
||||||
$value = $this->originalParameters[$param];
|
$value = $this->originalParameters[$param];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -151,13 +148,12 @@ abstract class LoadableRoute extends Route implements ILoadableRoute
|
|||||||
/* Add parameter to the correct position */
|
/* Add parameter to the correct position */
|
||||||
$url = str_ireplace([sprintf($param1, $param), sprintf($param2, $param)], $value, $url);
|
$url = str_ireplace([sprintf($param1, $param), sprintf($param2, $param)], $value, $url);
|
||||||
} else {
|
} else {
|
||||||
$unknownParams[$param] = $value;
|
/* Parameter aren't recognized and will be appended at the end of the url */
|
||||||
|
$url .= $value . '/';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$url = '/' . ltrim($url, '/') . implode('/', $unknownParams);
|
return rtrim('/' . ltrim($url, '/'), '/') . '/';
|
||||||
|
|
||||||
return rtrim($url, '/') . '/';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -254,9 +250,7 @@ abstract class LoadableRoute extends Route implements ILoadableRoute
|
|||||||
$this->prependUrl($values['prefix']);
|
$this->prependUrl($values['prefix']);
|
||||||
}
|
}
|
||||||
|
|
||||||
parent::setSettings($values, $merge);
|
return parent::setSettings($values, $merge);
|
||||||
|
|
||||||
return $this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -76,7 +76,9 @@ abstract class Route implements IRoute
|
|||||||
}
|
}
|
||||||
|
|
||||||
$router->debug('Parsing parameters');
|
$router->debug('Parsing parameters');
|
||||||
|
|
||||||
$parameters = $this->getParameters();
|
$parameters = $this->getParameters();
|
||||||
|
|
||||||
$router->debug('Finished parsing parameters');
|
$router->debug('Finished parsing parameters');
|
||||||
|
|
||||||
/* Filter parameters with null-value */
|
/* Filter parameters with null-value */
|
||||||
@@ -118,14 +120,17 @@ abstract class Route implements IRoute
|
|||||||
|
|
||||||
protected function parseParameters($route, $url, $parameterRegex = null)
|
protected function parseParameters($route, $url, $parameterRegex = null)
|
||||||
{
|
{
|
||||||
$regex = sprintf(static::PARAMETERS_REGEX_FORMAT, $this->paramModifiers[0], $this->paramOptionalSymbol, $this->paramModifiers[1]);
|
$regex = null;
|
||||||
|
if (strpos($route, $this->paramModifiers[0]) !== false) {
|
||||||
$parameters = [];
|
$regex = sprintf(static::PARAMETERS_REGEX_FORMAT, $this->paramModifiers[0], $this->paramOptionalSymbol, $this->paramModifiers[1]);
|
||||||
|
}
|
||||||
|
|
||||||
// Ensures that host names/domains will work with parameters
|
// Ensures that host names/domains will work with parameters
|
||||||
$url = '/' . ltrim($url, '/');
|
$url = '/' . ltrim($url, '/');
|
||||||
|
$urlRegex = null;
|
||||||
|
$parameters = [];
|
||||||
|
|
||||||
if ((bool)preg_match_all('/' . $regex . '/u', $route, $parameters) === false) {
|
if ($regex === null || (bool)preg_match_all('/' . $regex . '/u', $route, $parameters) === false) {
|
||||||
$urlRegex = preg_quote($route, '/');
|
$urlRegex = preg_quote($route, '/');
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
@@ -155,14 +160,11 @@ abstract class Route implements IRoute
|
|||||||
$regex = sprintf('(?:\/|\-)%1$s(?P<%2$s>%3$s)%1$s', $parameters[2][$key], $name, $regex);
|
$regex = sprintf('(?:\/|\-)%1$s(?P<%2$s>%3$s)%1$s', $parameters[2][$key], $name, $regex);
|
||||||
}
|
}
|
||||||
|
|
||||||
$urlParts[$key] = preg_quote($t, '/') . $regex;
|
$urlRegex .= preg_quote($t, '/') . $regex;
|
||||||
}
|
}
|
||||||
|
|
||||||
$urlRegex = implode('', $urlParts);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((bool)preg_match(sprintf($this->urlRegex, $urlRegex), $url, $matches) === false) {
|
if ($urlRegex === null || (bool)preg_match(sprintf($this->urlRegex, $urlRegex), $url, $matches) === false) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -247,9 +249,8 @@ abstract class Route implements IRoute
|
|||||||
$this->group = $group;
|
$this->group = $group;
|
||||||
|
|
||||||
/* Add/merge parent settings with child */
|
/* Add/merge parent settings with child */
|
||||||
$this->setSettings($group->toArray(), true);
|
|
||||||
|
|
||||||
return $this;
|
return $this->setSettings($group->toArray(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ class RouteController extends LoadableRoute implements IControllerRoute
|
|||||||
/* Match global regular-expression for route */
|
/* Match global regular-expression for route */
|
||||||
$regexMatch = $this->matchRegex($request, $url);
|
$regexMatch = $this->matchRegex($request, $url);
|
||||||
|
|
||||||
if ($regexMatch === false || (stripos($url, $this->url) !== 0 && strtolower($url) !== strtolower($this->url))) {
|
if ($regexMatch === false || (stripos($url, $this->url) !== 0 && strtoupper($url) !== strtoupper($this->url))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -177,9 +177,7 @@ class RouteController extends LoadableRoute implements IControllerRoute
|
|||||||
$this->names = $values['names'];
|
$this->names = $values['names'];
|
||||||
}
|
}
|
||||||
|
|
||||||
parent::setSettings($values, $merge);
|
return parent::setSettings($values, $merge);
|
||||||
|
|
||||||
return $this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -173,9 +173,7 @@ class RouteGroup extends Route implements IGroupRoute
|
|||||||
$this->name = $name;
|
$this->name = $name;
|
||||||
}
|
}
|
||||||
|
|
||||||
parent::setSettings($values, $merge);
|
return parent::setSettings($values, $merge);
|
||||||
|
|
||||||
return $this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ class RouteResource extends LoadableRoute implements IControllerRoute
|
|||||||
/* Match global regular-expression for route */
|
/* Match global regular-expression for route */
|
||||||
$regexMatch = $this->matchRegex($request, $url);
|
$regexMatch = $this->matchRegex($request, $url);
|
||||||
|
|
||||||
if ($regexMatch === false || (stripos($url, $this->url) !== 0 && strtolower($url) !== strtolower($this->url))) {
|
if ($regexMatch === false || (stripos($url, $this->url) !== 0 && strtoupper($url) !== strtoupper($this->url))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -224,9 +224,7 @@ class RouteResource extends LoadableRoute implements IControllerRoute
|
|||||||
$this->methodNames = $values['methods'];
|
$this->methodNames = $values['methods'];
|
||||||
}
|
}
|
||||||
|
|
||||||
parent::setSettings($values, $merge);
|
return parent::setSettings($values, $merge);
|
||||||
|
|
||||||
return $this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -506,7 +506,6 @@ class Router
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
$this->debug('Start rendering exception handler');
|
$this->debug('Start rendering exception handler');
|
||||||
$handler->handleError($this->request, $e);
|
$handler->handleError($this->request, $e);
|
||||||
$this->debug('Finished rendering exception-handler');
|
$this->debug('Finished rendering exception-handler');
|
||||||
@@ -565,7 +564,7 @@ class Router
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Direct match to controller */
|
/* Direct match to controller */
|
||||||
if ($route instanceof IControllerRoute && strtolower($route->getController()) === strtolower($name)) {
|
if ($route instanceof IControllerRoute && strtoupper($route->getController()) === strtoupper($name)) {
|
||||||
$this->debug('Found route "%s" by controller "%s"', $route->getUrl(), $name);
|
$this->debug('Found route "%s" by controller "%s"', $route->getUrl(), $name);
|
||||||
|
|
||||||
return $route;
|
return $route;
|
||||||
@@ -805,26 +804,20 @@ class Router
|
|||||||
* Set csrf verifier class
|
* Set csrf verifier class
|
||||||
*
|
*
|
||||||
* @param BaseCsrfVerifier $csrfVerifier
|
* @param BaseCsrfVerifier $csrfVerifier
|
||||||
* @return static
|
|
||||||
*/
|
*/
|
||||||
public function setCsrfVerifier(BaseCsrfVerifier $csrfVerifier): self
|
public function setCsrfVerifier(BaseCsrfVerifier $csrfVerifier): void
|
||||||
{
|
{
|
||||||
$this->csrfVerifier = $csrfVerifier;
|
$this->csrfVerifier = $csrfVerifier;
|
||||||
|
|
||||||
return $this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set class loader
|
* Set class loader
|
||||||
*
|
*
|
||||||
* @param IClassLoader $loader
|
* @param IClassLoader $loader
|
||||||
* @return static
|
|
||||||
*/
|
*/
|
||||||
public function setClassLoader(IClassLoader $loader)
|
public function setClassLoader(IClassLoader $loader): void
|
||||||
{
|
{
|
||||||
$this->classLoader = $loader;
|
$this->classLoader = $loader;
|
||||||
|
|
||||||
return $this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -841,13 +834,10 @@ class Router
|
|||||||
* Register event handler
|
* Register event handler
|
||||||
*
|
*
|
||||||
* @param IEventHandler $handler
|
* @param IEventHandler $handler
|
||||||
* @return static
|
|
||||||
*/
|
*/
|
||||||
public function addEventHandler(IEventHandler $handler): self
|
public function addEventHandler(IEventHandler $handler): void
|
||||||
{
|
{
|
||||||
$this->eventHandlers[] = $handler;
|
$this->eventHandlers[] = $handler;
|
||||||
|
|
||||||
return $this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ use Pecee\SimpleRouter\Handlers\IEventHandler;
|
|||||||
use Pecee\SimpleRouter\Route\IGroupRoute;
|
use Pecee\SimpleRouter\Route\IGroupRoute;
|
||||||
use Pecee\SimpleRouter\Route\IPartialGroupRoute;
|
use Pecee\SimpleRouter\Route\IPartialGroupRoute;
|
||||||
use Pecee\SimpleRouter\Route\IRoute;
|
use Pecee\SimpleRouter\Route\IRoute;
|
||||||
|
use Pecee\SimpleRouter\Route\Route;
|
||||||
use Pecee\SimpleRouter\Route\RouteController;
|
use Pecee\SimpleRouter\Route\RouteController;
|
||||||
use Pecee\SimpleRouter\Route\RouteGroup;
|
use Pecee\SimpleRouter\Route\RouteGroup;
|
||||||
use Pecee\SimpleRouter\Route\RoutePartialGroup;
|
use Pecee\SimpleRouter\Route\RoutePartialGroup;
|
||||||
@@ -160,6 +161,21 @@ class SimpleRouter
|
|||||||
static::router()->addBootManager($bootManager);
|
static::router()->addBootManager($bootManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Redirect to when route matches.
|
||||||
|
*
|
||||||
|
* @param string $where
|
||||||
|
* @param string $to
|
||||||
|
* @param int $httpCode
|
||||||
|
* @return IRoute
|
||||||
|
*/
|
||||||
|
public static function redirect($where, $to, $httpCode = 301): IRoute
|
||||||
|
{
|
||||||
|
return static::get($where, function () use ($to, $httpCode) {
|
||||||
|
static::response()->redirect($to, $httpCode);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Route the given url to your callback on GET request method.
|
* Route the given url to your callback on GET request method.
|
||||||
*
|
*
|
||||||
@@ -171,7 +187,7 @@ class SimpleRouter
|
|||||||
*/
|
*/
|
||||||
public static function get(string $url, $callback, array $settings = null): IRoute
|
public static function get(string $url, $callback, array $settings = null): IRoute
|
||||||
{
|
{
|
||||||
return static::match(['get'], $url, $callback, $settings);
|
return static::match([Route::REQUEST_TYPE_GET], $url, $callback, $settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -184,7 +200,7 @@ class SimpleRouter
|
|||||||
*/
|
*/
|
||||||
public static function post(string $url, $callback, array $settings = null): IRoute
|
public static function post(string $url, $callback, array $settings = null): IRoute
|
||||||
{
|
{
|
||||||
return static::match(['post'], $url, $callback, $settings);
|
return static::match([Route::REQUEST_TYPE_POST], $url, $callback, $settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -197,7 +213,7 @@ class SimpleRouter
|
|||||||
*/
|
*/
|
||||||
public static function put(string $url, $callback, array $settings = null): IRoute
|
public static function put(string $url, $callback, array $settings = null): IRoute
|
||||||
{
|
{
|
||||||
return static::match(['put'], $url, $callback, $settings);
|
return static::match([Route::REQUEST_TYPE_PUT], $url, $callback, $settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -210,7 +226,7 @@ class SimpleRouter
|
|||||||
*/
|
*/
|
||||||
public static function patch(string $url, $callback, array $settings = null): IRoute
|
public static function patch(string $url, $callback, array $settings = null): IRoute
|
||||||
{
|
{
|
||||||
return static::match(['patch'], $url, $callback, $settings);
|
return static::match([Route::REQUEST_TYPE_PATCH], $url, $callback, $settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -223,7 +239,7 @@ class SimpleRouter
|
|||||||
*/
|
*/
|
||||||
public static function options(string $url, $callback, array $settings = null): IRoute
|
public static function options(string $url, $callback, array $settings = null): IRoute
|
||||||
{
|
{
|
||||||
return static::match(['options'], $url, $callback, $settings);
|
return static::match([Route::REQUEST_TYPE_OPTIONS], $url, $callback, $settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -337,9 +353,7 @@ class SimpleRouter
|
|||||||
$route->setSettings($settings);
|
$route->setSettings($settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
static::router()->addRoute($route);
|
return static::router()->addRoute($route);
|
||||||
|
|
||||||
return $route;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -359,9 +373,7 @@ class SimpleRouter
|
|||||||
$route->setSettings($settings);
|
$route->setSettings($settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
static::router()->addRoute($route);
|
return static::router()->addRoute($route);
|
||||||
|
|
||||||
return $route;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -381,9 +393,7 @@ class SimpleRouter
|
|||||||
$route->setSettings($settings);
|
$route->setSettings($settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
static::router()->addRoute($route);
|
return static::router()->addRoute($route);
|
||||||
|
|
||||||
return $route;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -403,9 +413,7 @@ class SimpleRouter
|
|||||||
$route->setSettings($settings);
|
$route->setSettings($settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
static::router()->addRoute($route);
|
return static::router()->addRoute($route);
|
||||||
|
|
||||||
return $route;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -7,14 +7,104 @@ require_once 'Dummy/Handler/ExceptionHandler.php';
|
|||||||
class InputHandlerTest extends \PHPUnit\Framework\TestCase
|
class InputHandlerTest extends \PHPUnit\Framework\TestCase
|
||||||
{
|
{
|
||||||
|
|
||||||
public function testGet()
|
|
||||||
{
|
|
||||||
$this->assertEquals(true, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testPost()
|
public function testPost()
|
||||||
{
|
{
|
||||||
$this->assertEquals(true, true);
|
global $_POST;
|
||||||
|
|
||||||
|
$names = [
|
||||||
|
'Lester',
|
||||||
|
'Michael',
|
||||||
|
'Franklin',
|
||||||
|
'Trevor',
|
||||||
|
];
|
||||||
|
|
||||||
|
$day = 'monday';
|
||||||
|
|
||||||
|
$_POST = [
|
||||||
|
'names' => $names,
|
||||||
|
'day' => $day,
|
||||||
|
];
|
||||||
|
|
||||||
|
$router = TestRouter::router();
|
||||||
|
$router->reset();
|
||||||
|
$router->getRequest()->setMethod('post');
|
||||||
|
|
||||||
|
$handler = TestRouter::request()->getInputHandler();
|
||||||
|
|
||||||
|
$this->assertEquals($names, $handler->value('names'));
|
||||||
|
$this->assertEquals($names, $handler->all(['names'])['names']);
|
||||||
|
$this->assertEquals($day, $handler->value('day'));
|
||||||
|
$this->assertInstanceOf(\Pecee\Http\Input\InputItem::class, $handler->find('day'));
|
||||||
|
$this->assertInstanceOf(\Pecee\Http\Input\InputItem::class, $handler->post('day'));
|
||||||
|
|
||||||
|
// Check non-existing and wrong request-type
|
||||||
|
$this->assertEmpty($handler->all(['non-existing']));
|
||||||
|
$this->assertNull($handler->value('non-existing'));
|
||||||
|
$this->assertNull($handler->find('non-existing'));
|
||||||
|
$this->assertNull($handler->value('names', null, 'get'));
|
||||||
|
$this->assertNull($handler->find('names', 'get'));
|
||||||
|
|
||||||
|
$objects = $handler->find('names');
|
||||||
|
|
||||||
|
$this->assertCount(4, $objects);
|
||||||
|
|
||||||
|
/* @var $object \Pecee\Http\Input\InputItem */
|
||||||
|
foreach($objects as $i => $object) {
|
||||||
|
$this->assertInstanceOf(\Pecee\Http\Input\InputItem::class, $object);
|
||||||
|
$this->assertEquals($names[$i], $object->getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
$_POST = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testGet()
|
||||||
|
{
|
||||||
|
global $_GET;
|
||||||
|
|
||||||
|
$names = [
|
||||||
|
'Lester',
|
||||||
|
'Michael',
|
||||||
|
'Franklin',
|
||||||
|
'Trevor',
|
||||||
|
];
|
||||||
|
|
||||||
|
$day = 'monday';
|
||||||
|
|
||||||
|
$_GET = [
|
||||||
|
'names' => $names,
|
||||||
|
'day' => $day,
|
||||||
|
];
|
||||||
|
|
||||||
|
$router = TestRouter::router();
|
||||||
|
$router->reset();
|
||||||
|
$router->getRequest()->setMethod('get');
|
||||||
|
|
||||||
|
$handler = TestRouter::request()->getInputHandler();
|
||||||
|
|
||||||
|
$this->assertEquals($names, $handler->value('names'));
|
||||||
|
$this->assertEquals($names, $handler->all(['names'])['names']);
|
||||||
|
$this->assertEquals($day, $handler->value('day'));
|
||||||
|
$this->assertInstanceOf(\Pecee\Http\Input\InputItem::class, $handler->find('day'));
|
||||||
|
$this->assertInstanceOf(\Pecee\Http\Input\InputItem::class, $handler->get('day'));
|
||||||
|
|
||||||
|
// Check non-existing and wrong request-type
|
||||||
|
$this->assertEmpty($handler->all(['non-existing']));
|
||||||
|
$this->assertNull($handler->value('non-existing'));
|
||||||
|
$this->assertNull($handler->find('non-existing'));
|
||||||
|
$this->assertNull($handler->value('names', null, 'post'));
|
||||||
|
$this->assertNull($handler->find('names', 'post'));
|
||||||
|
|
||||||
|
$objects = $handler->find('names');
|
||||||
|
|
||||||
|
$this->assertCount(4, $objects);
|
||||||
|
|
||||||
|
/* @var $object \Pecee\Http\Input\InputItem */
|
||||||
|
foreach($objects as $i => $object) {
|
||||||
|
$this->assertInstanceOf(\Pecee\Http\Input\InputItem::class, $object);
|
||||||
|
$this->assertEquals($names[$i], $object->getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
$_GET = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testFile()
|
public function testFile()
|
||||||
|
|||||||
Reference in New Issue
Block a user