Php Symfony捆绑包允许自定义提供程序

Php Symfony捆绑包允许自定义提供程序,php,symfony,bundle,vendor,Php,Symfony,Bundle,Vendor,我正在为社区开发一个捆绑包 我的捆绑包有一个获取内容的服务。我有一个名为Providers的文件夹,其中包含一些提供者和一个AbstractProvider类。“我的所有提供程序”扩展了抽象提供程序 当开发人员使用字符串(如“my_class”)调用我的服务函数时,我使用以下名称从我的提供者实例化该类: <?php new MyClass(); 我的服务: class MyServiceProvider { public function __construct() { }

我正在为社区开发一个捆绑包

我的捆绑包有一个获取内容的服务。我有一个名为Providers的文件夹,其中包含一些提供者和一个
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\*;