comphp/drivers

允许动态管理驱动

v0.1.1 2024-02-17 17:27 UTC

This package is auto-updated.

Last update: 2024-09-17 18:53:39 UTC


README

CommonPHP 驱动管理库为 PHP 应用程序中的驱动实现提供了一个强大的框架。通过利用属性和契约,它提供了一个灵活的系统,可以在您的项目中无缝注册、启用和利用各种驱动。

功能

  • 灵活的驱动配置:使用 PHP 8 属性或指定驱动契约来配置驱动。
  • 动态驱动支持检查:根据其配置确定一个类是否可以作为驱动支持。
  • 驱动实例化:由 CommonPHP 服务管理框架按需管理驱动实例化,确保依赖注入和单例管理。
  • 全面的异常处理:对配置错误、不支持驱动和实例化问题进行详细异常处理。

安装

使用 Composer 将驱动管理库集成到您的项目中

composer require comphp/drivers

配置

定义驱动契约或属性

实现 DriverContract 用于基于接口/抽象类的驱动,或使用 DriverAttributeContract 来标记具有属性的驱动。

注册和配置 DriverManager

use CommonPHP\Drivers\DriverManager;
use CommonPHP\Drivers\ServiceProviders\DriverManagerServiceProvider;
use CommonPHP\ServiceManagement\ServiceManager;

// Initialize ServiceManager and register DriverManagerServiceProvider
$serviceManager = new ServiceManager();
$serviceManager->providers->registerProvider(DriverManagerServiceProvider::class);

// Retrieve an instance of DriverManager
$driverManager = $serviceManager->get(DriverManager::class);

// Configure DriverManager with an attribute or contract class
$driverManager->configure(
    attributeClass: YourDriverAttribute::class,
    contractClass: YourDriverContract::class
);

使用

启用一个驱动

一旦一个驱动满足配置的标准(属性或契约),就可以使用以下方式启用它

$driverManager->enable(YourDriverClass::class);

使用已启用的驱动

检索并使用一个已启用的驱动

$driver = $driverManager->get(YourDriverClass::class);
$driver->performAction();

贡献

欢迎对 CommonPHP 驱动管理库的贡献。请按照存储库中提供的贡献指南提交拉取请求或问题。

许可证

此库在 MIT 许可证下发布。有关详细信息,请参阅 LICENSE