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 许可证下使用。