项目作者: bigoen

项目描述 :
Mercure Twig Bundle
高级语言: PHP
项目地址: git://github.com/bigoen/mercure-twig-bundle.git
创建时间: 2020-12-10T10:53:17Z
项目社区:https://github.com/bigoen/mercure-twig-bundle

开源协议:MIT License

下载


Mercure Twig Bundle
=
Developed based on https://github.com/sroze/live-twig package.

Install:

  1. composer require bigoen/mercure-twig-bundle

If you don’t use Symfony Flex:

.env.local

  1. ###> bigoen/mercure-twig-bundle ###
  2. MERCURE_TWIG_PUBLISH_URL=http://mercure/.well-known/mercure
  3. ###< bigoen/mercure-twig-bundle ###

config/bundles.php

  1. return [
  2. // ...
  3. Bigoen\MercureTwigBundle\BigoenMercureTwigBundle::class => ['all' => true],
  4. ];

config/packages/bigoen_mercure_twig.yaml

  1. bigoen_mercure_twig:
  2. public_url: "%env(MERCURE_TWIG_PUBLISH_URL)%"
  3. # subscriber_js: '@BigoenMercureTwig\subscriber_js.html.twig'

How to use?

  • Configurations:
  • Set MERCURE_TWIG_PUBLISH_URL,
  • Set subscriber_js in yaml configuration. Default: ‘@BigoenMercureTwig\subscriber_js.html.twig’

Publisher Example:

  1. use Symfony\Component\Mercure\PublisherInterface;
  2. use Symfony\Component\Mercure\Update;
  3. /** @var PublisherInterface $publisher */
  4. $publisher(new Update('live', 'test'));

Controller Example:

  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Controller;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. /**
  8. * @Route("/mercure", name="mercure.")
  9. */
  10. class MercureController extends AbstractController
  11. {
  12. /**
  13. * @Route("/order", name="order")
  14. */
  15. public function orderAction(): Response
  16. {
  17. return $this->render('mercure/order.html.twig');
  18. }
  19. }

Twig Example:

  • Set render controller,
  • Set mercure topics,
  • Set token is private.
  • Set isAdd. Default: 0. 1 = afterbegin, 2 = beforebegin.
    1. {{ render_bigoen_mercure_twig(
    2. controller('App\\Controller\\MercureController::orderAction'),
    3. {'topics': ['live'], 'isAdd': 1, 'token': 'bearer token'}
    4. ) }}