This commit is contained in:
2024-07-03 14:41:15 +03:00
commit ec69208f05
1892 changed files with 181728 additions and 0 deletions

View File

@ -0,0 +1,32 @@
<?php
include __DIR__ . '/../vendor/autoload.php';
use Phroute\Phroute\RouteCollector;
use Phroute\Phroute\Dispatcher;
$collector = new RouteCollector();
$USER_SESSION = false;
$collector->filter('auth', function() use(&$USER_SESSION){
if(!$USER_SESSION)
{
return "Nope! Must be authenticated";
}
});
$collector->group(array('before' => 'auth'), function(RouteCollector $collector){
$collector->get('/', function(){
return 'Hurrah! Home Page';
});
});
$dispatcher = new Dispatcher($collector->getData());
echo $dispatcher->dispatch('GET', '/'), "\n"; // Nope! Must be authenticated
$USER_SESSION = true;
echo $dispatcher->dispatch('GET', '/'), "\n"; // Hurrah! Home Page

View File

@ -0,0 +1,29 @@
<?php
include __DIR__ . '/../vendor/autoload.php';
use Phroute\Phroute\RouteCollector;
use Phroute\Phroute\Dispatcher;
$collector = new RouteCollector();
$collector->group(array('prefix' => 'admin'), function(RouteCollector $collector){
$collector->get('pages', function(){
return 'page management';
});
$collector->get('products', function(){
return 'product management';
});
$collector->get('orders', function(){
return 'order management';
});
});
$dispatcher = new Dispatcher($collector->getData());
echo $dispatcher->dispatch('GET', '/admin/pages'), "\n"; // page management
echo $dispatcher->dispatch('GET', '/admin/products'), "\n"; // product management
echo $dispatcher->dispatch('GET', '/admin/orders'), "\n"; // order management

View File

@ -0,0 +1,36 @@
<?php
include __DIR__ . '/../vendor/autoload.php';
use Phroute\Phroute\RouteCollector;
use Phroute\Phroute\Dispatcher;
$collector = new RouteCollector();
$collector->filter('auth', function(){
return "Nope!";
});
$collector->group(array('prefix' => 'admin'), function(RouteCollector $collector){
$collector->group(['before' => 'auth'], function(RouteCollector $collector){
$collector->get('pages', function(){
return 'page management';
});
$collector->get('products', function(){
return 'product management';
});
});
// Not inside auth group
$collector->get('orders', function(){
return 'Order management';
});
});
$dispatcher = new Dispatcher($collector->getData());
echo $dispatcher->dispatch('GET', '/admin/pages'), "\n"; // Nope!
echo $dispatcher->dispatch('GET', '/admin/products'), "\n"; // Nope!
echo $dispatcher->dispatch('GET', '/admin/orders'), "\n"; // order management

View File

@ -0,0 +1,27 @@
<?php
error_reporting(-1);
ini_set('display_errors', 1);
include __DIR__ . '/../vendor/autoload.php';
use Phroute\Phroute\RouteCollector;
use Phroute\Phroute\Dispatcher;
$collector = new RouteCollector();
$collector->get('/', function(){
return 'Home Page';
});
$collector->post('products', function(){
return 'Create Product';
});
$collector->put('items/{id}', function($id){
return 'Amend Item ' . $id;
});
$dispatcher = new Dispatcher($collector->getData());
echo $dispatcher->dispatch($_SERVER['REQUEST_METHOD'], parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)); // Home Page
//echo $dispatcher->dispatch('POST', '/products'), "\n"; // Create Product
//echo $dispatcher->dispatch('PUT', '/items/123'), "\n"; // Amend Item 123