PHP code example of dframe / router
1. Go to this page and download the library: Download dframe/router library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
dframe / router example snippets
$this->router->addRoute([
'page/:method' => [
'page/[method]/',
'task=page&action=[method]'
]
]);
$this->router->makeUrl('page/:action?action=index'); // Return: https://example.php/page/index
$this->router->isActive('page/:action?action=index'); // Current Website true/false
'_params' => [
'[name]/[value]/',
'[name]=[value]'
]
return [
'https' => false,
'NAME_CONTROLLER' => 'page', // Default Controller for router
'NAME_METHOD' => 'index', // Default Action for router
'publicWeb' => '', // Path for public web (web or public_html)
'assets' => [
'minifyCssEnabled' => true,
'minifyJsEnabled' => true,
'assetsDir' => 'assets',
'assetsPath' => APP_DIR.'View/',
'cacheDir' => 'cache',
'cachePath' => APP_DIR.'../web/',
'cacheUrl' => HTTP_HOST.'/',
],
'routes' => [
'docs/:page' => [
'docs/[page]/',
'task=Page&action=[page]&type=docs'
],
'methods/example/:exampleId' => [
'methods/example/[exampleId]',
'methods' => [
'GET' => 'task=Methods,Example&action=get&exampleid=[exampleId]',
'POST' => 'task=Methods,Example&action=post&exampleid=[exampleId]',
]
],
'error/:code' => [
'error/[code]/',
'task=Page&action=error&type=[code]',
'code' => '([0-9]+)',
'args' => [
'code' => '[code]'
],
],
':task/:action' => [
'[task]/[action]/[params]',
'task=[task]&action=[action]',
'params' => '(.*)',
'_params' => [
'[name]/[value]/',
'[name]=[value]'
]
],
'default' => [
'[task]/[action]/[params]',
'task=[task]&action=[action]',
'params' => '(.*)',
'_params' => [
'[name]/[value]/',
'[name]=[value]'
]
]
]
];
namespace Controller;
use Dframe\Controller;
use Dframe\Router\Response;
class PageController extends Controller
{
/**
* @return bool
*/
public function index()
{
echo $this->router->makeUrl('docs/:docsId?docsId=23');
return;
}
/**
* @return mixed
*/
public function docs()
{
if (!isset($_GET['docsId'])) {
return $this->router->redirect('error/:code?code=404');
}
}
/**
* @param string $status
*
* @return mixed
*/
public function error($status = '404')
{
$routerCodes = $this->router->response();
if (!array_key_exists($status, $routerCodes::$code)) {
return $this->router->redirect('error/:code?code=500');
}
$view = $this->loadView('index');
$smartyConfig = Config::load('view/smarty');
$patchController = $smartyConfig->get('setTemplateDir', APP_DIR . 'View/templates') . '/errors/' . htmlspecialchars($status) . $smartyConfig->get('fileExtension', '.html.php');
if (!file_exists($patchController)) {
return $this->router->redirect('error/:code?code=404');
}
$view->assign('error', $routerCodes::$code[$status]);
return Response::create($view->fetch('errors/' . htmlspecialchars($status)))->headers(['refresh' => '4;' . $this->router->makeUrl(':task/:action?task=page&action=index')]);
}
}
https://
namespace View;
use Dframe\Asset\Assetic;
class IndexView extends \View\View
{
/**
* @return bool
*/
public function init()
{
$this->router->assetic = new Assetic();
$this->assign('router', $this->router);
}
}
return Response::create('Hello Word!')
->status(200)
->headers([
'Expires' => 'Mon, 26 Jul 1997 05:00:00 GMT',
'Cache-Control' => 'no-cache',
'Pragma',
'no-cache'
]);
return Response::renderJSON(['code' => 200, 'data' => []]);
return Response::renderJSONP(['code' => 200, 'data' => []]);
return Response::redirect(':task/:action?task=page&action=login');