Laravel

 0    94 fiche    nowakowskilukasz12
baixar mp3 Imprimir jogar verifique-se
 
questão język polski resposta język polski
Jak zabezpieczyć model Eloquent przed mass assignment?
começar a aprender
Jawnie dozwolone pola ($fillable) lub odpowiednio chroniony model ($guarded), a dane wejściowe najpierw zwalidować - nie przekazywać niezwalidowanego request->all() bezpośrednio do mass assignment.
Jak Blade {{$x}} chroni domyślnie przed XSS?
começar a aprender
Automatycznie przepuszcza wartość przez htmlspecialchars, więc wstrzyknięty <script> renderuje się jako zwykły tekst.
Kiedy {!!! $x!!!} w Blade jest niebezpieczne?
começar a aprender
Gdy wyświetla dane wprost od użytkownika bez sanityzacji - świadomie wyłącza auto-escaping.
Co robi session()->regenerate() i kiedy jest wołane?
começar a aprender
Generuje nowy session ID przy logowaniu, unieważniając stary - chroni przed session fixation.
Jakie realne ryzyko stwarza APP_DEBUG=true na produkcji?
começar a aprender
Nieobsłużony wyjątek ujawnia pełny stack trace i często zmienne środowiskowe każdemu odwiedzającemu.
Gdzie jeszcze mogą wyciekać sekrety poza samym. env?
começar a aprender
W logach aplikacyjnych, na stronie debug, w zcache'owanym bootstrap/cache/config. php i w logach CI/CD.
Co tworzy bootstrap/app. php przy starcie Laravela?
começar a aprender
Instancję Illuminate\Foundation\Application, czyli sam kontener DI.
Jaka klasa jest pobierana z kontenera i woła handle() na requeście?
começar a aprender
Illuminate\Contracts\Http\Kernel.
Co robi bootstrap() Kernela?
começar a aprender
Uruchamia LoadEnvironmentVariables, LoadConfiguration, RegisterProviders i BootProviders.
Przez co przechodzi request zanim trafi do Routera?
começar a aprender
Przez Pipeline z globalnym middleware zdefiniowanym w Kernelu.
Kiedy wołane jest terminate() na middleware?
começar a aprender
Po wysłaniu response do klienta, w kernel->terminate().
Gdzie od Laravel 11 konfiguruje się middleware globalne zamiast w Kernel. php?
começar a aprender
W bootstrap/app. php przez fluent API Application: configure().
Dlaczego route: cache wywala się przy trasie z closure?
começar a aprender
Closure nie da się serializować do pliku cache - trasa musi wskazywać na kontroler.
Ile instancji zwróci dwukrotne app()->make() po zarejestrowaniu przez bind()?
começar a aprender
Dwie różne instancje - bind() tworzy nową za każdym razem.
Ile instancji zwróci dwukrotne app()->make() po zarejestrowaniu przez singleton()?
começar a aprender
Jedną, tę samą instancję z cache kontenera.
Jaka jest pułapka singletona w Laravel Octane?
começar a aprender
Kontener żyje dłużej niż jeden request - mutowalny stan singletona wycieka między requestami.
Czym różni się scoped() od singleton()?
começar a aprender
scoped() jest resetowany między requestami w Octane/queue workerach, singleton nie.
Co robi instance() w kontenerze?
começar a aprender
Wstrzykuje już gotowy, wcześniej utworzony obiekt jako binding.
Po co jest bindIf()?
começar a aprender
Rejestruje binding tylko jeśli jeszcze nie istnieje - przydatne w pakietach, by nie nadpisać configu aplikacji.
Co to jest contextual binding?
começar a aprender
Różna implementacja tego samego interfejsu zależnie od klasy, do której jest wstrzykiwana.
Co robi kontener, gdy w konstruktorze jest type-hint na interfejs bez bindingu?
começar a aprender
Rzuca BindingResolutionException.
Do czego służy app()->tag()?
começar a aprender
Grupuje wiele bindingów pod jednym tagiem, żeby pobrać je razem.
Dlaczego register() nie może zakładać, że inne providery już się zarejestrowały?
começar a aprender
Laravel woła register() na wszystkich providerach, dopiero potem boot() na wszystkich.
Co to są deferred providery?
começar a aprender
Providery ładowane dopiero gdy ktoś faktycznie zażąda ich bindingu z kontenera, nie przy starcie aplikacji.
Co się dzieje, gdy PHP nie znajduje statycznej metody get() na klasie Route?
começar a aprender
Wywołuje magiczną __callStatic(), która przez Facade deleguje do realnej instancji z kontenera.
Jaka metoda facade zwraca nazwę bindingu, np. router?
começar a aprender
getFacadeAccessor().
Jaka jest realna wada nadużywania facades?
começar a aprender
Ukryte zależności - sygnatura konstruktora nie pokazuje, czego klasa naprawdę potrzebuje.
Dlaczego env('APP_DEBUG') w kontrolerze zwróci null po config: cache?
começar a aprender
Po cache'owaniu configu plik. env w ogóle nie jest wczytywany.
Gdzie wolno wołać env(), a gdzie nie?
começar a aprender
W plikach config/*. php - w kodzie aplikacji korzystać z config(), bo po config: cache bezpośrednie env() poza konfiguracją może zwrócić null.
Co robi php artisan optimize?
começar a aprender
Odpala łącznie config: cache, route: cache i view: cache.
Jakie ryzyko niesie optimize bez uprzedniego optimize: clear przy deployu?
começar a aprender
Aplikacja może działać na starej, zamrożonej konfiguracji mimo zmienionych plików źródłowych.
Jak działa implicit route model binding?
começar a aprender
Laravel woła User: where('id', $value)->firstOrFail() na podstawie type-hintu w kontrolerze.
Co zwraca aplikacja, gdy implicit route model binding nie znajdzie rekordu?
começar a aprender
404, bo ModelNotFoundException jest automatycznie tłumaczony przez exception handler.
Jaki wzorzec projektowy stoi za middleware pipeline?
começar a aprender
Pipeline - zagnieżdżone closures, de facto Decorator/Chain of Responsibility.
W jakiej kolejności wykonuje się kod po $next($request) w łańcuchu middleware?
começar a aprender
W odwrotnej kolejności niż middleware były rejestrowane.
Co to jest terminable middleware?
começar a aprender
Middleware z metodą terminate(), wołaną po wysłaniu response do klienta.
Dlaczego Post: with('comments')->get() czasem nie eliminuje N+1 przy dostępie do autora komentarza?
começar a aprender
Bo relacja author nie została dociągnięta - trzeba with('comments. author').
Czy eager loading widzi N+1 ukryty w accessorze/getXAttribute()?
começar a aprender
Nie - accessor to zwykły kod PHP, nie zadeklarowana relacja Eloquent.
Jakie narzędzie w Laravelu rzuca wyjątkiem przy każdej próbie lazy loadingu?
começar a aprender
Model: preventLazyLoading() w AppServiceProvider: boot().
Czym różni się chunk() od cursor() pamięciowo?
começar a aprender
chunk() hydratuje wiele modeli naraz, cursor() jeden model przez generator - mniej pamięci.
Który wybrać, gdy modyfikujesz dane w trakcie iteracji: chunk czy cursor?
começar a aprender
chunkById - zwykły chunk może przeskoczyć rekordy przy usuwaniu w trakcie iteracji.
Jaka jest kolejność eventów modelu przy create()?
começar a aprender
saving -> creating -> insert -> created -> saved.
Jaka jest kolejność eventów modelu przy update()?
começar a aprender
saving -> updating -> update -> updated -> saved.
Czym jest Observer w Eloquencie?
começar a aprender
Klasa z metodami o nazwach eventów modelu, rejestrowana przez Model: observe().
Dlaczego global scope bywa niebezpieczny?
começar a aprender
Jest niewidoczny w miejscu wywołania - User: count() może zwrócić zaniżoną liczbę bez żadnego sygnału.
Co zapisuje trait SerializesModels przy dispatchu joba z modelem?
começar a aprender
Nie serializuje całego modelu - zapisuje identyfikator modelu i informacje potrzebne do odtworzenia go po stronie workera, relacje mogą zostać ponownie załadowane zależnie od tego, co faktycznie zostało zserializowane.
Dlaczego dane w jobie mogą różnić się od stanu w momencie dispatch?
começar a aprender
Worker przy odpaleniu joba pobiera świeży rekord z bazy, nie zapisaną kopię.
Czym różni się connection od queue w config/queue. php?
começar a aprender
connection to backend (redis/sqs/database), queue to nazwa kolejki w ramach tego backendu.
Czym różni się failed_jobs w Laravelu od DLQ w SQS?
começar a aprender
failed_jobs to mechanizm Laravela do zapisywania nieudanych jobów, DLQ to mechanizm brokera/kolejki - dokładne zachowanie zależy od drivera oraz konfiguracji retry i visibility timeout.
W jakiej kolejności budować cache przy zero-downtime deployu?
começar a aprender
config: cache, route: cache, view: cache, migrate --force - dopiero potem przełączenie symlinku.
Czym różni się queue: restart od twardego kill procesu workera?
começar a aprender
queue: restart pozwala workerowi dokończyć bieżący job i dopiero potem się zamknąć.
Jak assertować brak N+1 w teście Laravela?
começar a aprender
DB: enableQueryLog() przed requestem, potem assertLessThanOrEqual na count(DB: getQueryLog()).
Dlaczego relacja morphTo jest trudniejszym przypadkiem N+1?
começar a aprender
Generuje osobne zapytanie per typ powiązanego modelu, bo różne typy leżą w różnych tabelach.
Co robi DatabaseTransactions w testach Laravela?
começar a aprender
Owija każdy test w transakcję i robi ROLLBACK na końcu, bez resetowania struktury bazy.
Co robi RefreshDatabase w testach Laravela?
começar a aprender
Sprawdza czy migracje są aktualne, odpala je jeśli nie, i korzysta z transakcji per test.
Kiedy RefreshDatabase jest konieczny mimo że wolniejszy?
começar a aprender
Gdy test jest wrażliwy na strukturę schematu albo sam robi commit/rollback ręcznie.
Jaka jest minimalna wersja PHP wymagana przez Laravel 11?
começar a aprender
PHP 8.2.
Co zniknęło ze szkieletu aplikacji w Laravel 11?
começar a aprender
app/Http/Kernel. php i app/Console/Kernel. php - konfiguracja przeniosła się do bootstrap/app. php.
Co zmienił Laravel 10 w typowaniu kodu?
começar a aprender
Wprowadził natywne typy PHP we wszystkich metodach szkieletu i core frameworka.
Czym charakteryzuje się Laravel 12 względem Laravel 11?
começar a aprender
Głównie aktualizacją zależności i nowymi starter kitami, bez dużych zmian strukturalnych.
Co to jest Laravel Precognition?
começar a aprender
Mechanizm pozwalający walidować formularz na frontendzie bez duplikowania reguł walidacji z backendu.
Jakie są główne typy relacji w Eloquencie?
começar a aprender
hasOne, hasMany, belongsTo, belongsToMany, hasManyThrough, morphMany/morphTo.
Czym różni się hasMany od belongsToMany?
começar a aprender
hasMany to relacja 1: N przez klucz obcy, belongsToMany to N: N przez tabelę pośredniczącą (pivot).
Jak działają casty (casts()) przy odczycie atrybutu z bazy?
começar a aprender
Eloquent przepuszcza surową wartość z PDO przez castAttribute() zgodnie z deklaracją, np. tworząc obiekt Carbon dla typu datetime.
Jak dziś zapisuje się mutator/accessor jednego atrybutu w Eloquencie (Laravel 9+)?
começar a aprender
Jedna metoda zwracająca Attribute: make(get: ..., set: ...), zamiast osobnych getXAttribute()/setXAttribute().
Czym różni się local scope od global scope w Eloquencie?
começar a aprender
Local scope jest świadomie wywoływany (User: active()), global scope dokłada się automatycznie do każdego zapytania na modelu.
Czym różnią się middleware grupy web i api w Laravelu?
começar a aprender
web dokłada sesję i ochronę CSRF, api dokłada throttling bez sesji.
Czym różni się explicit route model binding od implicit?
começar a aprender
Explicit rejestrujesz ręcznie przez Route: bind() z pełną kontrolą nad zapytaniem, implicit dzieje się automatycznie na podstawie type-hintu.
Jak Laravel harmonogramuje zadania cykliczne (Task Scheduling)?
começar a aprender
Kodem w repozytorium przez $schedule->command(...)->daily(), jednym wpisem crona wołającym schedule: run.
Co to jest Package Discovery w Laravelu?
começar a aprender
Paczki deklarują providery w composer. json (extra. laravel. providers), Laravel rejestruje je automatycznie bez ręcznej konfiguracji.
Jak zmockować wysyłkę maila w teście Laravela?
começar a aprender
Mail: fake() przed akcją, potem Mail: assertSent().
Dlaczego mockowanie facade jest bezpieczne?
começar a aprender
Facade to warstwa nad realnym obiektem z kontenera - podmiana instancji zmienia to, co widzi cała aplikacja.
Jak przetestować sam fakt dispatchu joba bez workera?
começar a aprender
Queue: fake() i Queue: assertPushed().
Jak przetestować samą logikę joba bez mechanizmu kolejki?
começar a aprender
Wywołać (new Job($x))->handle() bezpośrednio jak zwykłą klasę.
Dlaczego assertDatabaseHas() jest bezpieczniejsze niż sprawdzanie return z save()?
começar a aprender
Weryfikuje faktyczny stan bazy, niezależnie jaką ścieżką zapis nastąpił.
Jaki jest odpowiednik loginUser() w Laravelu?
começar a aprender
$this->actingAs($user).
Jak bezpiecznie zrestartować worker bez przerywania joba w trakcie?
começar a aprender
queue: restart w Laravelu - kończy bieżący job, potem się zamyka.
Kiedy wybrać Sanctum zamiast Passport w Laravelu?
começar a aprender
Gdy masz własny, ufany frontend (SPA/mobile), nie zewnętrznych deweloperów.
Kiedy wybrać Passport zamiast Sanctum?
começar a aprender
Gdy API mają konsumować zewnętrzni deweloperzy z pełnym flow OAuth2 i scope'ami.
Jak Sanctum rozpoznaje request z SPA jako stateful?
começar a aprender
Middleware EnsureFrontendRequestsAreStateful sprawdza domenę w config('sanctum. stateful').
Kiedy Form Request jest rozwiązywany względem wywołania kontrolera?
começar a aprender
Przed - jako część wstrzykiwania argumentów w ArgumentResolverze.
Co się dzieje, gdy authorize() w Form Request zwróci false?
começar a aprender
Kontroler się nie wykonuje, leci AuthorizationException.
Czym różni się singleton() w kontenerze Laravela od klasycznego wzorca Singleton?
começar a aprender
Kontener zarządza jedną instancją per binding, ale sama klasa nie wymusza tego ograniczenia - to kontener, nie klasa, gwarantuje unikalność.
Co to jest Facade w Laravelu, w skrócie?
começar a aprender
Statyczny interfejs do obiektu faktycznie zarejestrowanego w kontenerze DI, np. Cache: get() zamiast wstrzykiwać CacheManager.
Co to jest Service Provider w skrócie?
começar a aprender
Miejsce rejestracji bindingów w kontenerze i konfiguracji danej funkcjonalności przy starcie aplikacji Laravel.
Co robi Artisan w Laravelu?
começar a aprender
Wbudowane narzędzie CLI do generowania kodu, migracji, kolejek i innych zadań administracyjnych.
Co robi opcja retry_after w konfiguracji kolejki?
começar a aprender
Określa po ilu sekundach job bez potwierdzenia zostanie uznany za martwy i ponownie umieszczony w kolejce - musi być dłuższy niż realny czas wykonania joba.
Jak ustawić rosnące opóźnienie między kolejnymi próbami joba w Laravelu?
começar a aprender
Metoda backoff() na klasie joba, zwracająca liczbę sekund albo tablicę opóźnień per kolejna próba.
Dlaczego joby w Laravelu powinny być idempotentne?
começar a aprender
Queue gwarantuje at-least-once delivery - ten sam job może wykonać się więcej niż raz, np. po timeout i redelivery.
Jak zapobiec dodaniu duplikatu tego samego joba do kolejki w Laravelu?
começar a aprender
Implementacja interfejsu ShouldBeUnique - Laravel trzyma lock w cache, dopóki job nie zostanie przetworzony albo lock nie wygaśnie.
Co robi właściwość $timeout na klasie joba?
começar a aprender
Maksymalny czas wykonania joba w sekundach - po przekroczeniu worker zabija proces, a job trafia do ponowienia albo do failed_jobs.
Czym różni się retryUntil() od tries na klasie joba?
começar a aprender
tries liczy liczbę prób, retryUntil() ustawia twardy deadline czasowy - job przestaje być ponawiany po tej dacie niezależnie od liczby prób.
Czym różni się chain od batch w Laravel Queues?
começar a aprender
Chain wykonuje joby sekwencyjnie jeden po drugim, batch uruchamia grupę jobów równolegle i pozwala śledzić ich łączny postęp.
Co robi driver kolejki sync w Laravelu?
começar a aprender
Wykonuje job natychmiast, synchronicznie, w tym samym requeście - używany głównie lokalnie/w testach, nie na produkcji.

Você deve entrar para postar um comentário.