Wszystko
Wszystkie
Archiwum
#doctrine #symfony #php
Mam takie coś:
/**
*
* @ORM\PreRemove
*/
public function groupSizePreRemove()
{
$this->getCosting()->resetOpenBandOppositeRateType();
}
/**
* @ORM\PostUpdate
*/
public function groupSizePostUpdate()
{
$this->getCosting()->resetOpenBandOppositeRateType();
}
potem w kontrolerze wołane jest persist i flush przy remove oraz tylko flush przy update.
Pytanie: Dlaczego zmiana w innym entity (costing) zapisuje się do bazy przy preRemove ale przy preUpdate lub postUpdate jest ignorowana?
Mam takie coś:
/**
*
* @ORM\PreRemove
*/
public function groupSizePreRemove()
{
$this->getCosting()->resetOpenBandOppositeRateType();
}
/**
* @ORM\PostUpdate
*/
public function groupSizePostUpdate()
{
$this->getCosting()->resetOpenBandOppositeRateType();
}
potem w kontrolerze wołane jest persist i flush przy remove oraz tylko flush przy update.
Pytanie: Dlaczego zmiana w innym entity (costing) zapisuje się do bazy przy preRemove ale przy preUpdate lub postUpdate jest ignorowana?
- 1
@gajowy_marucha: to takie serialize-unserialize dla ORM, w okolicach 20 minuty jakoś o tym mówi. Źle się wyraziłem, używa się tego na encjach, ale na 99% przypadków można i powinno się uniknąć. Z własnego doświadczenia i obserwacji rozwoju innych programistów sprawa wygląda tak: nie znasz eventów -> poznajesz eventy -> "ej to zajebiste użyjmy tego do operacji przed usunięciem" -> "dorzućmy jeszcze preupdate" -> "ej #!$%@? osochozi, czemu to się zmienia/nie zmienia"
- 0
groupSizePreRemove()
@gajowy_marucha: Unikaj w encji nazw typu
PreRemove
– nie ma znaczenia, że odpalasz to akurat przed usunięciem. Możesz przecież normalnie „ręcznie” odpalić sobie tę metodę z usługi czy kontrolera, więc wystarczy w nazwie samo groupSize()
, bez wskazywania „kiedy”.groupSizePreRemove
igroupSizePostUpdate
Te dwie metody chyba mogą być zamienione w jedną – po prostu użyj dwóch annotacji na jednej metodzie?
Używam listeners, nawet teraz przenoszę to do mojego EntityListener. Problem
@incognito_man: Jaka logika? Chce tylko przypisać użytkownika do encji. Po drugie co złego jest w trzymaniu logiki w encjach? Uważasz że DDD nie ma sensu?
- 1
@Lisek-Chytrusek: @incognito_man: w sumie proste jak #!$%@?, a dumam nad tym jak nad perpetum mobile.dzięki
- 1
- 7
- TwigTechnology
- Jurigag
- konto usunięte
- morq
- Arthes
- +2 innych
- 0
@icouldliveinhope: hard to obsłużyć korzystając z doctrine 10k równoległych sesji użytkowników piszących po bazie
https://gist.github.com/miedzwin/1472ebc3194c9bb5d630
Dlaczego $this->getSQL() w UserRepository zwraca mi taki SQL:
Dlaczego $this->getSQL() w UserRepository zwraca mi taki SQL:
SELECT f0_.username AS username_0, f0_.username_canonical AS username_canonical_1, f0_.email AS email_2, f0_.email_canonical AS email_canonical_3, f0_.enabled AS enabled_4, f0_.salt AS salt_5, f0_.password AS password_6, f0_.last_login AS last_login_7, f0_.locked AS locked_8, f0_.expired AS expired_9, f0_.expires_at AS expires_at_10, f0_.confirmation_token AS confirmation_token_11, f0_.password_requested_at AS password_requested_at_12, f0_.roles AS roles_13, f0_.credentials_expired AS credentials_expired_14, f0_.credentials_expire_at AS credentials_expire_at_15, f0_.id AS id_16, f0_.facebook_id AS facebook_id_17, f0_.first_name AS first_name_18, f0_.created AS created_19, f0_.updated AS
@mariecziek: nie. Nie buduje się obecnie SQLu z parametrami. Robi to już driver sam, PDO który jest zakorzeniony w samym silniku PHP.
Driver sam w miejsca pytajników stawia parametry. Dlaczego? Bo spora część programistów to debile i nie zważają na problemy z SQL injection, tak więc ogólnie jest zakazane wstawiać parametry do SQL'a 0 - a wstawiać parametry do sqla zostawia się profesjonaliście - driverowi.
Driver sam w miejsca pytajników stawia parametry. Dlaczego? Bo spora część programistów to debile i nie zważają na problemy z SQL injection, tak więc ogólnie jest zakazane wstawiać parametry do SQL'a 0 - a wstawiać parametry do sqla zostawia się profesjonaliście - driverowi.
@mariecziek: włącz sobie Symfony debug bar i masz tam liste SQLi. Następnie naciśnij na "View runabble sql"
- 1
- 0
@incognito_man: okej, a jak w subquery chce się odwołać do query aliasu wyżej ? może napiszę o co mi chodzi - chcę wyświetlić z bazy takie rekordy, dla których wartość jakiegoś pola powtarza się więcej niż dwa razy
- 1
@incognito_man: a dobra, having a nie where xD w sumie nawet subquery nie potrzebuje
#php #doctrine #symfony2
Piszę aktualnie moduł w symfony który właściwie jest osobną aplikacją - ma gadać ze starym systemem. Stary system to stare php nawet nie nazwałbym tego proceduranlym :)
Pytanie jak się zabrać za bazę - chciałem robić osobną ale nie wiem jak potem wyglądać będzie praca na dwóch entity managerach? Jak robić joiny? Czy może lepiej dać sobie spokój i dołączać nowe tabele do isntniejącej bazy (ale inne nazewnictwo tabel
Piszę aktualnie moduł w symfony który właściwie jest osobną aplikacją - ma gadać ze starym systemem. Stary system to stare php nawet nie nazwałbym tego proceduranlym :)
Pytanie jak się zabrać za bazę - chciałem robić osobną ale nie wiem jak potem wyglądać będzie praca na dwóch entity managerach? Jak robić joiny? Czy może lepiej dać sobie spokój i dołączać nowe tabele do isntniejącej bazy (ale inne nazewnictwo tabel
- 0
@gajowy_marucha: Dołączaj do obecnej bazy. Walić nazwy tabelek – Doctrine'owe encje nie muszą nazywać się tak samo.
Możesz mieć tabelkę
Możesz mieć tabelkę
dupa_cycki_komenty_do_artoof
i encję ArticleComment
– więc w czym problem? Z czasem może bazkę też poprawisz, ale na tym etapie interesuje Cię model.- 1
- 3
PHPconPL 2015: agenda gotowa, rekordowa liczba uczestników
m.in. będzie można posłuchać prelekcji na takie tematy:
- Jak wciągnąć eksperta domenowego w wir modelowania – lingwistyczne i wizualne techniki #ddd
- Code review – jak krytykować
- #doctrine ORM Good Practices and Tricks
- PHP7 w praktyce
- Why Your Test Suite Sucks
- #mysql under the siege
a także wziąć udział w warsztatach:
- Praktyczne wprowadzenie do Test Driven Development
- Jak
m.in. będzie można posłuchać prelekcji na takie tematy:
- Jak wciągnąć eksperta domenowego w wir modelowania – lingwistyczne i wizualne techniki #ddd
- Code review – jak krytykować
- #doctrine ORM Good Practices and Tricks
- PHP7 w praktyce
- Why Your Test Suite Sucks
- #mysql under the siege
a także wziąć udział w warsztatach:
- Praktyczne wprowadzenie do Test Driven Development
- Jak
- 4
@anonim1133: to kiedyś pewnie obejrzysz ;)
@gajowy_marucha: zawsze kisnę jak widzę ludzi tracących godziny/dni na zmiany rzeczy w kodzie html żeby ładnie wyglądało xD
- 1
- 2
#symfony #symfony2 #php #doctrine #mysql
Mam dwie encję: Post i Category. Post zawiera pole $category, a Category pole $posts - czyli typowa relacja one to many.
Chciałbym teraz pobrać post z powiązanym obiektem kategorii w jednym zapytaniu. W tym celu używam takiej funkcji umiejscowionej w PostRepository. Niestety ten DQL w połączeniu z kluczami obcymi generuje nieskończenie zagnieżdżone zapytanie ( ͡° ʖ̯ ͡°)
Jak powinienem to zrobić w prawidłowy
Mam dwie encję: Post i Category. Post zawiera pole $category, a Category pole $posts - czyli typowa relacja one to many.
Chciałbym teraz pobrać post z powiązanym obiektem kategorii w jednym zapytaniu. W tym celu używam takiej funkcji umiejscowionej w PostRepository. Niestety ten DQL w połączeniu z kluczami obcymi generuje nieskończenie zagnieżdżone zapytanie ( ͡° ʖ̯ ͡°)
Jak powinienem to zrobić w prawidłowy
@DiKey: Użyj query buildera
#php #doctrine #symfony2
Mam takie cos, wszystkko dziala fajnie formularz z zagniezdzonym formularzem, po submit ladnie pokazuje obiekt Foo z dwoma przypisanymi Collections bestbars i worstbars. Problem pojawia sie przy probie persist, blad jest taki ze kolekcje sa wstawiane do bazy bez id rodzica.
Podejrzewam ze problem tkwi w tym ze ManyToOne nie ma inversedBy (no bo nie wiem co tam mialoby byc).
Da sie jakos fajnie to rozwiazac?
class
Mam takie cos, wszystkko dziala fajnie formularz z zagniezdzonym formularzem, po submit ladnie pokazuje obiekt Foo z dwoma przypisanymi Collections bestbars i worstbars. Problem pojawia sie przy probie persist, blad jest taki ze kolekcje sa wstawiane do bazy bez id rodzica.
Podejrzewam ze problem tkwi w tym ze ManyToOne nie ma inversedBy (no bo nie wiem co tam mialoby byc).
Da sie jakos fajnie to rozwiazac?
class
konto usunięte via Android
- 0
@gajowy_marucha: jaka transakcja logiczna? Jakie id? Obiekty ustawiasz. Unit of work dba i idki i inne rzeczy.
- 0
@kmicolo:
No tos pomocny :D nie wiem jaka transakcja logiczna, nic takiego nie pisalem. Dobra, niewazne.
jaka transakcja logiczna? Jakie id? Obiekty ustawiasz. Unit of work dba i idki i inne rzeczy.
No tos pomocny :D nie wiem jaka transakcja logiczna, nic takiego nie pisalem. Dobra, niewazne.
- 1
@gajowy_marucha: w doctrine również masz dziedziczenie, tam się dzieje to po abstrakcyjnym typie, który jest podstawą do zbudowania tabeli (nie po Eloquencie, a po "abstrakcyjnej" encji), a następnie dyskryminator doktrynowy sprawia (na podstawie dodatkowej kolumny w tabeli), że hydruje się obiekt odpowiedniej klasy, wedle zadanej wcześniej konfiguracji. Jedna klasa dziedzicząca może posiadać jedną relację, a druga inną. "Fizycznie" pojawią się w tabeli dwie kolumny, ale tylko jedna z nich będzie wykorzystywana
- 0
@uirapuru: dobra zrobie to recznie chyba :/
#symfony #symfony2
mam pytanie o #doctrine... wciąż jeszcze nie ogarniam relacji #manytoone czy #onetomany... dlaczego chciałem was prosić o pomoc :)
Powiedzmy że mam trzy encje, żeby to uprościć posłużę się przykładem z komunikacji miejskiej:
Encje:
- busStop
- timeTable
- arrivals
Relacje powinny być takie:
Czy ktoś mógłby podać przykład jak
mam pytanie o #doctrine... wciąż jeszcze nie ogarniam relacji #manytoone czy #onetomany... dlaczego chciałem was prosić o pomoc :)
Powiedzmy że mam trzy encje, żeby to uprościć posłużę się przykładem z komunikacji miejskiej:
Encje:
- busStop
- timeTable
- arrivals
Relacje powinny być takie:
busStop
może mieć wiele timeTable
timeTable
może mieć jednen busStop
oraz wiele arrivals
arrivals
może mieć jeden timeTable
Czy ktoś mógłby podać przykład jak
@qwelukasz: OK. Ale masz źle znormalizowany schemat. Dochodzi do redundancji danych.
Dodając do tego linie autobusowe wygląda to mniej więcej tak: Arrivals(BusStopId, LineId, Time)
I teraz mając BusStopId możesz sprawdzić jakie linie tam idą i o której godzinie ( informacje z tabliczki ) a czas jest w jednym miejscu.
Dodając do tego linie autobusowe wygląda to mniej więcej tak: Arrivals(BusStopId, LineId, Time)
I teraz mając BusStopId możesz sprawdzić jakie linie tam idą i o której godzinie ( informacje z tabliczki ) a czas jest w jednym miejscu.
@qwelukasz: jeśli busstop ma relacje one to many z arrivals to robiąc $busStop->getArrivals() dostaniesz godziny odjazdu dla konkretnej encji
#symfony #symfony2 #doctrine #mysql #postgresql
Taka sprawa... chcę użyć innego niż domyślnego (
Doczytałem, że można to zrobić przez annotacje
Jak to zrobić i dlaczego do tej pory nikt z #sf2 tego nie wprowadził?
Taka sprawa... chcę użyć innego niż domyślnego (
public
) schematu z #pgsql.Doczytałem, że można to zrobić przez annotacje
@Table(schema="schema")
ale to jest dosyć "statyczne" rozwiązanie i byłoby lepiej/prościej wprowadzić ten parametr jako parametr w parameters.yml
niźli dla każdej encji osobno... (Annotacja w encji mogłaby nadpisywać dla danej encji schemat).Jak to zrobić i dlaczego do tej pory nikt z #sf2 tego nie wprowadził?
konto usunięte via Android
- 0
@qwelukasz: spróbuj zrobić w annotacji schema="%schemazkonfigu%", może zadziała
- 1
pobieram sobie w #symfony #doctrine dwie kolumny w taki sposób: http://pastebin.com/d2Y9zG0v jak zrobić żeby rozbić te dwie kolumny na oddzielne tablice, tj w jednej tablicy mam wszystkie lastName a w drugiej wszystkie companyName ? da radę to jakoś sprytnie bez pętli ? czy lepiej po prostu zrobić dwa zapytania i się nie męczyć ?
#webdev #php
#webdev #php
- 0
@InnyKtosek: wiem wiem :P zobaczę oba i dam znać :P w sumie kilkaset wierszy jest więc raczej różnicy to nie zrobi :P
- 0
@Jurigag:
1. Jak często chcesz te dane wyciągać? Im częściej, tym szybciej to musi działać. Ale jeśli dosyć rzadko to nie ma znaczenia i dowolna metoda będzie ok – nawet jeśli nie będzie za szybka.
2. Jak dużo musisz tych danych wyciągać? Bo jeśli bardzo dużo (w tysiącach) to jednak wypada się zastanowić nad wydajnością. Jeśli mniej, to znów: można olać – dowolna metoda będzie wystarczająco szybka.
3. Zrób dwa zapytania:
1. Jak często chcesz te dane wyciągać? Im częściej, tym szybciej to musi działać. Ale jeśli dosyć rzadko to nie ma znaczenia i dowolna metoda będzie ok – nawet jeśli nie będzie za szybka.
2. Jak dużo musisz tych danych wyciągać? Bo jeśli bardzo dużo (w tysiącach) to jednak wypada się zastanowić nad wydajnością. Jeśli mniej, to znów: można olać – dowolna metoda będzie wystarczająco szybka.
3. Zrób dwa zapytania:
Okej, Mirki i Mirkówny będzie trochę #chwalesie trochę #januszewebdevu i #januszewebdesignu tagu programowanie jednak nie użyję bo to tylko PHP ( ͡° ͜ʖ ͡°) Będzie nawet trochę #rozdajo
Otóż po tym przydługim wstępie chciałbym zaprezentować mirko maszynę losującą w moim wykonaniu (uwaga dla #tylkonocny wypala oczy więc proszę ostrożnie). Tak wiem że jest już #mirkorandom ale stwierdziłem że mając długą przerwę przed 2gim stopniem studiów i odrobinę chęci
Otóż po tym przydługim wstępie chciałbym zaprezentować mirko maszynę losującą w moim wykonaniu (uwaga dla #tylkonocny wypala oczy więc proszę ostrożnie). Tak wiem że jest już #mirkorandom ale stwierdziłem że mając długą przerwę przed 2gim stopniem studiów i odrobinę chęci
- zdybo
- Serv_HVAC
- konto usunięte
- Akan0
- ostrzyjnoz
- +3 innych
- 1
@tajemniczy_don_pedro: coś nie działa bo kazałem wylosować 2 mirków - zwycięzców, a pokazało 1 http://losuj-mirka.byethost7.com//main/showResult/dbe6e6ca3bcc5cd
za drugim razem już było ok http://losuj-mirka.byethost7.com/main/showResult/fefd1a968951cc5
za drugim razem już było ok http://losuj-mirka.byethost7.com/main/showResult/fefd1a968951cc5
- 1
Mam taką encję Seansów:
https://gist.github.com/anonymous/8e88d6acac0816b05468
i rozszerzam repozytorium w ten sposób
https://gist.github.com/anonymous/79381f0ac60c7e89bef8
Koniec końców otrzymuję wyjątek:
W jaki sposób zmapować dodatkową kolumnę którą wygenerowałem? Ktoś podpowie co robię źle? ;)
#symfony2 #doctrine #php
https://gist.github.com/anonymous/8e88d6acac0816b05468
i rozszerzam repozytorium w ten sposób
https://gist.github.com/anonymous/79381f0ac60c7e89bef8
Koniec końców otrzymuję wyjątek:
Key "movie" for array with keys "0, reservedTickets" does not exist in src/WowStudio/Bundle/CinemaSystemBundle/Resources/views/Default/index.html.twig at line 14
W jaki sposób zmapować dodatkową kolumnę którą wygenerowałem? Ktoś podpowie co robię źle? ;)
#symfony2 #doctrine #php
konto usunięte via Android
- 1
- 1
@ghost1511: Doctrine korzysta z refleksji, żeby ustalić wartości pól – możesz mieć same gettery i brak setterów – Doctrine sobie poradzi.
Jaka jest więc zasada? Robisz gettery/settery tylko i wyłącznie te, z których faktycznie chcesz korzystać.
Nie będziesz ustalać ID? Nie rób settera. Masz powiedzmy $firstName i $lastName, ale pobierać będziesz tylko połączoną nazwę? Zrób getFullName() i olej gettery do pojedynczych pól.
Ogólnie framework ma dawać możliwości, a nie ograniczać –
Jaka jest więc zasada? Robisz gettery/settery tylko i wyłącznie te, z których faktycznie chcesz korzystać.
Nie będziesz ustalać ID? Nie rób settera. Masz powiedzmy $firstName i $lastName, ale pobierać będziesz tylko połączoną nazwę? Zrób getFullName() i olej gettery do pojedynczych pól.
Ogólnie framework ma dawać możliwości, a nie ograniczać –
- 1
prawie zacząłem przepisywać projekt na #doctrine - ale w ostatniej chwili się powstrzymałem.
#php #zendframework
#php #zendframework
- 0
@NiktNieTroszczy: Zend/Db
konto usunięte via Android
- 0
@singollo: doctrine jest dobry. Nie brak mu wad, ale z zendem dobrze współgra.
#symfony #doctrine #php #webdev