Sylius рдореЗрдВ Asyntai AI рдЪреИрдЯрдмреЙрдЯ рдХреИрд╕реЗ рдЬреЛрдбрд╝реЗрдВ
Sylius рдИ-рдХреЙрдорд░реНрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЪрд░рдг-рджрд░-рдЪрд░рдг рдЧрд╛рдЗрдб
рдЪрд░рдг 1: рдЕрдкрдирд╛ рдПрдореНрдмреЗрдб рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЕрдкрдиреЗ Asyntai рдбреИрд╢рдмреЛрд░реНрдб рдкрд░ рдЬрд╛рдПрдБ рдФрд░ рдиреАрдЪреЗ "Embed Code" рдЕрдиреБрднрд╛рдЧ рддрдХ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВред рдЕрдкрдирд╛ рдпреВрдирд┐рдХ рдПрдореНрдмреЗрдб рдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВ, рдЬреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
<script>(function(){var l=function(){var s=document.createElement("script");s.src="https://widget.asyntai.com/static/js/chat-widget.js";s.async=true;s.setAttribute("data-asyntai-id","YOUR_WIDGET_ID");document.head.appendChild(s)};if(document.readyState==="complete"){l()}else{window.addEventListener("load",l)}})();</script>
рдиреЛрдЯ: рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдбреИрд╢рдмреЛрд░реНрдб рд╕реЗ рдЕрдкрдирд╛ рдЕрджреНрд╡рд┐рддреАрдп рдПрдореНрдмреЗрдб рдХреЛрдб рдХреЙрдкреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЖрдкрдХреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд┐рдЬреЗрдЯ ID рд╣реЛрддреА рд╣реИред
рдЪрд░рдг 2: Twig рд▓реЗрдЖрдЙрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ (рдЕрдиреБрд╢рдВрд╕рд┐рдд)
Sylius Symfony рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ Twig рдЯреЗрдореНрдкрд▓реЗрдЯрд┐рдВрдЧ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЕрдиреБрд╢рдВрд╕рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рднреА рд╕реНрдЯреЛрд░рдлреНрд░рдВрдЯ рдкреЗрдЬреЛрдВ рдкрд░ рдЪреИрдЯрдмреЙрдЯ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЙрдк рд▓реЗрдЖрдЙрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рд╣реИред
- рдЕрдкрдиреЗ Sylius рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ,
templates/bundles/SyliusShopBundle/рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдкрд░ рдЬрд╛рдПрдВ (рдпрджрд┐ рдпрд╣ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рддреЛ рдЗрд╕реЗ рдмрдирд╛рдПрдВ) - рдбрд┐рдлреЙрд▓реНрдЯ рд╢реЙрдк рд▓реЗрдЖрдЙрдЯ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП layout.html.twig рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ рдпрд╛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
- рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдЦреЛрдЬреЗрдВ
{% block javascripts %}рдмреНрд▓реЙрдХ - javascripts рдмреНрд▓реЙрдХ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдХреЗ Asyntai рдПрдореНрдмреЗрдб рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:
{% block javascripts %} {{ parent() }} <script>(function(){var l=function(){var s=document.createElement("script");s.src="https://widget.asyntai.com/static/js/chat-widget.js";s.async=true;s.setAttribute("data-asyntai-id","YOUR_WIDGET_ID");document.head.appendChild(s)};if(document.readyState==="complete"){l()}else{window.addEventListener("load",l)}})();</script> {% endblock %} YOUR_WIDGET_IDрдХреЛ рдбреИрд╢рдмреЛрд░реНрдб рд╕реЗ рдЕрдкрдиреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рдЬреЗрдЯ ID рд╕реЗ рдмрджрд▓реЗрдВ- рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ
рд╕реБрдЭрд╛рд╡: By using {{ parent() }} inside the block, you preserve all existing JavaScript includes from the parent template while appending the chatbot script at the end, ensuring it loads after the page content.
рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдзрд┐ 1: Sylius рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрд╡реЗрдВрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ
Sylius рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╕рдВрдкреВрд░реНрдг рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдП рдмрд┐рдирд╛ рд▓реЗрдЖрдЙрдЯ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреБрдЯрд░ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЪреИрдЯрдмреЙрдЯ рд╡рд┐рдЬреЗрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде
templates/bundles/SyliusShopBundle/Event/asyntai_widget.html.twigрдкрд░ рдПрдХ рдирдИ рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ:<script>(function(){var l=function(){var s=document.createElement("script");s.src="https://widget.asyntai.com/static/js/chat-widget.js";s.async=true;s.setAttribute("data-asyntai-id","YOUR_WIDGET_ID");document.head.appendChild(s)};if(document.readyState==="complete"){l()}else{window.addEventListener("load",l)}})();</script> - рдЕрдкрдиреА
config/packages/sylius_ui.yamlрдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрд╡реЗрдВрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░реЗрдВ:sylius_ui:
events:
sylius.shop.layout.after_body:
blocks:
asyntai_chatbot:
template: "@SyliusShop/Event/asyntai_widget.html.twig"
priority: 0 YOUR_WIDGET_IDрдХреЛ рдЕрдкрдиреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рдЬреЗрдЯ ID рд╕реЗ рдмрджрд▓реЗрдВ- Symfony рдХреИрд╢ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ (рдиреАрдЪреЗ рдЪрд░рдг 3 рджреЗрдЦреЗрдВ)
рдиреЛрдЯ: рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрд╡реЗрдВрдЯ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рдмрд╕реЗ рдХрдо рд╣рд╕реНрддрдХреНрд╖реЗрдк рд╡рд╛рд▓рд╛ рддрд░реАрдХрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдФрд░ рдпрд╣ Sylius рдХреЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд╕рд╛рде рд╕рдлрд╛рдИ рд╕реЗ рдПрдХреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдПрдХ рд╣реА рдЗрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдХрдИ рдмреНрд▓реЙрдХ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВ, рддреЛ priority рдорд╛рди рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреНрд░рдо рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдзрд┐ 2: Webpack Encore рдХрд╛ рдЙрдкрдпреЛрдЧ
рдпрджрд┐ рдЖрдкрдХрд╛ Sylius рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдПрд╕реЗрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП Webpack Encore рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд┐рд▓реНрдб рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪреИрдЯрдмреЙрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде
assets/shop/js/asyntai-chatbot.jsрдкрд░ рдПрдХ рдирдИ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ:(function() {
var script = document.createElement('script');
script.async = true;
script.src = 'https://asyntai.com/static/js/chat-widget.js';
script.setAttribute('data-asyntai-id', 'YOUR_WIDGET_ID');
document.body.appendChild(script);
})(); - рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдиреЗ рд╢реЙрдк рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯ (рдЬреИрд╕реЗ,
assets/shop/entry.jsрдпрд╛assets/shop/js/app.js) рдореЗрдВ рдЗрдореНрдкреЛрд░реНрдЯ рдХрд░реЗрдВ:import './js/asyntai-chatbot'; - рдЪрд▓рд╛рдХрд░ рдЕрдкрдиреА рдПрд╕реЗрдЯреНрд╕ рдкреБрдирд░реНрдирд┐рд░реНрдорд┐рдд рдХрд░реЗрдВ:
yarn encore devрдпрд╛ рдкреНрд░реЛрдбрдХреНрд╢рди рдХреЗ рд▓рд┐рдП:
yarn encore production YOUR_WIDGET_IDрдХреЛ рдЕрдкрдиреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рдЬреЗрдЯ ID рд╕реЗ рдмрджрд▓реЗрдВ
рд╕реБрдЭрд╛рд╡: Webpack Encore рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЪреИрдЯрдмреЙрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдкрдХреЗ рдЕрдиреНрдп рдПрд╕реЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдмрдВрдбрд▓ рдХреА рдЧрдИ рд╣реИ рдФрд░ рдмрд┐рд▓реНрдб рдЯреВрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдХреИрд╢рд┐рдВрдЧ рдФрд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛрддреА рд╣реИред
рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдзрд┐ 3: Sonata Block Bundle рдХрд╛ рдЙрдкрдпреЛрдЧ
рдпрджрд┐ рдЖрдкрдХрд╛ Sylius рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди Sonata Block Bundle рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдХреБрдЫ Sylius рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓), рддреЛ рдЖрдк рдЪреИрдЯрдмреЙрдЯ рд╡рд┐рдЬреЗрдЯ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо рдмреНрд▓реЙрдХ рд╕рд░реНрд╡рд┐рд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
- рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдирдИ рдмреНрд▓реЙрдХ рд╕рд░реНрд╡рд┐рд╕ рдХреНрд▓рд╛рд╕ рдмрдирд╛рдПрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
src/Block/AsyntaiChatbotBlockService.php:<?php
namespace App\Block;
use Sonata\BlockBundle\Block\BlockContextInterface;
use Sonata\BlockBundle\Block\Service\AbstractBlockService;
use Symfony\Component\HttpFoundation\Response;
class AsyntaiChatbotBlockService extends AbstractBlockService
{
public function execute(BlockContextInterface $blockContext, Response $response = null): Response
{
return $this->renderResponse('block/asyntai_chatbot.html.twig', [
'block' => $blockContext->getBlock(),
], $response);
}
} templates/block/asyntai_chatbot.html.twigрдкрд░ рдмреНрд▓реЙрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдПрдВ:<script>(function(){var l=function(){var s=document.createElement("script");s.src="https://widget.asyntai.com/static/js/chat-widget.js";s.async=true;s.setAttribute("data-asyntai-id","YOUR_WIDGET_ID");document.head.appendChild(s)};if(document.readyState==="complete"){l()}else{window.addEventListener("load",l)}})();</script>- рдЕрдкрдиреЗ
config/services.yamlрдореЗрдВ рдмреНрд▓реЙрдХ рд╕рд░реНрд╡рд┐рд╕ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░реЗрдВ:services:
app.block.asyntai_chatbot:
class: App\Block\AsyntaiChatbotBlockService
arguments:
- '@twig'
tags:
- { name: sonata.block, context: footer } - Sonata рдПрдбрдорд┐рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ рдЕрдкрдиреЗ рд▓реЗрдЖрдЙрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЬреЛрдбрд╝рдХрд░ рдмреНрд▓реЙрдХ рдХреЛ рдЕрдкрдиреЗ рдлреБрдЯрд░ рд╕рдВрджрд░реНрдн рдореЗрдВ рд░рдЦреЗрдВ
YOUR_WIDGET_IDрдХреЛ рдЕрдкрдиреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рдЬреЗрдЯ ID рд╕реЗ рдмрджрд▓реЗрдВ
рдорд╣рддреНрд╡рдкреВрд░реНрдг: Sonata Block рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реЗрдЯрдЕрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдПрдбрдорд┐рди рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪреИрдЯрдмреЙрдЯ рдмреНрд▓реЙрдХ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЪреАрд▓рд╛рдкрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ Sylius рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ Sonata Block Bundle рдЗрдВрд╕реНрдЯреЙрд▓ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЪрд░рдг 3: рдХреИрд╢ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ
рдЕрдкрдиреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ Symfony рдХреИрд╢ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЪрд▓рд╛рдХрд░ Symfony рдХреИрд╢ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ:
bin/console cache:clear - рдпрджрд┐ рдЖрдк рдкреНрд░реЛрдбрдХреНрд╢рди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╣реИрдВ, рддреЛ рдХреИрд╢ рдХреЛ рднреА рд╡рд╛рд░реНрдо рдЕрдк рдХрд░реЗрдВ:
bin/console cache:clear --env=prod
bin/console cache:warmup --env=prod - рдирдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреИрдм рдпрд╛ рдЗрдирдХреЙрдЧреНрдирд┐рдЯреЛ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЕрдкрдиреЗ Sylius рд╕реНрдЯреЛрд░рдлреНрд░рдВрдЯ рдкрд░ рдЬрд╛рдПрдБ
- рдЖрдкрдХреЛ рдиреАрдЪреЗ рджрд╛рдПрдБ рдХреЛрдиреЗ рдореЗрдВ рдЪреИрдЯ рд╡рд┐рдЬреЗрдЯ рдмрдЯрди рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП
- рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЦреБрд▓рддрд╛ рдФрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рд╡рд┐рдЬреЗрдЯ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛? рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ bin/console cache:clear рдХреЗ рд╕рд╛рде Symfony рдХреИрд╢ рд╕рд╛рдлрд╝ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯ рдУрд╡рд░рд░рд╛рдЗрдб рд╕рд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (templates/bundles/SyliusShopBundle/) рдореЗрдВ рд╣реИред рдЕрдкрдирд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреИрд╢ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдпрд╛ рдЗрдирдХреЙрдЧреНрдирд┐рдЯреЛ рд╡рд┐рдВрдбреЛ рдореЗрдВ рджреЗрдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдХрд┐рд╕реА рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбреЗрд╡рд▓рдкрд░ рдХрдВрд╕реЛрд▓ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдпрджрд┐ Webpack Encore рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ рдПрд╕реЗрдЯреНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рд╣реИред
Sylius рд╕рдВрд╕реНрдХрд░рдг рдиреЛрдЯ: Sylius рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдЯреЗрдореНрдкрд▓реЗрдЯ рдУрд╡рд░рд░рд╛рдЗрдб рдкрде рдереЛрдбрд╝рд╛ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред Sylius 1.x рдореЗрдВ, рд╢реЙрдк рдмрдВрдбрд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ templates/bundles/SyliusShopBundle/ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рд╕рд╣реА рдУрд╡рд░рд░рд╛рдЗрдб рдкрде рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ Sylius рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВред
Weebly