gthouret / bff
BFF:快速且轻量级的PHP框架,用于完成任务
dev-master
2022-04-12 14:57 UTC
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: 2024-10-02 11:30:48 UTC
README
一个轻量且快速的PHP框架,用于完成任务
配置 - 多环境配置管理,生产环境为基础环境,其他环境可以覆盖或添加到生产环境的配置值
数据库 - 通过MysqliFactory和PdoFactory创建自定义MySQL连接,通过传递您的配置引用或通过Service::pdo()
或Service::mysqli()
获取默认连接
Memcache - 与Memcache存储交互
TaggedMemcache - 使用标签集获取和设置;通过无效化标签来无效化缓存
队列 - 队列实现(目前仅支持Redis后端实现)
注册表 - 一个全局的、带标签的单例对象存储
服务 - 根据需要将单例服务实例化到注册表中;从任何地方访问的简单干净接口
导出 - 通过Redis队列将数据(日志、CSV)导出到文件(不同的导出在exporters数组中定义)
日志记录器 - 包装导出以格式化日志消息并发送到正确的导出器
文本 - 有用的文本函数
时间 - 有用的时间常量和函数
示例用法
将项设置为缓存
use BFF\Service; $user = [ 'name' => 'Joe Bloggs', 'email' => 'joe@example.com' ]; $cache = Service::cache(); $cache->set('user-joebloggs', $user, Time::ONE_HOUR);
加载自定义应用服务
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();