Я пытаюсь создать концептуальное подтверждение для решения следующей проблемы: мне нужно реорганизовать приложение Kohana в Laraval, но мы продолжаем добавлять новые функции и разрабатывать приложение. Поэтому кодовая база Kohana и Laravel должны некоторое время работать вместе.
Для подтверждения концепции я беру два приложения Laravel, одно из которых имитирует старое приложение Kohana.
Решение, которое я имею в виду, заключается в создании Middleware или поставщика услуг в приложении Laravel, которое проверяет, может ли маршрут быть разрешен в этом Laravel. В случае, если он не может разрешить маршрут, другое приложение должно быть загружено для выполнения запроса.
Когда я пытаюсь bootstrap второй Laravel из класса промежуточного программного обеспечения первого следующего появляется ошибка:
Target class [App\Http\Middleware\Illuminate\Contracts\Http\Kernel] does not exist.
При выполнении следующей строки:
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
Функция связующего программного обеспечения:
public function handle($request, Closure $next)
{
$routes = Route::getRoutes();
try {
//route exists
$routes->match($request);
return $next($request);
}
catch (\Symfony\Component\HttpKernel\Exception\NotFoundHttpException $e){
//route doesn't exist
// define('LARAVEL_START', microtime(true));
require_once env('LARAVEL_FILE_PATH').'/vendor/autoload.php';
$app = require_once env('LARAVEL_FILE_PATH').'/bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$response->send();
$kernel->terminate($request, $response);
exit;
}
}
Кто-нибудь имеет представление о том, что идет не так или может быть есть предложение по другому решению?