Php 框架外的路由组件

Php 框架外的路由组件,php,laravel,Php,Laravel,我有一个简单的composer.json文件: { "require": { "illuminate/routing": "4.1.*" } } 和index.php: <?php require_once 'vendor/autoload.php'; $router = new Illuminate\Routing\Route(); $router->get('/', function(){ echo 'test'; }); <

我有一个简单的composer.json文件:

{
    "require": {
        "illuminate/routing": "4.1.*"
    }
}
和index.php:

<?php

require_once 'vendor/autoload.php';

$router = new Illuminate\Routing\Route();

$router->get('/', function(){
   echo 'test';
});
<?php

require_once 'vendor/autoload.php';

$dispatcher = new Illuminate\Events\Dispatcher;
$router = new Illuminate\Routing\Router($dispatcher);

$router->get('/', function(){
   return 'test';
});

$request = Illuminate\Http\Request::createFromGlobals();
$response = $router->dispatch($request);
$response->send();

目前,Laravel的一些组件的设计方式不便于单独使用

然而,通过一些黑客攻击,我让它开始工作:

index.php:

<?php

require_once 'vendor/autoload.php';

$router = new Illuminate\Routing\Route();

$router->get('/', function(){
   echo 'test';
});
<?php

require_once 'vendor/autoload.php';

$dispatcher = new Illuminate\Events\Dispatcher;
$router = new Illuminate\Routing\Router($dispatcher);

$router->get('/', function(){
   return 'test';
});

$request = Illuminate\Http\Request::createFromGlobals();
$response = $router->dispatch($request);
$response->send();

您需要为Laravel设置漂亮的URI

事实上,它们设计得非常好,实际上并不依赖于Laravels的精确实现,它们依赖于接口的实现,这是一种很好的解耦组件的方法,而不需要大量重复的代码,在路由器内部复制请求接口,这样就可以单独使用是没有意义的。这篇文章救了我一天。非常感谢你!