diff --git a/docs/20_Usage.md b/docs/20_Usage.md index 25e941e7ac4d215f9710817aab4f4e07c7c0d502..2059f1a6dcbb743a76294fc95bce2c579543e30d 100644 --- a/docs/20_Usage.md +++ b/docs/20_Usage.md @@ -1,13 +1,18 @@ - ## Example -## Config +### Load class ```php - // load the class require_once('../classes/tinyrouter.class.php'); +``` + +### Config + +Define the routes as array elements. +First item is a route. The 2nd item is something you get back as callback item of a matching route. Here are strings but you can define other variable types like objects here. +```php // define routes $aRoutes=[ [ "/config", "get_config" ], @@ -23,7 +28,11 @@ $aRoutes=[ // @var = set a variable // @var:regex = set variable if it matches the given regex ]; +``` + +### Initialize router +```php // take an url ... or use the request uri if you have pretty urls $sApiUrl=isset($_GET['request']) && $_GET['request'] ? $_GET['request'] : false; @@ -34,7 +43,11 @@ $oRouter=new tinyrouter($aRoutes, $sApiUrl); // $oRouter=new tinyrouter(); // $oRouter->setRoutes($aRoutes); // $oRouter->setUrl($sApiUrl); +``` +### Find route + +```php // get the last matching route $aFoundRoute=$oRouter->getRoute(); if(!$aFoundRoute){ @@ -73,6 +86,8 @@ Array If no route matches - or a variable did not match a required regex - then getRoute() returns *false*. +### Other getters + Maybe the keys of the array change in future. You can access the data with specialized getter functions: ```php @@ -96,4 +111,14 @@ $sItem=isset($oRouter->getUrlParts()[0]) ? $oRouter->getUrlParts()[0] : false; ``` With those elements you get from the router you easily cam build your switch case blocks to -execute the wanted method of your class. \ No newline at end of file +execute the wanted method of your class. + +### Get data + +The router is just a helper to map an url to something you can process. + +To continue with the variables above: you maybe want to execute the method with the name $sAction and 2 params: + +```php +$aData=$Obj->$sAction($sAppId, $sWhat); +``` diff --git a/docs/30_Methods.md b/docs/30_Methods.md new file mode 100644 index 0000000000000000000000000000000000000000..01debac72896c7bae9665f944d2d7f2b6c5fe4ff --- /dev/null +++ b/docs/30_Methods.md @@ -0,0 +1,106 @@ +# tinyrouter.class.php + +<!-- BEGIN DOC-COMMENT H2 ../src/tinyrouter.class.php --> + +## namespace iml + +Axels first router + +--------------------------------------------------------------------------------<br> <br> THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE <br> LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR <br> OTHER PARTIES PROVIDE THE PROGRAM ?AS IS? WITHOUT WARRANTY OF ANY KIND, <br> EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED <br> WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE <br> ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. <br> SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY <br> SERVICING, REPAIR OR CORRECTION.<br> <br> --------------------------------------------------------------------------------<br> * + +## public function __construct($aRoutes=[],$sUrl=false) + +constructor +**Parameters:** + +Var | Type | Desciption +-- |-- |-- +array | $aRoutes | array of routes +string | $sUrl | incoming url + +**Return:** + + boolean + +## protected function _getRoute() + +detect last matching route item if no route matches then it returns false +**Return:** + + array + +## public function setRoutes($aRoutes=[]) + +set routes +**Parameters:** + +Var | Type | Desciption +-- |-- |-- +$aRoutes | array | list of [ route, more params ... ] + +**Return:** + + boolean + +## public function setUrl($sUrl) + +set incoming url, add the request behind protocol and domain. +**Parameters:** + +Var | Type | Desciption +-- |-- |-- +sUrl | string | url to fetch; /api/v1/productbyid/3424084 + +**Return:** + + boolean + +## public function getUrlParts($sUrl=false) + +helper function: get url request parts as array +**Parameters:** + +Var | Type | Desciption +-- |-- |-- +$sUrl | string | url to handle; /api/v1/productbyid/3424084 + +**Return:** + + array + +## public function getRoute() + +detect last matching route item if no route matches then it returns false +**Return:** + + array|bool + +## public function getCallback() + +return the callback iten of the matching route If no route was matching it returns false +**Return:** + + {*} + +## public function getVars() + +return the variables as keys in route parts with starting @ character +**Return:** + + array + +## public function getVar($sVarname) + +return the variables as keys in route parts with starting @ character +**Return:** + + string + +## public function getSubitems() + +get an array with next level route entries releative to the current route +**Return:** + + array + +<!-- END DOC-COMMENT --> \ No newline at end of file diff --git a/docs/_index.md b/docs/_index.md index 6c47c73e0389145182d4770d6502a63569ca7748..f6884641c9d9e70f6f4dd9aebc09fcfebc82e1de 100644 --- a/docs/_index.md +++ b/docs/_index.md @@ -10,4 +10,4 @@ Institute for Medical Education; University of Bern 📄 Source: <https://git-repo.iml.unibe.ch/iml-open-source/tinyrouter-php-class> \ 📜 License: GNU GPL 3.0 \ -📖 Docs: <https://os-docs.iml.unibe.ch/tinyrouter-php-class/> +📗 Docs: <https://os-docs.iml.unibe.ch/tinyrouter-php-class/> diff --git a/docs/_update_docblocs.sh b/docs/_update_docblocs.sh new file mode 100755 index 0000000000000000000000000000000000000000..11c7faadb547d998abfa4965c6870429d83ef5d7 --- /dev/null +++ b/docs/_update_docblocs.sh @@ -0,0 +1,3 @@ +#!/bin/bash +cd "$( dirname "$0")" || exit 1 +docblox2md -v 30_Methods.md