Как запустить функции Drupal 8 из внешнего PHP-файла - PullRequest
0 голосов
/ 09 мая 2018

Есть ли способ выполнить функции Drupal 8 из внешнего файла PHP.

Ответы [ 3 ]

0 голосов
/ 10 мая 2018

Вы можете включить / вызвать загрузчик Drupal в своем скрипте, а после этого вызвать функции Drupal. Использовал это для D7, но не пытался для D8. Однако это должно работать:

https://drupal.stackexchange.com/questions/174474/bootstrap-from-external-script

И скопировать код с этой страницы:

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();
0 голосов
/ 15 мая 2018

Вы можете запустить любой php-код, drupal или non-drupal, используя такой модуль Devel и Kint. [Используйте модуль Devel and Kint] вот так https://i.stack.imgur.com/RUKv6.png

0 голосов
/ 09 мая 2018

Если у вас есть Drush, вы можете запустить «drush scr [имя_файла]», который будет запускать файл, а также запускать Drupal.Я написал в блоге об этом - https://www.oliverdavi.es/blog/dont-bootstrap-drupal-use-drush.

Я бы использовал это только для простых локальных тестовых сценариев, хотя для тестирования перед тем, как переместить код в надлежащие функции / классы / контроллеры / службы и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...