Как получить доступ к компонентам Symfony в пользовательском основном файле

57
3

Я работаю над созданием пакетного файла, который будет получать некоторые данные из БД и отправлять электронную почту. Папка Batch создается на том же уровне app and web. Теперь мой вопрос: как получить доступ к БД и другим элементам управления из контроллера.

Я попытался импортировать use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; но он дает ошибку, говоря, что таких файлов не найдено.

Я не хочу, чтобы это было приложение командной строки/консоли.

Моя цель - создать файл, который использует компоненты symfony и Doctrine, оставаясь вне пакета/контроллера. Как импортировать файлы в файл?.

спросил(а) 2017-03-22T11:57:00+03:00 3 года, 7 месяцев назад
1
Решение
99

Сначала я действительно рекомендую создать для этого команду консоли Symfony.

Но если вы действительно хотите создать файл (скажем, test.php) в корне вашего документа, вы можете загрузить службу symfony следующим образом:

<?php
require __DIR__.'/app/autoload.php'; // load the autoloader

$kernel = new AppKernel('prod', false); // create a kernel instance
$kernel->loadClassCache(); // load the class cache
$kernel->boot(); // boot the kernel which will initialise the container.

$myInstance = $kernel->getContainer()->get('myservice');

$myInstance->doWhatever();

PS: Там вы также сможете использовать все остальные компоненты symfony.

PPS: Notice: Use of undefined constant OCI_COMMIT_ON_SUCCESS - assumed 'OCI_COMM IT_ON_SUCCESS' сообщает вам, что что-то не так с вашим расширением oci8 попробуйте повторно установить/установить или включить его снова. http://php.net/manual/en/oci8.installation.php

ответил(а) 2017-03-22T12:55:00+03:00 3 года, 7 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема