在 Laravel 项目中使用 Drupal API 时函数重新声明错误
Function redeclaring error when using Drupal API in Laravel project
我试图通过将此代码放入 (public/index.[=32= 中 bootstrap drupal API 在我的 laravel 项目中]) 文件在 laravel 项目目录中:
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
define('DRUPAL_ROOT', $DOCUMENT_ROOT.'drupal738');
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
bootstrap 代码取自 drupal 网站:
https://api.drupal.org/api/drupal/includes!bootstrap.inc/function/drupal_bootstrap/7
但是当我打开 laravel 项目的登录页面时,出现以下错误:
Fatal error: Cannot redeclare url() (previously declared in C:\wamp\www\laravelTest\vendor\laravel\framework\src\Illuminate\Foundation\helpers.php:566) in C:\wamp\www\drupal738\includes\common.inc on line 2333
那是因为 laravel 和 drupal 中都定义了一些具有相同名称的函数,例如 url()
和 base_path()
.
那么有什么方法可以解决这个问题而不破坏 laravel 或 Drupal 方面的任何东西吗?
这就是为什么全局函数是不好的做法。您最终可以深入研究 drupal 代码并删除 laravel 中具有相同名称的函数,如果它们不会影响其余代码,或者您可以使用一些智能 IDE 在 drupal 代码库中重构(重命名)函数].
我试图通过将此代码放入 (public/index.[=32= 中 bootstrap drupal API 在我的 laravel 项目中]) 文件在 laravel 项目目录中:
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
define('DRUPAL_ROOT', $DOCUMENT_ROOT.'drupal738');
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
bootstrap 代码取自 drupal 网站:
https://api.drupal.org/api/drupal/includes!bootstrap.inc/function/drupal_bootstrap/7
但是当我打开 laravel 项目的登录页面时,出现以下错误:
Fatal error: Cannot redeclare url() (previously declared in C:\wamp\www\laravelTest\vendor\laravel\framework\src\Illuminate\Foundation\helpers.php:566) in C:\wamp\www\drupal738\includes\common.inc on line 2333
那是因为 laravel 和 drupal 中都定义了一些具有相同名称的函数,例如 url()
和 base_path()
.
那么有什么方法可以解决这个问题而不破坏 laravel 或 Drupal 方面的任何东西吗?
这就是为什么全局函数是不好的做法。您最终可以深入研究 drupal 代码并删除 laravel 中具有相同名称的函数,如果它们不会影响其余代码,或者您可以使用一些智能 IDE 在 drupal 代码库中重构(重命名)函数].