Я работаю над сайтом 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 ()?
Просто 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") );
}
Ты можешь позвонить 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()
) от вашего контроллера к внешнему классу. Это помогает сохранить ваши контроллеры тонкими, а вашу бизнес-логику — более независимой от фреймворка (что является хорошей практикой ИМХО).