/** * @Method({"POST"}) * @Route( * "/news_load", * name="news_load", * host="{_locale}.{domain}", * defaults={"_locale" = "%locale%", "domain" = "%domain%"}, * requirements={"_locale" = "%locale%|en", "domain" = "%domain%"}, * condition="request.isXmlHttpRequest()" * ) * @Route( * "/news_load", * name="news_load_default", * host="{domain}", * defaults={"_locale" = "%locale%", "domain" = "%domain%"}, * requirements={"domain" = "%domain%"}, * condition="request.isXmlHttpRequest()" * ) */ public function newsLoadAction(Request $request) { // I really wanted to see that badass loader! XD usleep(250000); // --- if (!$request->request->has('count') || !is_numeric($request->request->get('count')) || empty($request->request->get('count'))) { return new Response(json_encode(['isLast' => TRUE])); } $_manager = $this->getDoctrine()->getManager(); $newsNumber = $_manager->getRepository('AppBundle:Article')->count(); $news = $_manager->getRepository('AppBundle:Article')->findBy([], ['publicationDate' => 'DESC'], Article::ARTICLES_PER_LIFT, $request->request->get('count')); if (!$news) { $response = ['data' => ['isLast' => TRUE], 'code' => 200]; } else { $isLast = $request->request->get('count') + count($news) == $newsNumber; $response = ['data' => Article::getTransformedArticles($news, $isLast, $request->getLocale()), 'code' => 200]; } return new Response(json_encode($response['data']), $response['code']); }