Here's a step-by-step guide to creating a Symfony Event Listener using the Scoby Analytics PHP SDK:
Prerequisites
You need your License Key and Salt to use Scoby Analytics in Symfony.
Setting up Configuration Variables in Symfony
Open the .env
file in the root directory of your Symfony project.
Add the following lines:
SCOBY_API_KEY=your_api_key_here
SCOBY_SALT=your_generated_salt_here
You can access these values using Symfony's configuration system:
parameters:
scoby_api_key: '%env(resolve:SCOBY_API_KEY)%'
scoby_salt: '%env(resolve:SCOBY_SALT)%'
Creating the Symfony Event Listener
Generate a new event listener:
bin/console make:subscriber ScobyAnalyticsSubscriber
In the generated ScobyAnalyticsSubscriber.php
file, import necessary classes and services:
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Scoby\Analytics\SDK as ScobySDK;
Update the getSubscribedEvents
method to listen to the kernel.request
event:
public static function getSubscribedEvents()
{
return [
RequestEvent::class => 'onKernelRequest',
];
}
Implement the onKernelRequest
method:
public function onKernelRequest(RequestEvent $event)
{
$apiKey = $this->getParameter('scoby_api_key');
$salt = $this->getParameter('scoby_salt');
$scoby = new ScobySDK($apiKey, $salt);
$request = $event->getRequest();
$ipAddress = $request->getClientIp();
$userAgent = $request->headers->get('User-Agent');
$requestedUrl = $request->getUri();
$referringUrl = $request->headers->get('referer');
$scoby->logPageViewAsync([
'ipAddress' => $ipAddress,
'userAgent' => $userAgent,
'requestedUrl' => $requestedUrl,
'referringUrl' => $referringUrl,
]);
}
Final Steps
With the event listener set up and the environment variables configured, Scoby Analytics can now log page views on every request to your Symfony application.
Clear the cache to ensure the changes take effect:
bin/console cache:clear
By following this guide, you'll successfully integrate Scoby Analytics with your Symfony application using an Event Listener.