Я работаю над приложением, которое служит API. Я реализовал метод POST для добавления записей в таблицу в приложении.
У меня также есть команда, которую нужно запускать ежедневно - есть ли способ вызвать мой метод POST API изнутри моей команды? Или мне просто вызвать по URL-адресу приложения?
Я использую Symfony 3.4.6.
Ценю любой совет.
Возможный дубликат Вызов действия из команды
Подход с использованием URL-адреса, пожалуй, самый чистый, но вы также можете переместить функцию добавления записи в его собственную службу, а затем вызвать службу как из контроллера, так и из команды.
как написал Серад, это способ, как это сделать. настоящая cronjob работает с консоли, а не через URL-адрес. Создайте службу, которая выполняет эту работу, и вызовите эту службу из контроллера и из класса команд консоли: symfony.com/doc/current/console.html






Вы можете реализовать компонент symfony / console: https://symfony.com/doc/current/components/console.htmlhttps://symfony.com/doc/current/console.html
Вы можете использовать Symfony kernel для выполнения HTTP-запросов.
Вы можете использовать то же ядро Консоли или создать новое (если вам нужно изменить окружение).
use App\Kernel;
use Symfony\Component\HttpFoundation\Request;
kernel = new Kernel('prod', false);
$request = Request::create('/toto', 'GET');
$response = $kernel->handle($request, HttpKernelInterface::MASTER_REQUEST, false);
die($response->getContent());
(проверено с Symfony 5).
Ядро является абстрактным в Symfony 4
Вы можете запланировать задание cron для вызова вашего действия с помощью
curl.