survos / key-value-bundle
manage dynamic key value(s) list
Package info
github.com/survos/SurvosKeyValueBundle
Type:symfony-bundle
pkg:composer/survos/key-value-bundle
Fund package maintenance!
Requires
- php: ^8.1
- symfony/framework-bundle: ^7.3
- symfony/validator: ^7.3
Requires (Dev)
- doctrine/doctrine-bundle: *
- doctrine/orm: ^3.0
- phpstan/phpstan: ^2.1
- rector/rector: ^2.0
- symfony/phpunit-bridge: ^7.3
- symfony/yaml: ^7.3
This package is auto-updated.
Last update: 2026-06-12 18:36:01 UTC
README
Flexible bundle to handle Key Value(s) list, e.g. a dynamic list of ips and paths to block bad bots.
Highly inspired by lsbproject/blacklist-bundle https://github.com/AntoineLemaire/BlacklistBundle
Installation
composer require survos/key-value-bundle
Update database schema
bin/console doctrine:schema:update --force
Purpose
I found myself needing short, configurable lists in different application -- translation memory, spelling checks and most commonly, looking for paths and path patterns to include/exclude during monitoring.
Usage
Add properties by key, which are repeatable.
bin/console survos:kv:add excluded_password password bin/console survos:kv:add excluded_password admin root 123
Then in code, check
#[Route('/', name: 'app_homepage', methods: [Request::METHOD_GET])] public function index( KeyValueManagerInterface $kvManager, ): Response { if ($kvManager->has($password, 'excluded_password')) { // } }
This was originally design for use with BlockBotBundle
bin/console survos:kv:add bad_bot_path_pattern "wp-admin" bin/console survos:kv:add bad_bot_path_pattern "phpinfo.php" bin/console survos:kv:add bad_bot_path_pattern "\.php^"
#[AsEventListener(RequestEvent::class, priority: 10000)] public function onKernelRequest(RequestEvent $event): void { foreach ($this->kvManager->get('bad_bot_path_pattern') as $pattern) { if (preg_match("$pattern", $path)) { // temporarily block this IP } }