我已经尝试通过将此代码放在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那边破坏任何东西吗?
答案 0 :(得分:2)
这就是为什么全球功能是不好的做法。您最终可以深入研究drupal代码并删除与laravel相同名称的函数,如果它们不会影响其余代码,或者您可以使用一些智能IDE在drupal代码库中重构(重命名)函数。