Buenas prácticas oficiales de Symfony

5.3. Cómo deberían ser los controladores Symfony

Considerando todo lo anterior, a continuación se muestra un ejemplo de cómo debería ser el código de los controladores de una aplicación Symfony típica:

namespace AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

class DefaultController extends Controller
{
    /**
     * @Route("/", name="homepage")
     */
    public function indexAction()
    {
        $em = $this->getDoctrine()->getManager();
        $posts = $em->getRepository('App:Post')->findLatest();

        return $this->render('default/index.html.twig', array(
            'posts' => $posts
        ));
    }
}