我尝试通过将此代码放入 laravel 项目目录中的 (public/index.php) 文件中来在我的 laravel 项目中引导 drupal API:
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
define('DRUPAL_ROOT', $DOCUMENT_ROOT.'drupal738');
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
引导代码取自 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 代码库中重构(重命名)函数。
关于php - 在 Laravel 项目中使用 Drupal API 时函数重新声明错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33332635/