![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 496 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Chciałem prosić o wytłumaczenie działania/przeznaczenia dwóch klas generowanych przez Symfony w momencie generowania tabel bazy danych na przykładzie tabeli "Category" , a więc: Category.class.php oraz CategoryTable.class.php ... tylko proszę o przykłady metod z zapytaniami ponieważ o regułkach czytałem ![]() Chodzi o to że dopiero zaczynam przygodę z Symfony i nie wszystko na początku jest takie jasne jakby się mogło wydawać. Mam wrażenie że nie ma znaczenia w której z tych dwóch klas zrobię sobie metodę z zapytaniem typu: SELECT * FROM Category lub SELECT * FROM Category WHERE is_active = 1 daję tylko proste przykłady bo operuję ogólnie na złączeniach i trochę nie kumam po co są aż DWIE klasy generowane przez Symfony. Przecież wystarczyłaby tylko jedna klasa. Po co dwie ? Może nie mam racji ... hmm dzięki Ten post edytował damianooo 14.08.2012, 09:05:24 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Jeżeli dopiero zaczynasz z Sf/Doctrine, dlaczego robisz to z tak starymi wersjami obu projektów (gałęzie 1.x)?
2. Obiekty Category reprezentują pojedynczy wpis w bazie danych, natomiast obiekt CategoryTable reprezentuje tabelę - w nim powinny znaleźć się metody zwracające dane. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 496 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Co zasugerowało Ci, że robię to na tak starych wersjach obu projektow ?
mam nadzieję że nie mój zapis w SQL Ja to napisałem przykładowo A wiem że powinno być coś tego typu: public function getCategoryDate() { $q = $this->createQuery('c') ->where('c.is_active = ?', true) ; return $q->execute(); } P.S. Nie chodzi Ci chyba o to że używam Symfony 1.4 zamiast 2.0 ? ![]() Jednak o to Ci chodzi. A więc spytam: Dlaczego by nie ? Mam powód, dla którego używam Symfony 1.4 - na razie muszę ![]() ![]() ![]() na razie chciałem skumać te różnice w tych dwóch klasach żeby to dobrze rozumieć i umieć stosować bez problemu Ten post edytował damianooo 14.08.2012, 10:13:45 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Co zasugerowało Ci, że robię to na tak starych wersjach obu projektow ? Nazewnictwo klas wygenerowanych przez Doctrine.Cytat A więc spytam: Dlaczego by nie ? Mam powód, dla którego używam Symfony 1.4 - na razie muszę ... Jeżeli musisz z jakiegoś powodu korzystać ze starej wersji to OK. Jednak w pierwszym poście zasugerowałeś, że dopiero uczysz się korzystać z obu narzędzi stąd moja uwaga, że uczenie się w celu przyszłego stosowania starej wersji jest bez sensu.Cytat w Symfony 2.0 nie ma generowania takich dwóch klas ? Jest jedna ? Jeśli tak to fakt , jest postęp ... pewnie będę za jakiś czas zmieniał na Symfony 2.0 ale nie wiem kiedy ponieważ to nie zależy ode mnie To jest kwestia Doctrine, nie Symfony. Jednak nadal są dwie klasy, ponieważ obiekty tych klas są odpowiedzialne za zupełnie inne zadania.Klasa Category jest klasą encji, natomiast klasa CategoryTable (CategoryRepository w przypadku Doctrine2) jest klasą repozytorium. Google: entity repository model - powinno coś tam sensownego wyszukać, z jasnym opisem za co dokładnie odpowiedzialne są obiekty jednej i drugiej klasy. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 348 Pomógł: 26 Dołączył: 8.10.2008 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Klasa Category jest klasą encji, natomiast klasa CategoryTable (CategoryRepository w przypadku Doctrine2) jest klasą repozytorium. Że się tak wkleję... Crozin, czytałem na temat encji różne informacje, na tyle różne, że wraz nie potrafiłbym wytłumaczyć co to jest. Mogłbyś wytłumaczyć w prosty sposób o co chodzi? Korzystam z Doctrine 1, rzadziej z D2 i o repozytorium też niewiele wiem... Czym różni się encja od repozytorium? -------------------- Wolałem języki z rodziny C ale poszedłem na łatwizne...
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 496 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Cytat 2. Obiekty Category reprezentują pojedynczy wpis w bazie danych, natomiast obiekt CategoryTable reprezentuje tabelę - w nim powinny znaleźć się metody zwracające dane. Możesz mi to wytłumaczyć na podstawie poniższych metod : Bo na przykład w tutorialu z Symfony , w Jobeet jest tak : w klasie Category:
a w klasie CategoryTable :
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
@Adi32,
to są elementy Domain-Driven Design, tutaj jest przystepnie opisane: http://net.tutsplus.com/tutorials/domain-driven-design/ -------------------- :]
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 13:06 |