arnapou / psr-container
库 - PSR-11.
v1.0.0
2024-09-09 17:04 UTC
Requires
- php: ~8.2.0 || ~8.3.0
- psr/container: ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.52
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.10
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- phpstan/phpstan-strict-rules: ^1.5
- phpunit/php-code-coverage: ^11.0
- phpunit/phpunit: ^11.0
Provides
README
KISS (Keep It Simple Stupid) PSR (PHP Standards Recommendations) 类。
安装
composer require arnapou/psr-container
packagist 👉️ arnapou/psr-container
何时使用此库
- 你需要关于 PSR 的简单装饰器、代理、适配器等
- 你需要涵盖基本内容的简单实现
示例 PSR-11 容器
服务定位器
$container = new \Arnapou\Psr\Psr11Container\ServiceLocator();
$container->registerFactory(
'db',
static function() {
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $pdo;
}
);
$container->get('db')->query('SELECT ....');
静态服务
/**
* @method static \PDO db()
*/
class Services extends \Arnapou\Psr\Psr11Container\StaticServices
{
public function getFactories(): iterable
{
yield 'db' => static function() {
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $pdo;
};
}
}
Services::db()->query('SELECT ....');
PHP 版本
日期 | 参考 | 8.3 | 8.2 |
---|---|---|---|
09/09/2024 | 1.0.x, 主要 | × | × |