The Blocking Component provides methods to manage content based blocking.
<?php use Brainbits\Blocking\Blocker; use Brainbits\Blocking\Identity\Identity; use Brainbits\Blocking\Owner\SymfonySessionOwnerFactory; use Brainbits\Blocking\Storage\FilesystemStorage; use Brainbits\Blocking\Validator\ExpiredValidator; $storage = new FilesystemStorage('/where/to/store/blocks' /* path to directory on filesystem */); $ownerFactory = new SymfonySessionOwnerFactory($session /* symfony session */); $validator = new ExpiredValidator(300 /* block will expire after 300 seconds */); $blocker = new Blocker($storage, $ownerFactory, $validator); $identity = new Identity('my_content_123); $block = $blocker->block($identity); $result = $blocker->unblock($identity); $result = $blocker->isBlocked($identity); $block = $blocker->getBlock($identity);
The blocking storage is used to store the block information.
A file based blocking storage is provided. It writes block-files to the filesystem, based on the blocking identifier.
The blocking identity is used to identify the content that is being blocked.
A general purpose blocking identify is provided, that uses a string as an identifier.
The blocking owner is used to identify the user that created the block.
A symfony session based owner class is provided.
The blocking validator is used to test wether or not an existing block is still valid.
A validator that checks a block via last modification time is provided.