我使用的是Symfony3和注意到,即factory-class和factory-method不再存在,但factory确实存在。
这是相当令人沮丧的,因为我想使用pulse00 00/ffmpeg-bundle,但services.xml似乎是前3.0。

如您所见,4个红色标记属性是问题所在:
factory-class="%dubture_ffmpeg.ffmpeg.class%" factory-method="create"
factory-class="%dubture_ffmpeg.ffprobe.class%" factory-method="create"示例(Symfony3版本):
services:
newsletter_manager:
class: NewsletterManager
factory: [NewsletterManagerFactory, createNewsletterManager]问题:
如何更新services.xml以使其与Symfony3正确工作?
我尝试过的:
我尝试将两者结合在一起,但没有成功,而是使用了factory。但显而易见的“工厂”也是不允许的。
错误:
$ php bin/console server:run 我所犯的错误:
属性“工厂类”是不允许的。

发布于 2016-01-19 16:28:09
包的缺点,特别是当前从2到3的切换,是依赖于它们的维护人员来更新代码以支持新版本。
修复此问题的正常过程:
如果维护人员没有响应您的拉请求,或者您现在真的需要它。您可以在composer.json存储库列表中添加到叉的链接。https://getcomposer.org/doc/05-repositories.md#loading-a-package-from-a-vcs-repository
然后,它将安装您的分叉版本,其中包含修复。
发布于 2016-01-19 16:32:59
因为factory-class和factory-method在Symfony中被否决了,
你必须使用:
XML:
<services>
<service id="dubture_ffmpeg.ffmpeg" class="NewsletterManager">
<factory class="%dubture_ffmpeg.ffmpeg.class%" method="create" />
</service>
</services>或YAML:
services:
dubture_ffmpeg.ffmpeg:
class: NewsletterManager
factory: [%dubture_ffmpeg.ffmpeg.class%, create]第一个参数表示class属性,第二个参数表示method属性。
请参阅注入/factories.html
发布于 2016-01-19 16:22:54
我添加了<factory></factory>元素,并在其中定义了属性类和方法。目前,我已经能够顺利地运行服务器了。
<service id="dubture_ffmpeg.ffmpeg" class="%dubture_ffmpeg.ffmpeg.class%" lazy="true">
<factory class="%dubture_ffmpeg.ffmpeg.class%" method="create"></factory>
<argument type="collection">
<argument key="ffmpeg.binaries">%dubture_ffmpeg.binary%</argument>
<argument key="ffprobe.binaries">%dubture_ffprobe.binary%</argument>
<argument key="timeout">%dubture_ffmpeg.binary_timeout%</argument>
<argument key="ffmpeg.threads">%dubture_ffmpeg.threads_count%</argument>
</argument>
<argument id="logger" type="service"/>
</service>
<service id="dubture_ffmpeg.ffprobe" class="%dubture_ffmpeg.ffprobe.class%" lazy="true">
<factory class="%dubture_ffmpeg.ffprobe.class%" method="create"></factory>
<argument type="collection">
<argument key="ffmpeg.binaries">%dubture_ffmpeg.binary%</argument>
<argument key="ffprobe.binaries">%dubture_ffprobe.binary%</argument>
</argument>
<argument id="logger" type="service"/>
</service>https://stackoverflow.com/questions/34881570
复制相似问题