如何从外部PHP文件运行Drupal 8函数

如何从外部PHP文件运行Drupal 8函数,drupal,drupal-8,Drupal,Drupal 8,有没有办法从外部PHP文件执行Drupal 8函数。如果您有Drush,您可以运行“Drush scr[filename]”,它将执行该文件以及引导Drupal。我写了一篇关于这个的博客文章- 我只会在简单的本地测试脚本中使用它,在将代码移动到适当的函数/类/控制器/服务等中之前进行测试。如果您有Drush,您可以运行“Drush scr[filename]”,它将执行文件和引导Drupal。我写了一篇关于这个的博客文章- 我只会在简单的本地测试脚本中使用它,在将代码移动到适当的函数/类/控制器

有没有办法从外部PHP文件执行Drupal 8函数。

如果您有Drush,您可以运行“Drush scr[filename]”,它将执行该文件以及引导Drupal。我写了一篇关于这个的博客文章-


我只会在简单的本地测试脚本中使用它,在将代码移动到适当的函数/类/控制器/服务等中之前进行测试。

如果您有Drush,您可以运行“Drush scr[filename]”,它将执行文件和引导Drupal。我写了一篇关于这个的博客文章-


我只会在简单的本地测试脚本中使用它,在将代码移动到适当的函数/类/控制器/服务等中之前进行测试。

您可以在脚本中包含/调用Drupal的引导,然后调用Drupal的函数。将其用于D7,但未尝试用于D8。然而,它应该起作用:

要从该页复制代码,请执行以下操作:

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();

您可以在脚本中包含/调用Drupal的引导,然后调用Drupal的函数。将其用于D7,但未尝试用于D8。然而,它应该起作用:

要从该页复制代码,请执行以下操作:

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();

您可以像这样使用Devel和Kint模块运行drupal或非drupal的任何php代码

您可以像这样使用Devel和Kint模块运行drupal或非drupal的任何php代码。[像这样使用Devel和Kint模块]

您可能想给我们一些关于为什么要这样做的上下文,因为通常情况下,您不会这样做,而是要编写drupal模块。您可能想给我们一些关于为什么要这样做的上下文,因为通常情况下,您不会这样做,而是要编写drupal模块。