Resources/config/services.xml
<?xml version="1.0" ?> <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> <parameters> <parameter key="main_publisher.game.manager.class">Main\PublisherBundle\Manager\GameManager</parameter> </parameters> <services> <service id="main_publisher.game.manager" class="%main_publisher.game.manager.class%"> <argument type="service" id="doctrine.orm.entity_manager" /> </service> </services> </container> |
Manager/BaseManager.php
<?php namespace Main\PublisherBundle\Manager; class BaseManager { protected function persistAndFlush($entity) { $this->_em->persist($entity); $this->_em->flush(); } } |
Manager/GameManager.php
<?php namespace Main\PublisherBundle\Manager; use Doctrine\ORM\EntityManager; use Main\PublisherBundle\Manager\BaseManager; use Main\PublisherBundle\Entity\Game; class GameManager extends BaseManager { protected $_em; public function __construct(EntityManager $em) { $this->_em = $em; } public function save(Game $game) { return $this->persistAndFlush($game); } public function getRepository() { return $this->_em->getRepository('MainPublisherBundle:Game'); } } |
Controller/GamesController.php
<?php namespace Main\PublisherBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; use Symfony\Component\HttpFoundation\Request; use Main\PublisherBundle\Entity\Game; use Main\PublisherBundle\Form\GameType; class GamesController extends Controller { public function newAction(Request $request) { $form = $this->createForm(new GameType(), new Game()); if($request->getMethod() == 'POST') { $form->bindRequest($request); if($form->isValid()) { $game = $form->getData(); $manager = $this->container->get('main_publisher.game.manager'); $manager->save($game); return $this->redirect($this->get('router')->generate('homepage')); } } return $this->render('MainPublisherBundle:Games:new.html.twig', array('form' => $form->createView())); } } |