NexySlackBundle
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.