Filesystems symfony 4-flysystem autowire

Filesystems symfony 4-flysystem autowire,filesystems,autowired,symfony4,flysystem,Filesystems,Autowired,Symfony4,Flysystem,你能帮我做这个吗 无法自动连线服务“App\Estimate\DocumentManager”:方法“\uu construct()”的参数“$flysystem”引用类“League\flysystem\Filesystem”,但不存在此类服务。您可能应该将此类别名为现有的“oneup\u flysystem.estimateDocumentsFilesystem\u文件系统”服务 我的配置文件: parameters: flysystem.local.estimate_documen

你能帮我做这个吗

无法自动连线服务“App\Estimate\DocumentManager”:方法“\uu construct()”的参数“$flysystem”引用类“League\flysystem\Filesystem”,但不存在此类服务。您可能应该将此类别名为现有的“oneup\u flysystem.estimateDocumentsFilesystem\u文件系统”服务

我的配置文件:

parameters:
    flysystem.local.estimate_documents.path: '%kernel.root_dir%/../public/uploads/estimate/documents'

services:
    app.estimate.document_manager:
        class: App\Estimate\DocumentManager
        lazy: true
        public: true
        arguments: ['@doctrine.orm.entity_manager', '@estimateDocumentsFilesystem', '@monolog.logger']

oneup_flysystem:
    filesystems:
        estimateDocumentsFilesystem:
            adapter: estimateDocumentsAdapter
            visibility: public
            alias: "estimate_documents_filesystem"

    adapters:
        estimateDocumentsAdapter:
            local:
                directory: "%flysystem.local.estimate_documents.path%"

class DocumentManager
{

    /**
     * @var EntityManager
     */
    private $manager;

    /**
     * @var Filesystem
     */
    private $flysystem;

    /**
     * @var Logger
     */
    private $logger;

    /**
     * DocumentManager constructor.
     *
     * @param EntityManagerInterface $manager
     * @param Filesystem $flysystem
     * @param Logger $logger
     */
    public function __construct(
        EntityManagerInterface $manager,
        Filesystem $flysystem,
        Logger $logger
    )
    {
        $this->manager = $manager;
        $this->flysystem = $flysystem;
        $this->logger = $logger;
    }
}
非常感谢。我不明白问题出在哪里

//编辑:

如果我添加这个如果我在配置中添加这个

services:
League\Flysystem\FilesystemInterface: '@estimate_documents_filesystem'
它只适用于一个文件系统,而f。。这是错的吗

致以最良好的祝愿
Jimmy需要关闭自动布线和自动配置。添加以下内容:

autoconfigure:false
autowire:false
完整配置:

App\Estimate\Document\DocumentManager:
    autoconfigure: false
    autowire: false
    arguments: ['@doctrine.orm.entity_manager', '@estimate_documents_filesystem', '@monolog.logger']

App\User\DocumentManager:
    autoconfigure: false
    autowire: false
    arguments: ['@doctrine.orm.entity_manager', '@user_avatars_filesystem', '@monolog.logger']

在我看来,禁用自动配置的答案是愚蠢的,因为Symfony的最佳实践就是使用它

问题在于,
OneupFlysystemBundle
的当前版本没有正确配置其服务以正确使用Symfoyny的自动连线

因此,在捆绑包中修复此问题之前,正确的解决方法是手动将接口标记为正确的服务。 为您效劳。亚马尔

League\Flysystem\FilesystemInterface: "@estimate_documents_filesystem"

(注意:如果您使用此捆绑包的默认配置并遵循其步骤,则该服务将被命名为
“@oneup\u flysystem.acme\u filesystem”
,或者通过遵循Symfony最佳实践,它应该是
”@oneup\u flysystem.app\u filesystem)
如果只有一个文件系统。如果不确定,可以使用
bin/console debug:container
查找服务的正确名称)

让多个文件系统执行以下操作:

services.yaml
   services:
        _defaults:
            bind:
                publicUploadFileSystem: '@oneup_flysystem.public_uploads_filesystem_filesystem'
oneup_flysystem.yaml
    oneup_flysystem:
        adapters:
            public_uploads_adapter:
                local:
                    directory: '%kernel.project_dir%/public/uploads'
        filesystems:
            public_uploads_filesystem:
                adapter: public_uploads_adapter

教程:

返回:`服务“App\service\UploaderHelper”依赖于不存在的服务“oneup\u flysystem.public\u uploades\u filesystem”`