У меня есть приложение, которое использует Laravel в сочетании с Wordpress.
Теперь у Laravel есть маршруты, а также wordpress.
Я хочу проверить в public / index.php, соответствует ли URL-адрес маршруту Laravel или маршруту Wordpress.
Итак, что-то вроде этого работает, но я хочу динамически заполнить массив $ laravelRoutes, но на этом уровне нет подключения к базе данных.
Как я могу этого добиться правильно?
общедоступный / index.php
$actual_link = "$_SERVER[REQUEST_URI]";
$parts = explode('/',$actual_link);
$laravelRoutes = ['admin','rest'];
if (isset($parts[1])&& in_array($parts[1],$laravelRoutes) ){
/**
* Laravel - A PHP Framework For Web Artisans
*/
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../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);
}else{
/*
// Loads the WordPress Environment and Template
*/
define('WP_USE_THEMES', true);
require( dirname( __FILE__ ) . '/wp/wp-blog-header.php' );
}
@ThomasMoors простой, используйте Laravel и поместите wordpress в папку wp / в общедоступную, и она работает, нет MONSTER: P.

Что насчет этого решения:
в web.php
// laravel route 1
// laravel route 2
Route::any('/{wordpress_slug}', function ($wordpress_slug) {
require_once('wordpress/index.php');
});
Таким образом, все легко делать из Laravel.
Это действительно работает? Любые зависимости, такие как lumenpress / laravel?
@ScraperDave, это работает, да, потому что require - это просто php
Отвечать: Я получаю маршруты из Laravel и проверяю это.
$actual_link = "$_SERVER[REQUEST_URI]";
$parts = explode('/',$actual_link);
$laravelRoutes = ['zcalendar','rest'];
if (isset($parts[1])&& in_array($parts[1],$laravelRoutes) ) {
/**
* Laravel - A PHP Framework For Web Artisans
*/
require __DIR__ . '/../bootstrap/autoload.php';
$app = require_once __DIR__ . '/../bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$app = app();
$routes = $app->routes->getRoutes();
$exceptions = ['{uri}', 'home', '/'];
foreach ($routes as $route) {
if (in_array($route->uri, $exceptions)) {
continue;
}
$routePart = explode('/', $route->uri);
if ($parts[1] == $routePart[0]) {
$response->send();
$kernel->terminate($request, $response);
}
}
}else{
/*
// Loads the WordPress Environment and Template
*/
define('WP_USE_THEMES', true);
require( dirname( __FILE__ ) . '/wp/wp-blog-header.php' );
}
Как можно "совместить" laravel и wordpress? У каждого из них есть собственный файл записи index.php. Конечно, вы можете включить одно в другое. Но такое чувство, что вы могли создать небезопасного монстра Франкенштейна.