Estoy tratando de crear instancias de entidad de Drupal a partir de un script externo que no es parte de Drupal o un módulo de Drupal.
Para Drupal 7 había drupal_bootstrap
que cargar las dependencias de Drupal requeridas. Sin embargo, después de una larga búsqueda, todo lo que encontré para Drupal 8 fue una nota en drupal_bootstrap
desuso para Drupal 8 .
Y de hecho, obtengo un
Llamar a la función indefinida drupal_bootstrap ()
cuando trato de llamarlo después de incluir como en
define('DRUPAL_ROOT', __DIR__ .'/../drupal');
require_once DRUPAL_ROOT . '/core/vendor/autoload.php';
require_once DRUPAL_ROOT . '/core/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
Entonces, ¿cómo puedo usar la API de Drupal 8 desde un script externo?
8
external-php-scripts
sleidig
fuente
fuente
Respuestas:
Para la versión actual de drupal 8.x:
fuente
Primero: siempre busque avisos de cambio. Puede encontrarlos aquí: https://www.drupal.org/list-changes
Aquí está el principal que trata
drupal_bootstrap()
: https://www.drupal.org/node/2275139Eche un vistazo al controlador frontal de Drupal 8 (
index.php
).Hace una instancia del núcleo y luego hace que maneje las solicitudes.
Pero dado que solo desea meter entidades en él, no manejará las solicitudes. Solo necesita arrancar el núcleo y luego usar los diversos servicios para agregar sus entidades. La lista de servicios está en
core/core.services.yml
y es bastante grande. Podrías buscarentity_manager
.Además, D8 tiene una API RESTful incorporada, por lo que es posible que pueda dejar que D8 haga todo el trabajo mientras hace ping a través de http.
fuente
Finalmente terminé con este código. Tiene algunos feos extras incluidos pero al menos funciona:
fuente
require_once 'your_drupal/autoload.php';
autoload.php
(línea 4)? Esto fue suficiente cuando lo usé,handleRequest
pero no cuando intenté arrancar solo lo básico para llegar al administrador de la entidad.chdir()