Extending

Creating a custom DemandProvider

DemandProvider classes add new sources for demands. I.e. places where filterrestrictions are defined. The extension already includes providers that provide demands from the HTTP request (RequestDemandProvider) and TypoScript (TypoScriptDemandProvider).

All DemandProvider classes must implement Pixelant\Demander\DemandProvider\DemandProviderInterface.

This example fetches demand from an environment variable:

use Pixelant\Demander\DemandProvider\DemandProviderInterface;

class EnvironmentVariableDemandProvider implements DemandProviderInterface
{
    public function getDemand(): array
    {
        return json_decode(getenv('APP_DEMANDER'), true);
    }
}

The getDemand() method always returns an associative array of demands. The format is explained in the Configuration chapter’s demand section .