2016-05-15 3 views
0

Im пытается настроить phroute в подкаталоге. Это то, что я сделал до сих пор, чтобы заставить его работать, но безуспешно.Настройка phroute в подкаталоге

Первый. В папке, которую я выбираю, звоните framework, я побежал composer require phroute/phroute.

Второй. Затем я создал папку /public. Итак, теперь в папке framework у меня есть:

composer.json 
composer.lock 
public 
vendor 

В-третьих. В папке /public я потрогать index.php и добавить следующее:

<?php 
require '../vendor/autoload.php'; 

use Phroute\Phroute\RouteCollector; 

$router = new RouteCollector(); 

$router->get('/', function(){ 
    return 'Hello, 

Четвертое. В подкаталоге framework я потрогать .htaccess и добавить следующее:

RewriteEngine On 
RewriteBase /framework/ 

RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC] 
RewriteRule^%1 [L,NE,R=302] 

RewriteRule ^((?!public/).*)$ public/$1 [L,NC] 

Так что, когда я ударил его http://localhost:8888/framework/ просто пустой, никаких ошибок нет ничего. Когда у вас есть только lorum ipsum в index.php, он отображается.

Структура папки выглядит так:

├── composer.json 
├── composer.lock 
├── public 
│   └── index.php 
└── vendor 
    ├── autoload.php 
    ├── bin 
    ├── composer 
    │   ├── ClassLoader.php 
    │   ├── LICENSE 
    │   ├── autoload_classmap.php 
    │   ├── autoload_namespaces.php 
    │   ├── autoload_psr4.php 
    │   ├── autoload_real.php 
    │   ├── autoload_static.php 
    │   └── installed.json 
    └── phroute 
     └── phroute 
      ├── LICENSE 
      ├── README.md 
      ├── benchmark 
      │   └── simple.php 
      ├── composer.json 
      ├── examples 
      │   ├── route_filters.php 
      │   ├── route_prefix.php 
      │   ├── route_prefix_and_filter_nested.php 
      │   └── simple.php 
      ├── phpunit.xml 
      ├── src 
      │   └── Phroute 
      │    ├── Dispatcher.php 
      │    ├── Exception 
      │    │   ├── BadRouteException.php 
      │    │   ├── HttpException.php 
      │    │   ├── HttpMethodNotAllowedException.php 
      │    │   └── HttpRouteNotFoundException.php 
      │    ├── HandlerResolver.php 
      │    ├── HandlerResolverInterface.php 
      │    ├── Route.php 
      │    ├── RouteCollector.php 
      │    ├── RouteDataArray.php 
      │    ├── RouteDataInterface.php 
      │    ├── RouteDataProviderInterface.php 
      │    └── RouteParser.php 
      └── test 
       └── Dispatcher 
        └── DispatcherTest.php 

Я думаю, что это, возможно, придется что-то делать с файлом .htaccess. Но у меня нет идеала, что я делаю неправильно.

ответ

0

вам нужно добавить следующее

$dispatcher = new Phroute\Phroute\Dispatcher($router->getData()); 
echo $dispatcher->dispatch($_SERVER['REQUEST_METHOD'], parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)); 

я имел проблему тоже. С уважением

Смежные вопросы