저는 Symfony를 처음 사용하며 약간 문제가 있습니다. 온라인에서 검색 중이며 문제에 대한 답변을 찾을 수 없습니다. API를 만들고 비슷한 메서드 (addUserImage, addInstructorImage)를 사용하는 두 개의 컨트롤러 (UserController, InstructorController)가 있습니다. 나는 추상적 인 BaseImage (파일 저장), InstructorImage 및 UserImage (여기에 설정된 경로)를 만들었습니다. 이 컨트롤러는 내 컨트롤러입니다.최적화 - 두 가지 유사한 방법
/**
* @ApiDoc(
* name="addInstructorImage", section="Instructors",
* description="Add Instructor Image",
*)
*
* @Route("/instructor/{instructor}/image", name="instructors.image.add")
* @Method("POST")
*
* @param Request $request
* @param Instructor $instructor
* @View
*
* @return \FOS\RestBundle\View\View
*/
public function addInstructorImage(Request $request, Instructor $instructor)
{
$this->denyAccessUnlessGranted('edit', $instructor->getUser());
$image = new InstructorImage();
$form = $this->get('form.factory')
->createNamed('', InstructorImageType::class, $image, ['csrf_protection' => false, 'method' => 'POST']);
$form->handleRequest($request);
if ($form->isValid()) {
$image->setInstructor($instructor);
$em = $this->getDoctrine()->getManager();
$em->persist($image);
$em->flush();
return $this->view(null, Response::HTTP_NO_CONTENT);
}
return $this->view($form, Response::HTTP_BAD_REQUEST);
}
두 번째 컨트롤러는 동일합니다. 유일한 차이점은 다른 개체 및 다른 양식입니다. 이 코드를 최적화하는 가장 좋은 방법은 무엇입니까? 사진을 추가하거나 체인 핸들러를 사용하는 서비스를 만들어야합니까? 어쩌면 당신은 더 좋은 아이디어를 가지고 있을까요? 도움을 주셔서 감사합니다.
이 질문은 [ProgrammersStack] (http://programmers.stackexchange.com/)에 훨씬 적합하다고 생각합니다. 여기서 좋은 대답을 얻지 못할 수도 있습니다. – Jurik
@jurik 다른 사이트를 참조 할 때 [cross-posting frowned at]을 가리키는 것이 도움이되는 경우가 많습니다 (http://meta.stackexchange.com/tags/cross-posting/info) – gnat
물론 Wojciech는이 답변을 삭제해야합니다 질문. @gnat - 마이그레이션을 위해 플래그를 지정할 수 있다면 도움이 될 것입니다. – Jurik