drupal 8 – Bootstrap desde un script externo

Pregunta:

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 existía drupal_bootstrap para cargar las dependencias Drupal requeridas. Sin embargo, después de una larga búsqueda, todo lo que encontré para Drupal 8 fue una nota de que drupal_bootstrap está obsoleto para Drupal 8 .

Y de hecho, obtengo un

Llamada a la función indefinida drupal_bootstrap ()

cuando trato de llamarlo después de incluirlo 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?

Respuesta:

Para la versión actual de drupal 8.x:

define('DRUPAL_DIR', '/usr/share/nginx/html');
use Drupal\Core\DrupalKernel;
use Symfony\Component\HttpFoundation\Request;
require_once DRUPAL_DIR . '/core/includes/database.inc';
require_once DRUPAL_DIR . '/core/includes/schema.inc';
// Specify relative path to the drupal root.
$autoloader = require_once DRUPAL_DIR . '/autoload.php';

$request = Request::createFromGlobals();

// Bootstrap drupal to different levels
$kernel = DrupalKernel::createFromRequest($request, $autoloader, 'prod');
$kernel->boot();
$kernel->prepareLegacyRequest($request);

$em = $kernel->getContainer()->get('entity.manager');

$entity = $em->getStorage('node')->create(
        array(
          'type' => "article",
          'title'=> "test entity",
          'body' => "body body body",
        ));

$entity->save();

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım