php - Error de redeclación de función cuando se usa la API de Drupal en el proyecto Laravel
drupal-7 laravel-5 (1)
Intenté reiniciar API drupal dentro de mi proyecto laravel colocando este código dentro del archivo (public / index.php) en el directorio del proyecto laravel:
$DOCUMENT_ROOT = $_SERVER[''DOCUMENT_ROOT''];
define(''DRUPAL_ROOT'', $DOCUMENT_ROOT.''drupal738'');
require_once DRUPAL_ROOT . ''/includes/bootstrap.inc'';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
el código de arranque se toma del sitio web de drupal:
https://api.drupal.org/api/drupal/includes!bootstrap.inc/function/drupal_bootstrap/7
pero cuando abro la página de inicio de sesión en mi proyecto laravel aparece el siguiente error:
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
y eso es porque hay algunas funciones con los mismos nombres que se definen en laravel y drupal tales como url()
y base_path()
.
Entonces, ¿hay alguna forma de resolver esto sin romper nada en laravel o en Drupal?
Esta es la razón por la cual las funciones globales son malas prácticas. Eventualmente puede profundizar en el código drupal y eliminar la función con los mismos nombres como en laravel si no afectan el resto del código o puede refactorizar (renombrar) la función en la base de código drupal con algún IDE inteligente.