php - 在 Laravel 项目中使用 Drupal API 时函数重新声明错误

标签 php laravel drupal drupal-7 laravel-5

我尝试通过将此代码放入 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/

相关文章:

php - 有没有一种简单的方法可以从 PHP 中的 SQL 时间戳获取 Unix 时间戳?

php - 来自 MySQL JSON 编码数组的 Google 图表

php - Elasticsearch映射时应该同时使用索引和分析器

mysql - MAMP MySQL innodb 和丢失错误

php - Drupal 7 架构中的日期时间类型

PHP:如何快速将键=值文件拆分为关联数组

php - 在选择类别上使用单选输入而不是复选框 - Wordpress

node.js - 代理错误 : Could not proxy request/api/register from localhost:3000 to http://localhost:8000/(ECONNREFUSED)

mysql - 如何在mysql上用空字符串替换所有null

drupal - 仅打印 drupal field_view_field 值