Symfony

 0    72 flashcards    nowakowskilukasz12
download mp3 print play test yourself
 
Question język polski Answer język polski
Co robi filtr raw w Twig?
start learning
Wyłącza auto-escaping, analogicznie do {!!!} w Blade.
Jak działa Symfony Secrets Vault?
start learning
secrets: set szyfruje wartość i zapisuje w repo, klucz deszyfrujący trzymany osobno poza repo.
Co odpowiada za authentication w Symfony Security: firewall czy voter?
start learning
Firewall - określa mechanizm uwierzytelnienia dla danego zakresu URL.
Co odpowiada za authorization na poziomie konkretnego obiektu w Symfony?
start learning
Voter - sprawdza np. czy TEN user może edytować TEN konkretny post.
Czym jest access_control w security. yaml?
start learning
Deklaratywne reguły kto może wejść na dany prefix URL, oparte o role, sprawdzane przed kontrolerem.
Która strategia AccessDecisionManager przyznaje dostęp, jeśli choć jeden voter powie tak?
start learning
affirmative - domyślna strategia w Symfony Security.
Jaki event HttpKernel odpala się jako pierwszy?
start learning
kernel. request - tu działa routing, można od razu zwrócić Response.
Który event pozwala podmienić kontroler przed jego wywołaniem?
start learning
kernel. controller.
Kiedy dispatchowany jest kernel. view?
start learning
Tylko jeśli kontroler nie zwrócił obiektu Response (np. zwrócił tablicę/DTO).
Co robi listener na kernel. view w API?
start learning
Zamienia wynik kontrolera na Response, np. serializuje tablicę do JsonResponse.
Który event to ostatnia szansa modyfikacji gotowego Response?
start learning
kernel. response.
Kiedy dispatchowany jest kernel. terminate?
start learning
Po obsłużeniu response - może posłużyć do pracy wykonywanej po odpowiedzi, ale to nie jest prawdziwa kolejka/background job, do niezawodnej pracy asynchronicznej służy np. Symfony Messenger.
Kiedy dispatchowany jest kernel. exception?
start learning
W dowolnym momencie, gdy coś rzuci wyjątek.
Co zatrzymuje propagację do domyślnego error handlera w listenerze na kernel. exception?
start learning
$event->setResponse().
Co robi autowire w services. yaml?
start learning
Kontener sam odgaduje co wstrzyknąć w konstruktor na podstawie type-hintów.
Co robi autoconfigure w services. yaml?
start learning
Automatycznie taguje serwis na podstawie implementowanych interfejsów.
Czy autowire i autoconfigure to ta sama funkcja?
start learning
Nie - to dwie niezależne funkcje, można mieć jedną bez drugiej.
Dlaczego od Symfony 4 serwisy są domyślnie private?
start learning
Wymusza jawne DI - nie da się ich pobrać bezpośrednio z kontenera z zewnątrz.
Kiedy publiczny serwis ma dziś sens w Symfony?
start learning
Głównie w testach, przez static: getContainer()->get() w KernelTestCase.
Co się dzieje, gdy dwie klasy implementują ten sam interfejs, a autowire jest włączony?
start learning
Kontener rzuca błędem kompilacji, bo nie umie zgadnąć, którą wstrzyknąć.
Jak wskazać domyślną implementację interfejsu przy dwóch kandydatach?
start learning
Aliasować ją w services. yaml, np. App\Contract\Gateway: '@App\Service\StripeGateway'.
Gdzie trafia skompilowany kontener Symfony?
start learning
Do pliku w var/cache/{env}/.
Co to jest Compiler Pass?
start learning
Klasa implementująca CompilerPassInterface: process(), modyfikująca definicje serwisów w trakcie kompilacji.
Kiedy Compiler Pass jest potrzebny mimo autoconfigure?
start learning
Gdy trzeba zbiorczo połączyć otagowane serwisy z pełną kontrolą, np. sortowaniem po atrybucie tagu.
Gdzie rejestruje się Compiler Pass?
start learning
W metodzie build(ContainerBuilder $container) w src/Kernel. php.
Czym dziś jest Bundle w rozumieniu Symfony Flex?
start learning
Mechanizmem integracji dla paczek third-party, nie domyślnym sposobem organizacji własnego kodu.
Gdzie dziś leży kod własnej aplikacji Symfony?
start learning
Po prostu w src/, bez owijania go w bundle.
Co robi Symfony Flex przy composer require symfony/mailer?
start learning
Automatycznie dopisuje config/packages/mailer. yaml i zmienne do. env.
Która wartość wygrywa przy tej samej zmiennej w. env i. env. local?
start learning
. env. local, bo pliki lokalne mają wyższy priorytet niż domyślne.
Który plik. env ma najwyższy priorytet ze wszystkich?
start learning
Realne zmienne środowiskowe systemu.
Jaką metodę implementuje klasa dziedzicząca po Voter, by sprawdzić czy dotyczy danego atrybutu?
start learning
supports(string $attribute, mixed $subject).
Jaka metoda Votera zwraca faktyczną decyzję dostępu?
start learning
voteOnAttribute().
Jak rejestruje się Voter w kontenerze?
start learning
Automatycznie dzięki autoconfigure, bo klasa dziedziczy po Voter.
Jaka metoda authenticatora sprawdza, czy powinien obsłużyć dany request?
start learning
supports(Request):? bool.
Jaka metoda authenticatora buduje Passport z danymi logowania?
start learning
authenticate(Request): Passport.
Co robi persist($entity) w Doctrine?
start learning
Nie wykonuje żadnego SQL - tylko rejestruje obiekt jako zarządzany w UnitOfWork.
Co robi flush() w Doctrine?
start learning
Oblicza changeset i wykonuje realne zapytania SQL w jednej transakcji.
Co to jest Identity Map w Doctrine?
start learning
Mapa (typ encji + ID) -> obiekt, dzięki której drugie find() o tym samym ID zwraca ten sam obiekt z pamięci.
Jaka jest pułapka Identity Map w długo żyjącym procesie CLI?
start learning
EntityManager rośnie w pamięci, bo trzyma referencje do wszystkich pobranych encji.
Czym rozwiązać rosnącą pamięć EntityManagera w workerze?
start learning
Wołaniem entityManager->clear().
Co to jest proxy w Doctrine?
start learning
Wygenerowana klasa-cień z samym ID, doładowująca dane relacji dopiero przy pierwszym dostępie.
Czym różni się JOIN od JOIN FETCH w DQL?
start learning
JOIN może filtrować po powiązanej encji bez jej eager hydration, JOIN FETCH pobiera relację razem z encją i może ograniczyć N+1.
Skąd bierze się treść migracji generowanej przez doctrine: migrations: diff?
start learning
Z porównania realnego schematu bazy z mapowaniem encji - encje są źródłem prawdy.
Co owija wiadomość w Symfony Messenger?
start learning
Envelope, do którego doczepiane są Stamps (metadane).
Jak Symfony osiąga stały czas dopasowania trasy niezależnie od liczby tras?
start learning
Kompiluje wszystkie trasy do jednej zoptymalizowanej struktury regex w cache.
Co robi #[MapEntity], gdy encja o danym ID nie istnieje?
start learning
Rzuca NotFoundHttpException tłumaczone przez kernel. exception na 404.
Co realnie jest wyłączone w Symfony przy APP_ENV=prod?
start learning
Sprawdzanie timestampów plików konfiguracyjnych przy każdym requeście.
Dlaczego zmiana services. yaml na produkcji Symfony nie działa bez cache: clear?
start learning
Produkcyjny kontener to zamrożony, wygenerowany kod PHP w var/cache/prod/.
Jakiej komendy użyć, żeby wymusić przebudowę kontenera Symfony na produkcji?
start learning
php bin/console cache: clear --env=prod.
Po co dodatkowo cache: warmup po deployu w Symfony?
start learning
Żeby pierwszy request po deployu nie płacił kosztu budowania kontenera.
Jaka jest minimalna wersja PHP wymagana przez Symfony 6?
start learning
PHP 8.1.
Jaka jest minimalna wersja PHP wymagana przez Symfony 7?
start learning
PHP 8.2.
Co zastąpiły atrybuty PHP w Symfony 6+ względem starszych wersji?
start learning
Adnotacje w komentarzach (@Route) - dziś standardem są natywne atrybuty #[Route].
Co to jest Symfony LTS (Long Term Support)?
start learning
Wersja wspierana dłużej (np. 6.4), wydawana co 2 lata, dobra baza pod stabilne projekty.
Co domyślnie zastępuje Webpack Encore w nowszych wersjach Symfony?
start learning
AssetMapper - natywne zarządzanie assetami bez bundlera.
Jakie są trzy sposoby definiowania tras w Symfony?
start learning
Atrybuty PHP #[Route] (dziś domyślne), YAML w config/routes. yaml oraz konfiguracja tras w PHP przez RouteCollection.
Do czego służą route requirements w Symfony?
start learning
Ograniczają wartość parametru trasy regexem, np. \d+ dla ID - bez nich trasa dopasuje dowolny string.
Czym DQL różni się od QueryBuilder i natywnego SQL w Doctrine?
start learning
DQL operuje na encjach/polach nie tabelach, QueryBuilder to programistyczne budowanie DQL, natywny SQL omija ORM dla specyficznych funkcji silnika bazy.
Do czego służy KernelTestCase w Symfony?
start learning
Testy integracyjne serwisów z dostępem do kontenera, bez symulacji requestu HTTP.
Do czego służy WebTestCase w Symfony?
start learning
Testy feature całych endpointów przez symulowany KernelBrowser.
Jak zalogować użytkownika w teście Symfony bez formularza?
start learning
$client->loginUser($user).
Jak przetestować serwis zależny od EntityManagera bez realnej bazy?
start learning
Mockując EntityManagerInterface albo używając bazy testowej SQLite in-memory.
Czy JWT stateless firewall w Symfony korzysta z sesji PHP?
start learning
Nie - cała tożsamość jedzie podpisana w nagłówku Authorization każdego requestu.
Jaki atrybut Symfony automatyzuje deserializację i walidację DTO naraz?
start learning
#[MapRequestPayload].
Jak Doctrine implementuje optymistyczne blokowanie?
start learning
Kolumną #[Version] na encji - flush() rzuca OptimisticLockException, jeśli wersja w bazie nie zgadza się z wczytaną.
Co to jest UnitOfWork w Doctrine?
start learning
Wewnętrzny mechanizm śledzący wszystkie zarządzane encje i ich zmiany, który przy flush() oblicza changeset i generuje odpowiednie zapytania SQL.
Czym różni się owning side od inverse side relacji w Doctrine?
start learning
Owning side ma kolumnę z kluczem obcym i to ona decyduje o zapisie do bazy, inverse side (mappedBy) tylko odzwierciedla relację i sama w sobie nic nie zapisuje.
Do czego służy mappedBy, a do czego inversedBy w Doctrine?
start learning
mappedBy ustawia się po stronie inverse i wskazuje nazwę właściwości po stronie owning, inversedBy ustawia się po stronie owning i wskazuje właściwość po stronie inverse.
Co robi opcja cascade w mapowaniu relacji Doctrine?
start learning
Automatycznie propaguje operację (np. persist, remove) z encji nadrzędnej na powiązane encje, bez ręcznego wołania jej na każdej z osobna.
Co robi orphanRemoval: true w Doctrine?
start learning
Usuwa z bazy powiązaną encję, gdy zostanie odłączona od kolekcji rodzica, nawet bez jawnego remove().
Czym różni się lazy loading od eager loading w Doctrine?
start learning
Lazy loading przez proxy dociąga relację dopiero przy pierwszym dostępie, eager loading (JOIN FETCH) pobiera ją od razu w tym samym zapytaniu.
Jak jawnie owinąć kilka operacji w transakcję w Doctrine?
start learning
entityManager->wrapInTransaction(closure) albo ręcznie beginTransaction()/commit()/rollback() - sam flush() już działa wewnątrz jednej transakcji.

You must sign in to write a comment