Developed with love by KnpLabs Hire us for your project!
53

CentrifugoBundle

by fre5h

CentrifugoBundle

đŸ“Ļ Provides communication with web-socket server Centrifugo in Symfony applications.

Scrutinizer Quality Score
Build Status
CodeCov
License
Latest Stable Version
Total Downloads
StyleCI
Gitter

Features 🎁

Requirements 🧐

  • PHP 7.3 and later
  • Symfony 4.4, 5.0 and later

Installation 🌱

$ composer req fresh/centrifugo-bundle

By default, Symfony Flex adds this bundle to the config/bundles.php file and adds required environment variables into .env file.
In case when you ignored contrib-recipe during bundle installation it would not be done. Then you have to do this manually.

Check the config/bundles.php file

# config/bundles.php

return [
    // Other bundles...
    Fresh\CentrifugoBundle\FreshCentrifugoBundle::class => ['all' => true],
    // Other bundles...
];

Check the .env file and add you configuration

# .env

###> fresh/centrifugo-bundle ###
CENTRIFUGO_API_KEY=secret-api-key
CENTRIFUGO_API_ENDPOINT=http://centrifugo:8000/api
CENTRIFUGO_SECRET=secret
###< fresh/centrifugo-bundle ###

ℹī¸ Customize bundle configuration

Using 🧑‍🎓

Centrifugo service

<?php
declare(strict_types=1);

namespace App\Service;

use Fresh\CentrifugoBundle\Service\Centrifugo;

class YourService
{
    private $centrifugo;    

    public function __construct(Centrifugo $centrifugo)
    {
        $this->centrifugo = $centrifugo;
    }

    public function example(): void
    {
        $this->centrifugo->publish(['foo' => 'bar'], 'channelA');
    }
}

ℹī¸ More examples of using Centrifugo service

Authentication with JWT tokens 🗝ī¸

Console commands ⚒ī¸

  • centrifugo:publish
  • centrifugo:broadcast
  • centrifugo:unsubscribe
  • centrifugo:disconnect
  • centrifugo:presence
  • centrifugo:presence-stats
  • centrifugo:history
  • centrifugo:history-remove
  • centrifugo:channels
  • centrifugo:info

ℹī¸ More examples of using console commands

Integration into Symfony Web-Profiler 🎛ī¸

Contributing 🤝

Read the CONTRIBUTING file.

The MIT License (MIT)

Copyright (c) 2020 Artem Henvald

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  • Update CommandInterface.php
    By web-flow, 2 months ago
  • Update ResultableCommandInterface.php
    By web-flow, 2 months ago
  • Update SerializableCommandInterface.php
    By web-flow, 2 months ago
  • Update centrifugo_service_methods.md
    By web-flow, 2 months ago
  • Update README.md
    By web-flow, 3 months ago
  • Update README.md
    By web-flow, 3 months ago
  • Update configuration.md
    By web-flow, 3 months ago
  • Update README.md
    By web-flow, 3 months ago
  • Clean code (#4)
    By web-flow, 3 months ago
  • Add data collector for Symfony profiler (#3)
    By web-flow, 3 months ago
  • Update README.md
    By web-flow, 3 months ago
  • Fix http-foundation version
    By web-flow, 3 months ago
  • JWT token authentication
    By web-flow, 3 months ago
  • Improvements and tests
    By web-flow, 3 months ago
  • Fix CS
    By fre5h, 3 months ago
  • Refactoring
    By fre5h, 3 months ago
  • Add base files
    By fre5h, 3 months ago
  • Init
    By fre5h, 1 year ago