Привет всем, что я играю с Symfony3, читаю этот docs об обслуживающем контейнере. Acording к документации службы, объявленных в приложение/Config/services.yml как так:Symfony3 Service container docs error
# app/config/services.yml
services:
app.mailer:
class: AppBundle\Mailer
arguments: [sendmail]
и я могу к нему доступ в мой контроллер/классов, как это:
<?php
namespace Test\TestBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class HelloController extends Controller
{
public function sendEmailAction()
{
// ...
$mailer = $this->get('app.mailer');
var_dump($mailer);die();
// $mailer->send('[email protected]', ...);
}
}
я сделал exacley что, но я получаю эту ошибку:
You have requested a non-existent service "app.mailer".
Что я могу сделать неправильно в этом простом примере, я что-то упустил.
Я также заметил, что есть еще один файл services/yml в разделе Bundle/Resources/config.srvices.yml. Какой из них использовать, когда и почему ...?
Проверьте документы еще раз, потому что ваш аргумент sendmail неверен, хотя сам по себе не вызывает проблемы. Я подозреваю, что вы работаете в режиме производства и, возможно, не очищаете кеш. И вы используете S3 вместо старой версии S2? – Cerad
Эй, почему аргумент был бы неправильным? в любом случае это должно возникнуть с другой ошибкой в этом случае, я очистил кеш в моем уре, я делаю specyfie localhost: 8000/app_dev.php/whatever. Кроме того, документы говорят, что они версии 3.1. – John
Просто подумал немного странно, что вы хотите отправить строку «sendmail» в качестве аргумента конструктора. Но, как уже упоминалось, это не приведет к такой ошибке. Вы уверены, что используете пробелы, а не вкладки в файле yaml? В разделе импорта config.yml все еще есть службы? Все очень загадочно. Можете попробовать начать новый проект и ничего не делать, кроме создания одной службы и вызова ее из контроллера по умолчанию. – Cerad