Clicky

Skocz do zawartości


Zdjęcie
- - - - -

[Symfony] "wydzielenie" logiki biznesowej (Entity)

Brak odpowiedzi do tego tematu

  • Zaloguj się, aby dodać odpowiedź

#1 mathieus

mathieus

    Początkujący

  • Użytkownik
  • Pip
  • 15 postów

Napisano 12 maj 2016 - 14:56

Witam,

 

na większości stronach internetowych z fragmentami kodu źródłowego, Entity jest załączony do kontrolera, np.

<?php
namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;

use AppBundle\Entity\Dzierzawca;

Część operacji Read (select) i Remove (delete) umieszcza się w EntityRepository, czyli do innego pliku, natomiast dołączanie Entity do kontrolera powoduje że wszystkie operacje związane z Create i Update umieszczane są w kontrolerze... (może się mylę)

 

Z jakiego wzorca projektowego powinienem skorzystać, żeby definicje encji były w osobnym (osobnych) plikach? Jak "przenieść" logikę biznesową (czy też CU - create update) poza kontrolery? Dodam, że poza "grubym" (nieczytelnym) kontrolerem problem pojawia się, gdy muszę pisać podobne funkcje do różnych kontrolerów...

 

Przykładowy fragment kontrolera:

    public function addNewAdres($idDzierzawcy,$ulica, $mieszkanie, $kodPocztowy, $miasto)
    {
	$emt = $this->getDoctrine()->getEntityManager();
	$dzierzawca = $emt->getRepository('AppBundle:dzierzawca')->find($idDzierzawcy);
        $newAdres = new Adres();
        $newAdres->ulica = $ulica;
        $newAdres->mieszkanie = $mieszkanie;
        $newAdres->kodPocztowy = $kodPocztowy;
        $newAdres->miasto = $miasto;
        $newAdres->dzierzawca = $dzierzawca;

        $em = $this->getDoctrine()->getManager();        
        $em->persist($newAdres);
        $em->flush();
        
        return $newAdres->getIdAdresu();
    }

... mam nadzieję, że opisałem problem czytelnie... z góry dziękuję za wszelkie wskazówki...






Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych