在索引文件中确定Laravel或Wordpress路由

在索引文件中确定Laravel或Wordpress路由,wordpress,laravel,Wordpress,Laravel,我有一个使用Laravel和Wordpress的应用程序 现在拉威尔有了路由和wordpress 我想在public/index.php中检查url是否与Laravel路由或Wordpress路由对应 所以,类似这样的方法是可行的,但我想动态填充$laravelRoutes数组,但在该级别上没有数据库连接 我怎样才能正确地做到这一点 public/index.php $actual_link = "$_SERVER[REQUEST_URI]"; $parts = explode('/',$act

我有一个使用Laravel和Wordpress的应用程序

现在拉威尔有了路由和wordpress

我想在public/index.php中检查url是否与Laravel路由或Wordpress路由对应

所以,类似这样的方法是可行的,但我想动态填充$laravelRoutes数组,但在该级别上没有数据库连接

我怎样才能正确地做到这一点

public/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' );
}
// laravel route 1

// laravel route 2

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

    require_once('wordpress/index.php');

});

这个解决方案怎么样:

web.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' );
}
// laravel route 1

// laravel route 2

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

    require_once('wordpress/index.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' );
}

如何“结合”拉威尔和wordpress?它们都有自己的index.php条目文件。当然,您可以在另一个中包含1。但是感觉你可能创造了一个不安全的弗兰肯斯坦怪兽。@ThomasMoors简单,使用Laravel,将wp/文件夹中的wordpress放到公共场所,它就工作了,没有怪兽:P。这真的工作吗?任何像lumenpress/laravel?@ScraperDave这样的依赖项都可以使用,因为require只是普通的php