#symfony4 #phpspreadsheet
#symfony4 #phpspreadsheet
Вопрос:
У меня есть функция в классе в App / src / utils. У меня проблема с ее использованием с контроллера.
Мне нужно создать несколько листов с помощью phpspreadsheet. Длина метода составляет 260 строк. Я не думаю, что это хорошая практика иметь это в функции контроллера. Итак, я пытаюсь поместить это в класс (ExcelCreate) Я создал в App / Utils общедоступную функцию excelfrais, которая создает лист, используя массив с именем $ data и 2 переменные с именами $ user и $ nblig. Функция сохраняет лист и отправляет его в браузер. Я устанавливаю «использовать приложение Utils ExcelCreate;» в моем контроллере, я вызываю функцию из контроллера.
use AppUtilsExcelCreate;
...
class ComiteController extends Controller
{
public function frais(Request $request, $nblig)
{ ...
$data=$form->getData();
$nblig=$data['nblig'];
excelfrais($user,$data,$nblig); ...
}}
И вот моя проблема: у меня есть исключение: Попытка вызвать функцию «excelfrais» из пространства имен «App Controller»
Ответ №1:
У меня был большой поиск. Внимательно прочитав документацию Symfony, которую я там нашел:https://symfony.com/doc/current/best_practices/business-logic.html решение: в функции моего контроллера мне нужно использовать класс, функция которого является свойством :
public function frais(Request $request, ExcelCreate $create, $nblig)
{...}
и вызов этой функции должен быть
$create->excelfrais($user,$data,$nblig);