Сервисный вызов Drupal 8 из файла PHP - PullRequest
0 голосов
/ 09 мая 2018

Я хочу запустить ниже код Drupal 8 во внешнем php-файле. Пожалуйста, помогите мне в достижении этого.

$user = \Drupal::currentUser();
\Drupal::service('session_manager')->destroy();
$user->setAccount(new AnonymousUserSession());

1 Ответ

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

Когда вы открываете эту страницу напрямую, она активирует активного пользователя. Если нет активного сеанса, он ничего не будет делать, просто отображает пустую страницу.

Честно говоря, если вы не используете этот метод, возможно, есть гораздо лучшие "Drupal way" решения, если вы объясните свою цель подробно.

В противном случае этот скрипт работает:

<?php

use Drupal\Core\DrupalKernel;
use Symfony\Component\HttpFoundation\Request;

// Change the directory to the Drupal root.
chdir('..');

$autoloader = require_once 'autoload.php';

$request = Request::createFromGlobals();
$kernel = DrupalKernel::createFromRequest($request, $autoloader, 'prod');
$kernel->prepareLegacyRequest($request);

\Drupal::moduleHandler()->addModule('user', 'core/modules/user');
\Drupal::moduleHandler()->load('user');

$account = \Drupal::service('authentication')->authenticate($request);
if ($account) {
  \Drupal::currentUser()->setAccount($account);
  user_logout();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...