Php Symfony捆绑包允许自定义提供程序
我正在为社区开发一个捆绑包 我的捆绑包有一个获取内容的服务。我有一个名为Providers的文件夹,其中包含一些提供者和一个Php Symfony捆绑包允许自定义提供程序,php,symfony,bundle,vendor,Php,Symfony,Bundle,Vendor,我正在为社区开发一个捆绑包 我的捆绑包有一个获取内容的服务。我有一个名为Providers的文件夹,其中包含一些提供者和一个AbstractProvider类。“我的所有提供程序”扩展了抽象提供程序 当开发人员使用字符串(如“my_class”)调用我的服务函数时,我使用以下名称从我的提供者实例化该类: <?php new MyClass(); 我的服务: class MyServiceProvider { public function __construct() { }
AbstractProvider
类。“我的所有提供程序”扩展了抽象提供程序
当开发人员使用字符串(如“my_class”
)调用我的服务函数时,我使用以下名称从我的提供者实例化该类:
<?php
new MyClass();
我的服务:
class MyServiceProvider
{
public function __construct() { }
/* $providerName exemple: "my_provider" */
public function getProvider( $provierName )
{
$providerClass = str_replace('_', '', ucwords($contentType->identifier, '_'))."Provider";
/** @var AbstractProvider $provider */
$provider = new $providerClass( $provierName );
return $provider;
}
}
如何允许开发人员在其提供程序中拥有自己的文件夹提供程序,并允许我的服务在此系统中实例化它
也许是这样的
use **\Toto\Providers\*;
谢谢 为什么不使用全名?在这种情况下,您不需要包含任何用途。您可以使用类似的配置包配置提供程序,并且在AbstractProvider中,您可以放置一个抽象方法来为用户用来调用它的提供程序命名
我希望可以帮助您为什么不像
BlockRubricProvider::class那样调用并检查名称空间或其他检查?
use **\Toto\Providers\*;