Я установил следующую библиотеку с GitHub: https://github.com/rosell-dk/webp-конвертировать
Расположение основного класса, который мне нужен (из корня проекта):
\vendor\rosell-dk\webp-convert\src\WebPConvert.php
Вот как начинается класс WebPConvert.php:
namespace WebPConvert;
use WebPConvert\Converters\ConverterHelper;
use WebPConvert\ServeExistingOrConvert;
use WebPConvert\Serve\ServeExistingOrHandOver;
class WebPConvert
{
В классе репозитория, где я его использую, вот как я пытался сделать инъекцию зависимостей:
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
Есть ли дополнительный шаг, который я пропустил?
Спасибо Серад, это работает. Многое оценил.




Это ответ Серада, который сработал:
WebPConvert не является пакетом Symfony, поэтому в нем не будут определены какие-либо сервисы. Вам придется определить их вручную. На самом деле, из файла readme видно, что WebPConvert::convert — это статический метод, поэтому вводить нечего. Просто следуйте примеру.
WebPConvert не является пакетом Symfony, поэтому в нем не будут определены какие-либо сервисы. Вам придется определить их вручную. На самом деле, из файла readme видно, что WebPConvert::convert — это статический метод, поэтому вводить нечего. Просто следуйте примеру.