66use App \Entity \PostCount ;
77use App \Form \ArticleType ;
88use App \Repository \PostCountRepository ;
9+ use App \Service \UseCase \Article \RegisterUseCase ;
910use DateTime ;
1011use Exception ;
1112use Sensio \Bundle \FrameworkExtraBundle \Configuration \Template ;
1718
1819class ArticlesController extends AbstractController
1920{
21+ /**
22+ * @var RegisterUseCase
23+ */
24+ private $ registerUseCase ;
25+
26+ /**
27+ * @param RegisterUseCase $registerUseCase
28+ */
29+ public function __construct (RegisterUseCase $ registerUseCase )
30+ {
31+ $ this ->registerUseCase = $ registerUseCase ;
32+ }
33+
2034 /**
2135 * @Route("/articles", name="articles")
2236 * @Template()
@@ -41,26 +55,12 @@ public function index()
4155 */
4256 public function new (Request $ request )
4357 {
44- $ article = new Article ();
45- $ form = $ this ->createForm (ArticleType::class, $ article );
58+ $ form = $ this ->createForm (ArticleType::class);
4659
4760 $ form ->handleRequest ($ request );
4861 if ($ form ->isSubmitted () && $ form ->isValid ()) {
4962 $ article = $ form ->getData ();
50- $ entityManager = $ this ->getDoctrine ()->getManager ();
51- $ entityManager ->persist ($ article );
52- /** @var PostCountRepository $postCountRepository */
53- $ postCountRepository = $ this ->getDoctrine ()->getRepository (PostCount::class);
54- $ postCount = $ postCountRepository ->findOneBy ([
55- 'postDate ' => new DateTime (),
56- ]);
57- if (empty ($ postCount )) {
58- $ postCount = new PostCount ();
59- $ postCount ->setPostDate (new DateTime ());
60- $ entityManager ->persist ($ postCount );
61- }
62- $ postCount ->setPostCount ($ postCount ->getPostCount () + 1 );
63- $ entityManager ->flush ();
63+ $ this ->registerUseCase ->register ($ article );
6464
6565 $ this ->addFlash ('success ' , '登録しました ' );
6666 return $ this ->redirectToRoute ('articles ' );
0 commit comments