Vic*_*sky 6 php symfony symfony-components symfony-filesystem symfony-finder
我使用Symfony标准版并试图让Symfony Finder组件像服务一样,但没有找到它.要使用Finder,我需要手动创建它,如:
$finder = new Symfony\Component\Finder\Finder();
Run Code Online (Sandbox Code Playgroud)
为什么我无法从服务容器中获取它?这是错的吗?
PS Symfony Filesystem组件存在于服务容器中,并按名称提供filesystem.
Symfony的Finder组件是一个独立的组件,它不是FileSystem组件的一部分:
没有"finder"服务,因为Finder实例是需要被操作才能工作的对象.由于对象总是通过引用传递,如果有人修改了一次服务,每个人都会看到这些更改.这不是您想要的此组件.
但是您可以将自己的服务创建为Finder实例,并仅在另一个服务中使用此服务(作为依赖项).
用一些代码补充Yann Eugone的答案。这是您可以从ServiceComponent创建自己的FinderService并注入其他服务的方式。
services.yml
std.symfony_finder:
class: Symfony\Component\Finder\Finder
public: false
std.your_service:
class: Std\AppBundle\Services\YourService
arguments: [@std.symfony_finder]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2917 次 |
| 最近记录: |