Получить JsonResponse вызываемой функции

Я работаю над сайтом Symfony. В основном я получил две функции, которые возвращают оба JsonResponse:

public function myFirstFunction() {
mySecondFunction();
return new JsonResponse(JsonResponse of mySecondFunction() ????);
}

public function mySecondFunction() {
return new JsonResponse(array("result" => "ok", "sent" => "yes));
}

Мой вопрос: как myFirstFunction () может вернуть JsonResponse, возвращенный mySecondFunction ()?

0

Решение

Просто return это с $this-> так как вы звоните method в течении object, Возврат метода процедурный стиль return mySecondFunction(); не будет работать.

public function myFirstFunction() {
return $this->mySecondFunction();
// return new JsonResponse(JsonResponse of mySecondFunction() ????);
}

public function mySecondFunction() {
return new JsonResponse( array("result" => "ok", "sent" => "yes") );
}
0

Другие решения

Ты можешь позвонить mySecondFunction непосредственно:

public function myFirstFunction() {
return $this->mySecondFunction();
}

Но, возможно, лучше создать новый (приватный) метод, который создает данные. Это поможет сохранить ваш код DRY:

private function getData()
{
return array("result" => "ok", "sent" => "yes");
}

public function myFirstFunction() {
return new JsonResponse($this->getData());
}

public function mySecondFunction() {
return new JsonResponse($this->getData());
}

Если это работает для вас, вы можете легко переместить свою бизнес-логику (в этом случае getData()) от вашего контроллера к внешнему классу. Это помогает сохранить ваши контроллеры тонкими, а вашу бизнес-логику — более независимой от фреймворка (что является хорошей практикой ИМХО).

0

По вопросам рекламы [email protected]