Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> wynik SELECT-a automatycznie do pól obiektu
eccocce
post
Post #1





Grupa: Zarejestrowani
Postów: 165
Pomógł: 5
Dołączył: 10.07.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Hej,
Tak się zastanawiam jak załatwiacie sytuacje, gdy SELECT pobiera wam z bazy np. 50 pól i chcecie je umieścić jako wartości pól jakiegoś obiektu.

Np. mamy obiekt User, który ma 50 pól typu id, email, name, surname ...
Wszystkie dane Usera pobieramy z bazy. Do tej pory pisałem ręcznie:
$u = new User();
$u->setID($row['id']);
...
Dla 10 pól OK, ale gdy pól jest więcej, to trochę nieciekawie.

Macie jakieś sposoby na szybkie uzupełnianie?

PS: w trakcie pisania tego posta zdążyłbym ręcznie uzupełnić około 20 pól (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
askone
post
Post #2





Grupa: Zarejestrowani
Postów: 654
Pomógł: 121
Dołączył: 27.10.2007
Skąd: Poznań, Łódź

Ostrzeżenie: (0%)
-----


Tylko i wyłącznie ORM. O więcej zapytaj wujka G...

Pozdrawiam
Go to the top of the page
+Quote Post
eccocce
post
Post #3





Grupa: Zarejestrowani
Postów: 165
Pomógł: 5
Dołączył: 10.07.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Np. Propel?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Czemu tylko i wyłącznie ORM?
Wystarczy tylko dodać metody magiczne i po sprawie.
Go to the top of the page
+Quote Post
askone
post
Post #5





Grupa: Zarejestrowani
Postów: 654
Pomógł: 121
Dołączył: 27.10.2007
Skąd: Poznań, Łódź

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 8.09.2011, 14:36:37 ) *
Czemu tylko i wyłącznie ORM?
Wystarczy tylko dodać metody magiczne i po sprawie.


No można, ale jak zapewne wiesz wiele osób uważa ją za zło (IMG:style_emoticons/default/wink.gif) Stąd pewnie o niej nie pomyślałem...
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A ORM to niby z czego korzysta? ORM też korzysta z magii
Powód edycji: [nospor]:
Go to the top of the page
+Quote Post
melkorm
post
Post #7





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


IMHO klasa dziedzicząca po ArrayObject + magiczne __set i __get i tyle (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
destroyerr
post
Post #8





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


@nospor wszystkie ORM'y korzystają z metod magicznych?
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie mam bladego pojęcia. Nie używam żadnego.
Aczkolwiek jak widziałem kiedyś w ORM kod:
->getPoleX() to nie inaczej jak tylko przez magie mogli ro zrobić.
Go to the top of the page
+Quote Post
destroyerr
post
Post #10





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


No widzisz, nie używasz, nie masz bladego pojęcia a piszesz z pełną stanowczością. Propel generuje metody, a w Doctrine2 trzeba je napisać samemu - czyli da się bez magii.
Go to the top of the page
+Quote Post
bastard13
post
Post #11





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Kurde, nie miałem przyjemności z Propelem, a z Doctrinem tylko < 2, więc też nie wiem, ale znając lubość twórców bibliotek/ORMów/Frameworków PHP do używania metod magicznych przypuszczam, że i tak jest ich pełno tam pełno:) Z tego co wiem to encje w doctrine 2 rzeczywiście ich nie posiadają, ale to nie oznacza, że sam ORM ich nie zawiera.

Cytat(nospor @ 8.09.2011, 20:21:28 ) *
Nie mam bladego pojęcia. Nie używam żadnego.

Ja mimo nieustannego bluzgania na doctrine jednak nie wyobrażam sobie pracy bez czegoś w tym stylu. Chylę czoła:)

Ten post edytował bastard13 8.09.2011, 22:40:25
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Dobrze, przepraszam (IMG:style_emoticons/default/smile.gif)
Zmylił mnie kawałek kodu, który kiedyś widziałem. Gdybym miał chwilkę czasu to bym popatrzył na te ORM i się z Tobą pokłócił - no ale czasu na takie zabawy brak. (IMG:style_emoticons/default/wink.gif)

Cytat
Ja mimo nieustannego bluzgania na doctrine jednak nie wyobrażam sobie pracy bez czegoś w tym stylu. Chylę czoła:)
Ja zaś sobie nie wyobrażam jak można z tym pracować. Kiedyś się przymierzałem ale dałem sobie spokój - nie przemawia to do mnie w żaden sposób.
Go to the top of the page
+Quote Post
destroyerr
post
Post #13





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


Cytat
przypuszczam, że i tak jest ich pełno tam pełno:)

Aha, myślałem, że mówimy o encjach. Jednak jeśli chodzi o cały kod, to na pewno się tam znajdą choćby tylko dla dynamicznych finderów (przykład z dokumentacji):
  1. // A single user by its nickname
  2. $user = $em->getRepository('MyProject\Domain\User')->findOneBy(array('nickname' => 'romanb'));
  3.  
  4. // A single user by its nickname (__call magic)
  5. $user = $em->getRepository('MyProject\Domain\User')->findOneByNickname('romanb');


Cytat
Dobrze, przepraszam
Zmylił mnie kawałek kodu, który kiedyś widziałem. Gdybym miał chwilkę czasu to bym popatrzył na te ORM i się z Tobą pokłócił - no ale czasu na takie zabawy brak.

Nie ma co przepraszać. Szkoda jednak, że brak Ci czasu, nie musiałbyś gdybać.
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@destroyerr coś tu nie gra. "Krzyczysz" na mnie, że gdybam co do metod magicznych, podczas gdy ich nie ma, a zaraz potem sam podajesz przykład kodu gdzie te metody jednak są. O co kaman?
Go to the top of the page
+Quote Post
melkorm
post
Post #15





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Cytat
Ja zaś sobie nie wyobrażam jak można z tym pracować.


Zgadzam się w 100%.

Ja osobiście preferuje jakieś logiczne QueryBuildery typu Zend'a, bo np Kohany to się do niczego nie nadaje ;P
Go to the top of the page
+Quote Post
destroyerr
post
Post #16





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


@nospor, jeszcze raz. Byłem przekonany, że rozmawiamy o problemie przedstawionym w pierwszym poście. Ty napisałeś, że ORM'y wykorzystują do tego celu metody magiczne, a tak nie jest. Nie miałem pojęcia (bo i skąd miałem je mieć), że masz na myśli cały ORM skoro temat jest o hydracji.

@melkorm Propel i Doctrine też mają QueryBuildery (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #17





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
. Nie miałem pojęcia (bo i skąd miałem je mieć), że masz na myśli cały ORM skoro temat jest o hydracji.
Wspomniałem o ORM i metodach magicznych bo askone stwierdził że należy tylko używać ORM bo metody magiczne są ble.

Powiedziałem więc, że ORM też stosują metody magiczne, więc czemu nagle metody magiczne w ORM nie są ble a bez ORM są ble.
To tak jakby bardzo nie polecać silnika X, ale zachwalać już samochód z tym właśnie silnikiem.

Na co ty na mnie zacząłeś krzyczeć jak się okazuje bez powodu, ja teraz muszę przez ciebie do psychiatry chodzić bo mam nocne koszmary, rano budzę się cały rozstrzęsiony i tak przez cały dzień....wyślę ci rachunek za psychiatrę(IMG:style_emoticons/default/exclamation.gif) (IMG:style_emoticons/default/tongue.gif) (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 13:36