This bundle integrates the consent contracts into Symfony.
composer require setono/consent-bundleThis installs and enables the plugin automatically if you're using Symfony Flex. If not, add the bundle manually
to bundles.php.
The default configuration has all (default) consents (marketing, preferences, and statistics) set to false. If you want to
change these defaults, you can easily do so:
# config/packages/setono_consent.yaml
setono_consent:
consents:
marketing: true
preferences: true
statistics: true
random_consent: true # you can easily add your own consentsThe above configuration will effectively change the default consent to true for all permissions.
If you want to use a different consent checker, you can easily do so by implementing the ConsentCheckerInterface and
setting your own service id as the consent checker:
# config/packages/setono_consent.yaml
setono_consent:
consent_checker: <your service id>The bundle provides a StaticConsentChecker that uses the above consents array as an input.
You can then autowire the ConsentCheckerInterface and check for a granted consent:
<?php
use Setono\Consent\Consents;
use Setono\Consent\ConsentCheckerInterface;
final class YourMarketingTrackingService
{
private ConsentCheckerInterface $consentChecker;
public function __construct(ConsentCheckerInterface $consentChecker) {
$this->consentChecker = $consentChecker;
}
public function track(): void
{
if(!$this->consentChecker->isGranted(Consents::CONSENT_MARKETING)) {
return;
}
// do your marketing tracking
}
}