来自PHP文件的Drupal 8服务调用
我想在外部php文件中运行Drupal8下面的代码。请指导我实现这一目标来自PHP文件的Drupal 8服务调用,drupal,drupal-8,Drupal,Drupal 8,我想在外部php文件中运行Drupal8下面的代码。请指导我实现这一目标 $user = \Drupal::currentUser(); \Drupal::service('session_manager')->destroy(); $user->setAccount(new AnonymousUserSession()); 当您直接访问此页面时,它将注销活动用户。如果没有活动会话,它将什么也不做,只显示一个空白页 坦白地说,除非您必须使用这种方法,否则如果您详细解释您的目标,可能
$user = \Drupal::currentUser();
\Drupal::service('session_manager')->destroy();
$user->setAccount(new AnonymousUserSession());
当您直接访问此页面时,它将注销活动用户。如果没有活动会话,它将什么也不做,只显示一个空白页 坦白地说,除非您必须使用这种方法,否则如果您详细解释您的目标,可能会有更好的“Drupal方式”解决方案 否则,此脚本将工作:
<?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();
}
你能详细说明一下吗?似乎您想成为活动用户。是的,我想注销,但从驻留在核心目录中的php文件中说logout.php