1. Go to this page and download the library: Download dcp/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/ */
dcp / router example snippets
use DCP\Router;
$mvcRouter = new Router\MvcRouter();
$restRouter = new Router\RestRouter();
use DCP\Router\MvcRouter;
class TestController
{
public function indexAction($arg = null)
{
echo __METHOD__ . ', ' . $arg;
}
}
class HomeController
{
public function testAction()
{
echo __METHOD__;
}
}
$router = new MvcRouter();
$router->dispatch('/test/index/hello');
// This will output "TestController::indexAction, hello"
$router->dispatch('/home/test');
// This will output "HomeController::testAction"
use DCP\Router\RestRouter;
class UsersController
{
public function get()
{
echo __METHOD__;
}
public function post($arg = null)
{
echo __METHOD__ . ', ' . $arg;
}
}
$router = new RestRouter();
$router->dispatch('/users/hello', 'post');
// This will output "UsersController::post, hello"
$router->dispatch('/users', 'get');
// This will output "UsersController::get"
use DCP\Router\MvcRouter;
class IndexController
{
public function indexAction()
{
echo __METHOD__;
}
}
class HomeController
{
public function indexAction()
{
echo __METHOD__;
}
}
$router = new MvcRouter();
$router->dispatch('/');
// This will output "IndexController::indexAction"
$router->dispatch('/home');
// This will output "HomeController::indexAction"
use DCP\Router\RestRouter;
class IndexController
{
public function get()
{
echo __METHOD__;
}
}
class HomeController
{
public function get()
{
echo __METHOD__;
}
public function post()
{
echo __METHOD__;
}
}
$router = new RestRouter();
$router->dispatch('/');
// This will output "IndexController::get"
$router->dispatch('/home');
// This will output "HomeController::get"
$router->dispatch('/home', 'post');
// This will output "HomeController::post"
use DCP\Router\MvcRouter;
$router = new MvcRouter(); // RestRouter can be used here, too.
try {
$router->dispatch('/home');
} catch (NotFoundException $e) {
echo 'Could not find /home!!';
}
// App/Controller/TestController.php
namespace App\Controller;
class TestController
{
public function helloAction()
{
echo 'Hello, world!';
}
}
// index.php
use DCP\Router\MvcRouter;
$router = new MvcRouter();
$router->setControllerPrefix('App\Controller');
$router->dispatch('/test/hello');
// This will output "Hello, world!"
// App/Admin/Controller/TestController.php
namespace App\Admin\Controller;
class TestController
{
public function helloAction()
{
echo 'Hello, world!';
}
}
// App/Admin/AdminRouter.php
namespace App\Admin;
use DCP\Router\MvcRouter;
class AdminRouter extends MvcRouter
{
public function __construct()
{
parent::__construct();
$this->setControllerPrefix('App\Admin\Controller');
}
}
// index.php
use DCP\Router\MvcRouter;
$router = new MvcRouter();
$router->setComponents([
'admin' => 'App\Admin\AdminRouter'
]);
$router->dispatch('/admin/test/hello');
// This will output "Hello, world!"
use DCP\Router\MvcRouter;
use DCP\Router\ControllerEvents;
use DCP\Router\Event\CreatingEvent;
class TestControllerHi
{
public function indexAction()
{
echo 'Hello!!'
}
}
$router = new MvcRouter();
$router->on(ControllerEvents::CREATING, function (CreatingEvent $event) {
$event->setClass($event->getClass() . 'Hi');
});
$router->dispatch('/test');
// This will output "Hello!!"
use DCP\Router\MvcRouter;
use DCP\Router\ControllerEvents;
use DCP\Router\ComponentEvents;
use DCP\Di\Container;
use DCP\Di\ContainerAwareInterface;
class DiMvcRouter extends MvcRouter implements ContainerAwareInterface
{
protected $container;
public function setContainer(Container $container)
{
$this->container = $container;
}
public function __construct()
{
parent::__construct();
$createCallback = function (CreateEvent $event) {
$container = $this->container;
$class = $event->getClass();
$event->setInstance($container->get($class));
};
$this->removeAllListeners(ControllerEvents::CREATE);
$this->on(ControllerEvents::CREATE, $createCallback);
$this->removeAllListeners(ComponentEvents::CREATE);
$this->on(ComponentEvents::CREATE, $createCallback);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.