2015-01-08 2 views
2

Допустит есть вебы-PHP проект, который использует независимую структуру, а также содержит папку с Laravel 4.2:Включите Laravel в пользовательский PHP скрипт и маршрутизацию к контроллеру

project/ 
    laravel/ (Laravel install) 
     app/ 
      routes.php 
     public/ 
      index.php 
    index.php 
    test.php 
    .htaccess 

В .htaccess файл переписывает каждый запрос к независимой структуре index.php, если не запрошен PHP-скрипт (например, project/test.php).

В этом случае test.php содержит require laravel/public/index.php включить Laravel в index.php сценарий. URI для доступа к этому адресу - http://example.com/test.php.

Как я могу использовать Laravel's routing, чтобы поднять этот сценарий? Я попытался это:

Route::get('/test.php', function() 
{ 
    echo 'success';exit; 
}); 

Но это не работает (я пробовал test.php и просто тест). Демпинг Route::getCurrentRoute() выходов это:

object(Illuminate\Routing\Route)[126] 
    protected 'uri' => string '/' (length=1) 
    ... 
    protected 'compiled' => 
    object(Symfony\Component\Routing\CompiledRoute)[135] 
     ... 
     private 'staticPrefix' => string '/' (length=1) 
     ... 

Можно ли получить доступ к http://example.com/test.php и маршрутизации Laravel видит это, как если бы /test или /test.php было предложено, без внесения изменений в .htaccess файла независимой фреймворки?

+1

Я не понимаю, что вы _need_. Хотели бы вы использовать URL/test.php через Laravel, даже если это физический .php-файл на сервере? Это не сработает. Правила перезаписи Laravel явно делают физические файлы приоритетными по сравнению с внутренней маршрутизацией. Сделайте это наоборот: переместите его в непубличный путь, а затем настройте его как обычный маршрут Laravel и ресурсы _require_ из внешнего приложения. –

+0

Ну, в основном, я хочу использовать скрипт _test.php_ в качестве точки входа в контроллер. Я хотел бы написать маршрут в Laravel для подключения маршрута _/test.php_ к контроллеру. –

+0

Почему вы хотите сделать это? Что вы делаете внутри text.php? – lukasgeiter

ответ

1

Вы не обязаны использовать маршрутизацию Laravel, вы можете обойти его с чистым PHP:

if($_SERVER['REQUEST_URI'] === '/test.php') 
{ 
    exit('success'); 
} 

Но в вашем случае, вы, вероятно, следует перенаправить все запросы Laravel с .htaccess и падают обратно в корень index.php, когда Laravel не обрабатывает страницу:

App::missing(function($exception) 
{ 
    include('../../index.php'); 
    exit; 
}); 
Смежные вопросы