nexylan / slack-bundle
Symfony bundle integration of nexylan/slack library
Installs: 1 136 624
Dependents: 0
Suggesters: 8
Security: 0
Stars: 109
Watchers: 6
Forks: 21
Open Issues: 10
Type:symfony-bundle
Requires
- php: ^7.4 || ^8.0
- nexylan/slack: ^3.0
- php-http/discovery: ^1.6
- php-http/httplug: ^2.0
- php-http/httplug-bundle: ^1.17
- symfony/http-kernel: ^3.4 || ^4.0 || ^5.0
Requires (Dev)
- http-interop/http-factory-guzzle: ^1.0
- matthiasnoback/symfony-dependency-injection-test: ^4.0
- php-http/guzzle6-adapter: ^1.1.1 || ^2.0
- php-http/mock-client: ^1.1
- phpunit/phpunit: ^8.4
- symfony/framework-bundle: ^3.4 || ^4.4 || ^5.0
Suggests
- eightpoints/guzzle-bundle: Make a custom Guzzle instance for Slack with ease
README
Symfony bundle integration of the nexylan/slack library (old popular maknz/slack
).
Documentation
All the installation and usage instructions are located in this README. Check it for specific version:
Prerequisites
This version of the project requires:
- PHP 7.1+
- Symfony 3.4+
Installation
First of all, you need to require this library through composer:
$ composer require nexylan/slack-bundle php-http/guzzle6-adapter
Why php-http/guzzle6-adapter
? We are decoupled from any HTTP messaging client thanks to HTTPlug.
Then, enable the bundle on the AppKernel
class:
// app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Http\HttplugBundle\HttplugBundle(), new Nexy\SlackBundle\NexySlackBundle(), ); // ... return $bundles }
Configuration
If it is not already done, you have to configure httplug-bundle first. Check the official documentation for this.
Configure the bundle to your needs (example with default values):
nexy_slack: # If you want to use an another httplug client service. http: client: httplug.client # The Slack API Incoming WebHooks URL. endpoint: ~ # Required channel: null username: null icon: null link_names: false unfurl_links: false unfurl_media: true allow_markdown: true markdown_in_attachments: []
Excepted endpoint
, all the other configuration keys are related to the Slack client default settings.
All those settings are described on the nexylan/slack documentation.
Usage
The Slack client instance can be retrieved from the nexy_slack.client
service.
Here is an example:
<?php namespace AppBundle\Controller; use Nexy\Slack\Attachment; use Symfony\Bundle\FrameworkBundle\Controller\Controller; class DefaultController extends Controller { public function indexAction() { $slack = $this->get('nexy_slack.client'); $message = $slack->createMessage(); $message ->to('#test') ->from('John Doe') ->withIcon(':ghost:') ->setText('This is an amazing message!') ; $message->attach((new Attachment()) ->setFallback('Some fallback text') ->setText('The attachment text') ); $slack->sendMessage($message); } }
All the how to manipulate the Slack client is on the nexylan/slack documentation.