effectra / facade
Effectra Facade 类。
v1.0.0
2023-05-26 21:40 UTC
Requires
- php: ^8.0.2
README
Facade 类是一个实用类,它提供了一种简化接口,用于访问您的 PHP 应用程序中的类或服务。
安装
Facade 类是一个独立类,不需要安装。您只需将类文件包含到您的项目中即可。
composer require effectra/facade
用法
要使用 Facade 类,请按照以下步骤操作
- 通过您的自定义外观类扩展
Facade类。 - 在您的自定义外观类中实现
getFacadeAccessor()方法。 - 可选地,使用
setResolvedInstance()或setContainer()方法分别设置解析的实例或容器。 - 使用您自定义的外观类的静态方法访问底层类或服务的功能。
以下是一个示例
use Effectra\Facade; class MyFacade extends Facade { protected static function getFacadeAccessor() { return MyService::class; } } // Usage MyFacade::setResolvedInstance(new MyService()); MyFacade::someMethod();
在这个示例中,我们通过扩展 Facade 类创建了一个自定义外观类 MyFacade。在 MyFacade 中的 getFacadeAccessor() 方法返回我们想要通过外观访问的 MyService 类的类名。
通过使用 setResolvedInstance() 设置解析的实例,我们直接向外观提供了 MyService 的实例。这使得我们可以通过 MyFacade 的静态方法访问 MyService 的方法。
您还可以使用容器而不是直接设置解析的实例。为此,创建一个容器,将类名绑定到容器中的键,并使用 setContainer() 设置容器。
use Effectra\Facade; use Effectra\Container\Container; class MyFacade extends Facade { protected static function getFacadeAccessor() { return 'myService'; } } // Usage $container = new Container(); $container->bind('myService', MyService::class); MyFacade::setContainer($container); MyFacade::someMethod();
在这个示例中,我们使用了一个简单的 Container 类,将 MyService 的类名绑定到键 'myService'。通过使用 setContainer() 设置容器,当调用静态方法时,Facade 类从容器中解析实例。
请确保将 'MyService' 和 'someMethod()' 替换为您在应用程序中使用的实际类名和方法名。
贡献
欢迎贡献!如果您发现任何问题或想添加新功能或改进,请提交问题或拉取请求。
在贡献之前,请确保审查贡献指南。
许可
此类是开源的,可在MIT 许可证下使用。