У нас есть два разных сервера. На одном мы имеем CMS, а с другой - интерфейс. Сервер Frontend основан на Symfony.
Нам нужно создать механизм кэширования/вставки базы данных на внешний сервер.
До сих пор я создал таблицы MySql, называемые static_content, используя доктрину.
И это структура внутри статического содержимого.
Это текущий код, который у меня есть.
public function parseAction() {
$staticContent = new StaticContent();
$staticContent->setData('html');
$doctrine = $this->getDoctrine()->getManager();
$doctrine->persist($staticContent);
$doctrine->flush();
return new Response($staticContent);
}
public function showExistationalAction($staticContentId) {
$staticContent = $this->getDoctrine()
->getRepository(StaticContent::class)
->find($staticContentId);
if(!$staticContent) {
throw $this->createNotFoundException(
'No html has been found'. $staticContentId
);
}
return new Response($staticContent->getData());
}
Мы используем Symfony 2.8 с MySql 5.7.
Итак, моя конкретная проблема заключается в том, как я могу вставить всю веб-страницу в поле данных в объекте StaticContent? Есть ли переменная, которая просто сохраняет содержимое HTML в Symfony? Что я вызываю вместо setData ('html'); ? На самом деле я считаю, что мне нужно руководство.
Попробуй это;
$this->get('doctrine.orm.default_entity_manager')->persist($staticContent);
$this->get('doctrine.orm.default_entity_manager')->flush();
Вы можете использовать комплект symfony для полноэкранного кеша. Кэш доступен для обнуления в зависимости от даты изменения содержимого. https://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/cache.html