brainbits/blocking

Object blocking

3.0.2 2020-07-14 09:51 UTC

This package is auto-updated.

Last update: 2021-09-14 12:25:01 UTC


README

Latest Version Software License Build Status Coverage Status Quality Score Insight Total Downloads

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);

Blocking Storage

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.

Blocking Identity

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.

Blocking Owner

The blocking owner is used to identify the user that created the block.

A symfony session based owner class is provided.

Blocking Validator

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.