Advertisement
Guest User

Untitled

a guest
Apr 4th, 2012
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. namespace Application\Model;
  2.  
  3. interface ProductManagerInterface
  4. {
  5.     public function findOneBy($field, $value);
  6.     public function findDeletedProducts();
  7. }
  8.  
  9. namespace Application\Entity;
  10.  
  11. use Application\Model\ProductManagerInterface;
  12.  
  13. class ProductManager implements ProductManagerInterface
  14. {
  15.     protected $em;
  16.     protected $class;
  17.     protected $repository;    
  18.      
  19.     public function __construct(EntityManager $em, $class)
  20.     {
  21.         $this->em = $em;
  22.         $this->class = $class;
  23.     }
  24.  
  25.     public function findOneBy($field, $value)
  26.     {
  27.         return $this->getRepository()->findOneBy($field, $value);
  28.     }
  29.  
  30.     public function findDeletedProducts()
  31.     {
  32.         return $this->getRepository()->findDeletedProducts();
  33.     }
  34.  
  35.     public function getRepository()
  36.     {
  37.         return $this->em->getRepository($this->class);
  38.     }
  39. }
  40.  
  41. namespace Application\Entity\Repository;
  42.  
  43. use Doctrine\ORM\EntityRepository;
  44.  
  45. class ProductRepository extends EntityRepository
  46. {
  47.     public function findDeletedProducts()
  48.     {
  49.         return $this->_em->createQuery('SELECT p FROM Application\Entity\Product p WHERE p.deleted = true');
  50.     }      
  51. }
  52.  
  53. namespace Application\Controller;
  54.  
  55. class ProductController extends Controller
  56. {
  57.     public function showAction()
  58.     {
  59.         //DiC container, encargado de ensamblar el manager inyectando las dependencias
  60.         $product = $this->get('product_manager')->findOneBy('slug', 'my-custom-product');
  61.         return array('product' => $product);
  62.     }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement