Сообщество спросило.. Уточните, пожалуйста, вашу конкретную проблему...
Справедливый комментарий. Я хотел бы помочь с как исправить приведенный ниже скрипт, чтобы он работал с D9.
<?php
use Drupal\Core\DrupalKernel;
$autoloader = require_once 'autoload.php';
// This next line is the problem
$request = Request::createFromGlobals();
$kernel = DrupalKernel::createFromRequest($request, $autoloader, 'prod');
$kernel->boot();
require_once 'core/includes/database.inc';
require_once 'core/includes/schema.inc';
$em = $kernel->getContainer()->get('entity_type.manager');
$entity = $em->getStorage('node')->create(array(
'type' => 'article',
'title' => 'Druplicon test',
));
$entity->save();
?>
Это то же самое, что и скрипт D8 ниже, который работает, за исключением того, что у меня есть:
- удалено использование симфонической линии;
- заменил устаревшую функцию (спасибо leymannx)
Скрипт не работает, как указано в строке
$запрос = Запрос::createFromGlobals();
с сообщениями
chrome-error://chromewebdata/:1 Не удалось загрузить ресурс: сервер ответил со статусом 500 ()
VM10:7288 crbug/1173575, файлы модулей, отличных от JS, устарели.
Может ли кто-нибудь указать, что не так с этой строкой в D9 (что, я думаю, связано с удалением оператора использования симфонии), а также есть ли какие-либо другие строки кода, следующие за которыми D9 не понравится.
Спасибо за любую дальнейшую помощь по этому вопросу и приносим извинения за предыдущую путаницу и за то, что я все еще не в курсе D9.
эта статья предоставляет код D8 для создания объекта из внешнего скрипта. Я нахожусь в той же лодке, что и человек, задавший этот вопрос, — хочу перейти с drupal_bootstrap от D7.
Хотя мое требование — D9, я решил попытаться заставить работать скрипт D8, используя приведенный выше пост. Его приложение связано с сущностью. Я хочу создать записи статей.
Вот код, который я взял из приведенной выше ссылки, которая, как говорят, работает.
<?php
use Drupal\Core\DrupalKernel;
use Symfony\Component\HttpFoundation\Request;
$autoloader = require_once 'autoload.php';
$request = Request::createFromGlobals();
$kernel = DrupalKernel::createFromRequest($request, $autoloader, 'prod');
$kernel->boot();
require_once 'core/includes/database.inc';
require_once 'core/includes/schema.inc';
$em = $kernel->getContainer()->get('entity.manager');
$entity = $em->getStorage('node')->create(array(
'type' => 'article',
'title' => 'Druplicon test',
));
$entity->save();
?>
Этот код запускается и создает запись в node_field_data таблица но статья не указан как содержание на сайте.
Я очень хорошо разбираюсь в кодировании D8/D9, поэтому, пожалуйста, потерпите меня, если я делаю что-то глупое!
Как только я смогу заставить это работать, мне нужно выяснить, какие изменения необходимы для D9, поэтому любая помощь здесь будет полезна. Например, код D8 использует симфонию, но я полагаю, что это не часть D9.
Спасибо за любую помощь в этом, чтобы заставить это работать. И помочь мне заменить мой опыт D7 на D8/D9!
Сожалею... Этот код действительно отображается в содержании — я смотрел сайт D9, а не тестовый D8, который я настроил. Извинения!
Но мне все равно нужна помощь в том, какие изменения мне нужно внести в этот скрипт для работы под D9.