Siema mirki.
Robię taką trochę owijkę legacy code w komponenty symfony. Aktualnie jestem na etapie implementacji wstrzykiwania serwisów jako zależności do kontrolerów. Jednak w żadem sposób nie mogę wymusić automatycznego wstrzykiwania zależności (autowiring, autoconfigure), wszystko muszę opisywać w pliku services.yml, a i tak nie będę mógł później tego wstrzyknąć jako zależności do kontrolera.
Może ktoś, kto grzebał głębiej w symfony, będzie potrafił mi pomóc z tym?
W celu ułatwienia sprawy, dodaję repo
@mariecziek: Twoja usługa TestService też musi być zdefiniowana w services.yaml ze wszystkimi zależnościami i dopiero może być wstrzykiwana do kontrolera czy innych usług (tutaj public: true)
@picios: Tak, wiem, ale jeżeli w services.yml mam ustawione autowire: true, to wszystkie serwisy są ładowane do kontenera z tego pliku. Nie muszę tam rejestrować serwisów, jak to było w Symfony <3.3. One są rejestrowane automatycznie, na podstawie tego co jest zapisane w services.yml w linijkach 13-15. Mógłbym się z tobą zgodzić, gdyby do serwisu byłyby przekazywane jakieś argumenty w konstruktorze, ale serwis nie posiada konstruktora.
Kolejną rzeczą jest to,
Czy są na wykopie specjaliści od #symfony #symfony3 ?
Mam apkę w legacy code, którą refaktoruję na coś znośnego. Jest już router, wprowadziłem też kontener DI, pobieram z niego serwisy w kontrolerze (przed wywołaniem kontrolera wstrzykuję kontener do kontrolera). Mogę sobie też pobierać parametry w kontrolerach i przekazywać je do serwisów.
Mam jednak pewien problem:
Otóż nie mogę sobie wstrzyknąć serwisu do kontrolera jako argument metody. Jak próbuję to zrobić to rzuca
@mariecziek: Jeśli masz komponenty symfony/debug i symfony/console to zadziała :) Ale ok, rozumiem.

Ten kod który masz teoretycznie powinien działać po przeniesieniu zależności do kontrolera, ale widać coś jeszcze jest nie tak. Winy szukałbym w services.yml. Może zła ścieżka? Sprawdź też może czy inne serwisy, nie będące kontrolerami działają - utwórz jakiś, który miałby korzystać z tego FacebookService i sprawdź czy jest poprawnie inicjalizowany. Jeśli zadziała, to wina może leżeć w
Tworzę stronę do faktur na zaliczenie (w Symfony3) i chciałbym stworzyć raport podsumowujący zysk/stratę miesiąc po miesiącu. Niestety moim sposobem (podanym poniżej) nie wyświetlają się miesiące dla których nie ma rekordów (np. w lutym nie było wydatków ani zysków to wyświetl w lutym 0).

//query to generate profit report
$query=$entityManager->getRepository(Invoice::class)
->createQueryBuilder('i')
->select(' sum(i.netValue) AS netSum, MONTH(i.createDate) AS month, YEAR(i.createDate) AS year, i.incoming AS incoming')
->where('i.owner=:owner')
->groupBy('year')
->addGroupBy('month')
->addGroupBy('incoming') //faktura przychodzaca czy wychodzaca
@Meteor100: Long story short .dist jest czytany w momencie composer install bo na podstawie niego (i pytań zadanych userowi) tworzy/aktualizuje parameters.yml. Więc albo w parameters.yml albo parameters.yml.dist masz błąd składni.
Mirki od #symfony #symfony3 mam problem z EasyAdmin + VichUploader. Mam taką konfigurację: https://pastebin.com/DShPAujw i rzuca mi błędem: [Symfony\Component\DependencyInjection\Exception\RuntimeException]
Service "Vich\UploaderBundle\Naming\UniqidNamer.resource_images": Parent de
finition "Vich\UploaderBundle\Naming\UniqidNamer" does not exist.

Nie wiem dlaczego nie widzi tej klasy, leży sobie w vendor, a cały bundle jest włączony w AppKernel.
Mirki, w jaki sposób serializujecie encje do JSONa?
Otóż mam sobie projekt na symfony 3.4. Mam zapytania ajaxem, które w odpowiedzi oczekują JSONa. Otóż jak otrzymałem ten projekt, to ktoś zwyczajnie w encji ustawił atrybuty klasy na public, bo wtedy można zamienić klasę na json przy pomocy json_encode. No ale moim zdaniem to jest bardzo zły pomysł. Postanowiłem skorzystać z Serializera od Symfony, jednak mam taki problem, że ciągle otrzymuję
#symfony4 #symfony #symfony3 #symfony2

Hej Mirasy,
wiecie może czy da się i jak to zrobić, aby impersonować użytkownika pod jednym firewallem (usługi klientów), ale nadal zachować poprzedniego (admina) pod innym firewallem (panel administracji)?
W tej chwili przełącza użytkownika całkowicie i tracę dostęp do admina, podczas gdy chciałbym impersonalizację wyłącznie od frontu.
Hej Mirasy.
Mam problem z konfiguracją w Symfony 4.
Potrzebuję nadpisać dbname dla connection default zdefiniowanego w config/packages/doctrine.yaml
Wrzucam je do config/packages/test/doctrine.yaml i nie nadpisuje mi jej przy odpaleniu środowiska testowego, niezależnie czy jest dodane jako doctrine:dbal:dbname czy doctrine:dbal:connections:default:dbname. Zastanawiam się czy to bug czy robię coś nie tak. W przypadku poprzednich wersji SF z config_test.yml to działało.

Dodam, że działa mi to "dobrze" jeśli zdefiniuję dodatkowe connection "test" w config/packages/doctrine.yaml
Mirki, potrzebuję pomocy. Trzeci dzień próbuję rozwiązać pewien problem i w żaden sposób mi się to nie udaje.

Powiedzmy mam 2 encje: Post i Tag. W encji Tag, w bazie danych mam zapisane tagi. Mogę je dodawać, mogę je usuwać. Każdy Post może mieć wiele tagów, ale tylko tych z listy tagów. Nie ma żadnego dynamicznego dodawania czy usuwania tagów. Tak więc zrobiłem to relacją ManyToMany. jednak przy próbie aktualizacji Posta, rzucało
Cześć. Kupię konsultacje z #symfony2 lub #symfony3
Muszę w ciągu kilku miesięcy zaprogramować aplikację webową. Sporo na pewno ogarnę sam, ale nic tak mi nie pomaga jak możliwość zadania kilku dziwnych pytań komuś z doświadczeniem. Zależy mi na opcji komunikacji mailowej i czatowej z gwarancją uzyskania choćby naprowadzającej odpowiedzi w ciągu kilku godzin (w dzień roboczy). Dostępność w weekend mile widziana, ale nie konieczna. Uczciwie będzie chyba rozliczać się za poświęcony czas.
@mariecziek: Jak chcesz zmienić wygląd danego pola to musisz nadpisać jego wygląd podobnie jak zrobiłeś to tutaj http://www.textsnip.com/kiokh0 . Zastanawia mnie jak to się stało, że działa Tobie to nadpisanie jak na końcu jest options, ale to chyba jest jakieś specyficzne zachowanie przy radio. Jak masz klasę EntityType to powinieneś nadpisywać bloki typu entitywidget, entity_label w zależności pod jaką nazwą w środku to określiłeś w samej klasie.

Możesz skorzystać z
@jreekkas: ten sam problem właśnie miałem - niby fajnie, bo możesz sobie potem używać takiego bundle'a w innym projekcie, ale w praktyce i tak nigdy nie użyłem, a poziom chaosu który się robił przez zwiększoną ilość bundli rósł wykładniczo.

Jak coś mam używać w ramach wspólnych to i tak leci do vendors.
#php #symfony #symfony3 proszę o #codereview mojej próby stworzenia projektu w oparciu o Hexagonal Architecture i jednocześnie zrozumienia tej koncepcji. W przypadku encji poszedłem na skróty, ale z tego co oglądałem na konferencjach, to zdarzają się takie decyzje, które ułatwiają pracę (np Kris Wallsmith). Moja encja jest jednocześnie tą z domeny oraz z bazy danych. Jeśli z kodu wynika Wam, że czegoś nie rozumiem lub źle rozumiem to też proszę o wyjaśnienie
@masterix: nie nazwałbym tego co robisz architekturą heksagonalną. Brak wstrzykiwania zależności by móc nimi żonglować (a nam tym polega ta architektura, wyciągasz bloczek "wolny MySQL" i wkładasz za niego "szybki Elasticsearch"), beznadziejnie zaimplementowany CQRS (to nawet nie jest CQRS bo nie ma literki Q, nie ma literki C, pewnie nie ma również R i S, chyba, że zmienna $commandBus jest tylko z nazwy), brak separacji zmiennych (modyfikator publiczny, kiedy można dać
Mirki jest taka sprawa, potrzebuję do zamówień w kinie w podsumowaniu wybranych miejsc wyświetlić w każdym wierszu odpowiadającym wybranemu miejscu - listę rozwijaną z wyborem ceny biletu dla danego miejsca (ulgowy, zwykły). Ale cholera kiedy robię pętlę wyświetlającą wybrane miejsca i próbuję wyświetlić listę, to pokazuje się ona tylko jeszcze raz. Jak to zrobić, aby wyświetliła się dla każdego? I w ogóle jak to później zbindować do każdego pojedynczego obiektu Ticket?

#
#symfony2 #symfony3 #php

Chce przekazać dane z jednego kontrolera do drugiego.
// wiem że mogę to zrobić na sesji ale póki co chce to robić tak jak niżej...

$data = [
'u' => true,
's' => true,
'u' => true,
'n' => false,
]

return $this->forward(AppBundle:DefaultController', [], $data);
i teraz tam (w AppBundle:DefaultController) robie tak:

var_dump ( $request->query->all() ) // tutaj mam dane z $data
var_dump ( $request->request->all() ) // tutaj
#symfony #symfony2 #symfony3 #php #programowanie
jak stworzyć "reusable bundle"?

tutaj jest jak zacząć: http://stackoverflow.com/questions/21523481/symfony2-creating-own-vendor-bundle-project-and-git-strategy

trochę w dokumetancji: http://symfony.com/doc/current/bundles/best_practices.html

Natomiast moje pytanie jest: co dalej?
Jak je tworzyć/rozwijać mająć je w "vendros" a nie src?

Work on it
You can clone your DemoBundle in the src/Company folder, then manually install it
You can use symlink

czyli co? Robie symlink do paczki z vendor do katalogu src i tam działam?
@qwelukasz: jak zainstalujesz z composera z parametrem --prefer-source to mozesz sobie w katalogu w vendor/bundle zmieniac co chcesz i komitowac, ale osobiscie proponuje i stosuje inne podejscie. Oczywiscie zakladam, ze piszesz testy. Zrob katalog Tests/app, w ktorym zainstalujesz AppKernel i symfony, w ktore wepniesz swoj bundle. Mozesz wtedy odpalic tak stworzona appke w browserze, testowac funkcjonalnie i tak dalej. Pracuje wciaz nad tym, ale tu przyklad mojego kodu:

https://github.com/UirapuruDende/CalendarBundle/tree/master/Tests/app