setono/consent-contracts

Generic abstraction related to consent

v1.0.0 2023-02-21 07:18 UTC

This package is auto-updated.

Last update: 2024-03-18 07:08:38 UTC


README

Latest Version Software License Build Status Code Coverage

This library serves as a building block for handling consent related implementations in your library or application.

Install

composer require setono/consent-contracts

Usage

<?php
use Setono\Consent\Consents;
use Setono\Consent\ConsentCheckerInterface;

final class YourService
{
    private ConsentCheckerInterface $consentChecker;
    
    public function __construct(ConsentCheckerInterface $consentChecker)
    {
        $this->consentChecker = $consentChecker;    
    }
    
    public function __invoke()
    {
        if ($this->consentChecker->isGranted(Consents::CONSENT_MARKETING)) {
            // marketing consent is granted, and you can set your marketing related cookie ;)
        }
    }
}

Default consent checkers

This library also provides two implementations of the ConsentCheckerInterface, namely the DenyAllConsentChecker and GrantAllConsentChecker. You can use these two to provide default consents if a consent management system isn't implemented.