Symfony

 0    72 Datenblatt    nowakowskilukasz12
mp3 downloaden Drucken spielen überprüfen
 
Frage język polski Antworten język polski
Co robi filtr raw w Twig?
Lernen beginnen
Wyłącza auto-escaping, analogicznie do {!!!} w Blade.
Jak działa Symfony Secrets Vault?
Lernen beginnen
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?
Lernen beginnen
Firewall - określa mechanizm uwierzytelnienia dla danego zakresu URL.
Co odpowiada za authorization na poziomie konkretnego obiektu w Symfony?
Lernen beginnen
Voter - sprawdza np. czy TEN user może edytować TEN konkretny post.
Czym jest access_control w security. yaml?
Lernen beginnen
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?
Lernen beginnen
affirmative - domyślna strategia w Symfony Security.
Jaki event HttpKernel odpala się jako pierwszy?
Lernen beginnen
kernel. request - tu działa routing, można od razu zwrócić Response.
Który event pozwala podmienić kontroler przed jego wywołaniem?
Lernen beginnen
kernel. controller.
Kiedy dispatchowany jest kernel. view?
Lernen beginnen
Tylko jeśli kontroler nie zwrócił obiektu Response (np. zwrócił tablicę/DTO).
Co robi listener na kernel. view w API?
Lernen beginnen
Zamienia wynik kontrolera na Response, np. serializuje tablicę do JsonResponse.
Który event to ostatnia szansa modyfikacji gotowego Response?
Lernen beginnen
kernel. response.
Kiedy dispatchowany jest kernel. terminate?
Lernen beginnen
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?
Lernen beginnen
W dowolnym momencie, gdy coś rzuci wyjątek.
Co zatrzymuje propagację do domyślnego error handlera w listenerze na kernel. exception?
Lernen beginnen
$event->setResponse().
Co robi autowire w services. yaml?
Lernen beginnen
Kontener sam odgaduje co wstrzyknąć w konstruktor na podstawie type-hintów.
Co robi autoconfigure w services. yaml?
Lernen beginnen
Automatycznie taguje serwis na podstawie implementowanych interfejsów.
Czy autowire i autoconfigure to ta sama funkcja?
Lernen beginnen
Nie - to dwie niezależne funkcje, można mieć jedną bez drugiej.
Dlaczego od Symfony 4 serwisy są domyślnie private?
Lernen beginnen
Wymusza jawne DI - nie da się ich pobrać bezpośrednio z kontenera z zewnątrz.
Kiedy publiczny serwis ma dziś sens w Symfony?
Lernen beginnen
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?
Lernen beginnen
Kontener rzuca błędem kompilacji, bo nie umie zgadnąć, którą wstrzyknąć.
Jak wskazać domyślną implementację interfejsu przy dwóch kandydatach?
Lernen beginnen
Aliasować ją w services. yaml, np. App\Contract\Gateway: '@App\Service\StripeGateway'.
Gdzie trafia skompilowany kontener Symfony?
Lernen beginnen
Do pliku w var/cache/{env}/.
Co to jest Compiler Pass?
Lernen beginnen
Klasa implementująca CompilerPassInterface: process(), modyfikująca definicje serwisów w trakcie kompilacji.
Kiedy Compiler Pass jest potrzebny mimo autoconfigure?
Lernen beginnen
Gdy trzeba zbiorczo połączyć otagowane serwisy z pełną kontrolą, np. sortowaniem po atrybucie tagu.
Gdzie rejestruje się Compiler Pass?
Lernen beginnen
W metodzie build(ContainerBuilder $container) w src/Kernel. php.
Czym dziś jest Bundle w rozumieniu Symfony Flex?
Lernen beginnen
Mechanizmem integracji dla paczek third-party, nie domyślnym sposobem organizacji własnego kodu.
Gdzie dziś leży kod własnej aplikacji Symfony?
Lernen beginnen
Po prostu w src/, bez owijania go w bundle.
Co robi Symfony Flex przy composer require symfony/mailer?
Lernen beginnen
Automatycznie dopisuje config/packages/mailer. yaml i zmienne do. env.
Która wartość wygrywa przy tej samej zmiennej w. env i. env. local?
Lernen beginnen
. env. local, bo pliki lokalne mają wyższy priorytet niż domyślne.
Który plik. env ma najwyższy priorytet ze wszystkich?
Lernen beginnen
Realne zmienne środowiskowe systemu.
Jaką metodę implementuje klasa dziedzicząca po Voter, by sprawdzić czy dotyczy danego atrybutu?
Lernen beginnen
supports(string $attribute, mixed $subject).
Jaka metoda Votera zwraca faktyczną decyzję dostępu?
Lernen beginnen
voteOnAttribute().
Jak rejestruje się Voter w kontenerze?
Lernen beginnen
Automatycznie dzięki autoconfigure, bo klasa dziedziczy po Voter.
Jaka metoda authenticatora sprawdza, czy powinien obsłużyć dany request?
Lernen beginnen
supports(Request):? bool.
Jaka metoda authenticatora buduje Passport z danymi logowania?
Lernen beginnen
authenticate(Request): Passport.
Co robi persist($entity) w Doctrine?
Lernen beginnen
Nie wykonuje żadnego SQL - tylko rejestruje obiekt jako zarządzany w UnitOfWork.
Co robi flush() w Doctrine?
Lernen beginnen
Oblicza changeset i wykonuje realne zapytania SQL w jednej transakcji.
Co to jest Identity Map w Doctrine?
Lernen beginnen
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?
Lernen beginnen
EntityManager rośnie w pamięci, bo trzyma referencje do wszystkich pobranych encji.
Czym rozwiązać rosnącą pamięć EntityManagera w workerze?
Lernen beginnen
Wołaniem entityManager->clear().
Co to jest proxy w Doctrine?
Lernen beginnen
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?
Lernen beginnen
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?
Lernen beginnen
Z porównania realnego schematu bazy z mapowaniem encji - encje są źródłem prawdy.
Co owija wiadomość w Symfony Messenger?
Lernen beginnen
Envelope, do którego doczepiane są Stamps (metadane).
Jak Symfony osiąga stały czas dopasowania trasy niezależnie od liczby tras?
Lernen beginnen
Kompiluje wszystkie trasy do jednej zoptymalizowanej struktury regex w cache.
Co robi #[MapEntity], gdy encja o danym ID nie istnieje?
Lernen beginnen
Rzuca NotFoundHttpException tłumaczone przez kernel. exception na 404.
Co realnie jest wyłączone w Symfony przy APP_ENV=prod?
Lernen beginnen
Sprawdzanie timestampów plików konfiguracyjnych przy każdym requeście.
Dlaczego zmiana services. yaml na produkcji Symfony nie działa bez cache: clear?
Lernen beginnen
Produkcyjny kontener to zamrożony, wygenerowany kod PHP w var/cache/prod/.
Jakiej komendy użyć, żeby wymusić przebudowę kontenera Symfony na produkcji?
Lernen beginnen
php bin/console cache: clear --env=prod.
Po co dodatkowo cache: warmup po deployu w Symfony?
Lernen beginnen
Żeby pierwszy request po deployu nie płacił kosztu budowania kontenera.
Jaka jest minimalna wersja PHP wymagana przez Symfony 6?
Lernen beginnen
PHP 8.1.
Jaka jest minimalna wersja PHP wymagana przez Symfony 7?
Lernen beginnen
PHP 8.2.
Co zastąpiły atrybuty PHP w Symfony 6+ względem starszych wersji?
Lernen beginnen
Adnotacje w komentarzach (@Route) - dziś standardem są natywne atrybuty #[Route].
Co to jest Symfony LTS (Long Term Support)?
Lernen beginnen
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?
Lernen beginnen
AssetMapper - natywne zarządzanie assetami bez bundlera.
Jakie są trzy sposoby definiowania tras w Symfony?
Lernen beginnen
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?
Lernen beginnen
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?
Lernen beginnen
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?
Lernen beginnen
Testy integracyjne serwisów z dostępem do kontenera, bez symulacji requestu HTTP.
Do czego służy WebTestCase w Symfony?
Lernen beginnen
Testy feature całych endpointów przez symulowany KernelBrowser.
Jak zalogować użytkownika w teście Symfony bez formularza?
Lernen beginnen
$client->loginUser($user).
Jak przetestować serwis zależny od EntityManagera bez realnej bazy?
Lernen beginnen
Mockując EntityManagerInterface albo używając bazy testowej SQLite in-memory.
Czy JWT stateless firewall w Symfony korzysta z sesji PHP?
Lernen beginnen
Nie - cała tożsamość jedzie podpisana w nagłówku Authorization każdego requestu.
Jaki atrybut Symfony automatyzuje deserializację i walidację DTO naraz?
Lernen beginnen
#[MapRequestPayload].
Jak Doctrine implementuje optymistyczne blokowanie?
Lernen beginnen
Kolumną #[Version] na encji - flush() rzuca OptimisticLockException, jeśli wersja w bazie nie zgadza się z wczytaną.
Co to jest UnitOfWork w Doctrine?
Lernen beginnen
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?
Lernen beginnen
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?
Lernen beginnen
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?
Lernen beginnen
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?
Lernen beginnen
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?
Lernen beginnen
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?
Lernen beginnen
entityManager->wrapInTransaction(closure) albo ręcznie beginTransaction()/commit()/rollback() - sam flush() już działa wewnątrz jednej transakcji.

Sie müssen eingeloggt sein, um einen Kommentar zu schreiben.