В symfony4 многое изменилось по сравнению с предыдущими версиями.Вы используете все как в предыдущей версии.Быстрое решение не является «предпочтительным» способом, но для запуска можно изменить ключ public
со значения по умолчанию false
на true
в вашем файле services.yaml.
Лучше оставитьэто личное и использовать вместо этого внедрение зависимостей.Изменилось и название службы (теперь только путь службы).Смотри документы здесь .Для вашего кода попробуйте следующее:
// services.yaml
services:
_defaults:
autowire: true
autoconfigure: true
public: false
App\Foo\Bar:
tags: { ** }
И контроллер с внедрением зависимости:
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class MyController extends AbstractController
{
public function baz(Request $request, Bar $bar)
{
$bar->doSomething();
}
}
Есть хороший учебник об этих вещах (и больше) здесь .