Выберите маршрут Laravel или Wordpress в индексном файле. - PullRequest
0 голосов
/ 04 июля 2018

У меня есть приложение, которое использует 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' );
}

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Ответ: Я получаю маршруты от Ларавела и проверяю это.

$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' );
}
0 голосов
/ 04 июля 2018

А как насчет этого решения:

in web.php

// laravel route 1

// laravel route 2

Route::any('/{wordpress_slug}', function ($wordpress_slug) {

    require_once('wordpress/index.php');

});

Таким образом, все легко сделать из Laravel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...