Symfony

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

Você deve entrar para postar um comentário.