(Symfony 4) 无法注入我用 composer 安装的 github 库
(Symfony 4) Unable to inject a github library that I installed with composer
我从 GitHub 安装了以下库:https://github.com/rosell-dk/webp-convert
我需要的主要 class 的位置是(从项目根目录):
\vendor\rosell-dk\webp-convert\src\WebPConvert.php
WebPConvert.php class 是这样开始的:
namespace WebPConvert;
use WebPConvert\Converters\ConverterHelper;
use WebPConvert\ServeExistingOrConvert;
use WebPConvert\Serve\ServeExistingOrHandOver;
class WebPConvert
{
在我使用它的存储库 class 中,这是我尝试进行依赖注入的方式:
use WebPConvert\WebPConvert;
class PhotoRepository extends ServiceEntityRepository
{
/**
* @var WebPConvert
*/
protected $webPConverter;
public function __construct(WebPConvert $webPConverter)
{
$this->webPConverter = $webPConverter;
}
我按照 https://symfony.com/doc/current/service_container.html
的说明进行操作
但我仍然收到这条消息:
Cannot autowire service "App\Repository\PhotoRepository": argument "$webPConverter" of method "__construct()" references class "WebPConvert\WebPConvert" but no such service exists.
我什至试过将它放入我的 services.yaml 但它不起作用:
App\Repository\PhotoRepository:
arguments:
- WebPConvert\WebPConvert
我还缺少额外的步骤吗?
这是 Cerad 的有效回答:
WebPConvert 不是 Symfony 包,因此它不会定义任何服务。您将必须手动定义它们。实际上,从自述文件来看,WebPConvert::convert 是一个静态方法,因此没有什么可注入的。只需按照示例进行操作。
我从 GitHub 安装了以下库:https://github.com/rosell-dk/webp-convert
我需要的主要 class 的位置是(从项目根目录):
\vendor\rosell-dk\webp-convert\src\WebPConvert.php
WebPConvert.php class 是这样开始的:
namespace WebPConvert;
use WebPConvert\Converters\ConverterHelper;
use WebPConvert\ServeExistingOrConvert;
use WebPConvert\Serve\ServeExistingOrHandOver;
class WebPConvert
{
在我使用它的存储库 class 中,这是我尝试进行依赖注入的方式:
use WebPConvert\WebPConvert;
class PhotoRepository extends ServiceEntityRepository
{
/**
* @var WebPConvert
*/
protected $webPConverter;
public function __construct(WebPConvert $webPConverter)
{
$this->webPConverter = $webPConverter;
}
我按照 https://symfony.com/doc/current/service_container.html
的说明进行操作但我仍然收到这条消息:
Cannot autowire service "App\Repository\PhotoRepository": argument "$webPConverter" of method "__construct()" references class "WebPConvert\WebPConvert" but no such service exists.
我什至试过将它放入我的 services.yaml 但它不起作用:
App\Repository\PhotoRepository:
arguments:
- WebPConvert\WebPConvert
我还缺少额外的步骤吗?
这是 Cerad 的有效回答:
WebPConvert 不是 Symfony 包,因此它不会定义任何服务。您将必须手动定义它们。实际上,从自述文件来看,WebPConvert::convert 是一个静态方法,因此没有什么可注入的。只需按照示例进行操作。