gthouret / bff
BFF: Fast and light PHP framework for getting things done
Requires
- php: >=7.1
- ext-json: *
- ext-memcached: *
- ext-mysqli: *
- ext-pcntl: *
- ext-pdo: *
- ext-redis: *
- aura/sqlquery: ^2.7.1
Requires (Dev)
- phpunit/phpunit: ^7
This package is not auto-updated.
Last update: 2025-03-19 13:47:32 UTC
README
A Light and fast PHP framework for getting things done
Config - Config management for multiple environments, production is base environment and other environments can override or add to production's config values
Db - Create custom MySQL connections via MysqliFactory and PdoFactory by passing your config reference or get a default connection via Service::pdo()
or Service::mysqli()
Memcache - Interact with Memcache a store
TaggedMemcache - Get and Set with tag sets; Invalidate caches by invalidating tags
Queue - Queue implementation (currently only a Redis backend implementation)
Registry - A global, labelled, singleton object store
Service - Instantiates singleton services into the registry on demand; Simple clean interface for accessing from anywhere
Export - Export data (log, csv) to files via Redis queues (Diferent exports are defined in the exporters array)
Logger - Wraps Export to format log messages and send to the right exporter
Text - Useful text functions
Time - Useful Time constants and functions
Example Usage
Set an item to cache
use BFF\Service; $user = [ 'name' => 'Joe Bloggs', 'email' => 'joe@example.com' ]; $cache = Service::cache(); $cache->set('user-joebloggs', $user, Time::ONE_HOUR);
Load custom app services
use BFF\Registry; use BFF\Service as BffService; namespace App; class Service extends BffService { const MYSERVICEA = 'myservicea'; const MYSERVICEB = 'myserviceb'; public function myservicea() : MyServiceA { if (!Registry::isset(Service::MYSERVICEA)) { $obj = new MyServiceA(); Registry::set(Service::MYSERVICEA, $obj); return $obj; } else { return Registry::get(static::MYSERVICEA); } } public function myserviceb() : MyServiceB { if (!Registry::isset(Service::MYSERVICEB)) { $obj = new MyServiceB(); Registry::set(Service::MYSERVICEB, $obj); return $obj; } else { return Registry::get(static::MYSERVICEB); } } }
namespace App; $myservicea = Service::myservicea(); $myservicea()->someAction();