我刚刚在symfony中创建了一个新服务:
// AppBundle\Services\FileUploader.php
<?php
namespace AppBundle\Services;
class FileUploader {
private $imagesDir;
private $videosDir;
public function __construct($imagesDir, $videosDir) {
$this->imagesDir = $imagesDir;
$this->videosDir = $videosDir;
}
public function upload($form) {
///...
///...
}
return $form;
}
}
我还在services.yml文件中添加了以下内容:
// app\config\services.yml
file.uploader:
class: AppBundle\Services\FileUploader
arguments:
- '%images_directory%'
- '%videos_directory%'
但是,当我尝试使用以下命令从我的控制器调用它时
$uploadModel = $this->get('file.uploader');
我收到以下错误:
您已请求不存在的服务“file.uploader”。
即使我在config.yml中指定了我的参数并运行了
php bin/console debug:container file.upload --show-arguments
我明白了:
Service ID file.upload
Class AppBundle\Services\FileUploader
任何想法
答案 0 :(得分:0)
服务通常保存在缓存中。 你试过打扫它吗?
php app/console cache:clear --env=prod
php app/console cache:clear --env=dev
答案 1 :(得分:0)
您应将服务标记为public
:
file.uploader:
class: AppBundle\Services\FileUploader
public: true
arguments:
- '%images_directory%'
- '%videos_directory%'