Laravel

 0    94 Datenblatt    nowakowskilukasz12
mp3 downloaden Drucken spielen überprüfen
 
Frage język polski Antworten język polski
Jak zabezpieczyć model Eloquent przed mass assignment?
Lernen beginnen
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?
Lernen beginnen
Automatycznie przepuszcza wartość przez htmlspecialchars, więc wstrzyknięty <script> renderuje się jako zwykły tekst.
Kiedy {!!! $x!!!} w Blade jest niebezpieczne?
Lernen beginnen
Gdy wyświetla dane wprost od użytkownika bez sanityzacji - świadomie wyłącza auto-escaping.
Co robi session()->regenerate() i kiedy jest wołane?
Lernen beginnen
Generuje nowy session ID przy logowaniu, unieważniając stary - chroni przed session fixation.
Jakie realne ryzyko stwarza APP_DEBUG=true na produkcji?
Lernen beginnen
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?
Lernen beginnen
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?
Lernen beginnen
Instancję Illuminate\Foundation\Application, czyli sam kontener DI.
Jaka klasa jest pobierana z kontenera i woła handle() na requeście?
Lernen beginnen
Illuminate\Contracts\Http\Kernel.
Co robi bootstrap() Kernela?
Lernen beginnen
Uruchamia LoadEnvironmentVariables, LoadConfiguration, RegisterProviders i BootProviders.
Przez co przechodzi request zanim trafi do Routera?
Lernen beginnen
Przez Pipeline z globalnym middleware zdefiniowanym w Kernelu.
Kiedy wołane jest terminate() na middleware?
Lernen beginnen
Po wysłaniu response do klienta, w kernel->terminate().
Gdzie od Laravel 11 konfiguruje się middleware globalne zamiast w Kernel. php?
Lernen beginnen
W bootstrap/app. php przez fluent API Application: configure().
Dlaczego route: cache wywala się przy trasie z closure?
Lernen beginnen
Closure nie da się serializować do pliku cache - trasa musi wskazywać na kontroler.
Ile instancji zwróci dwukrotne app()->make() po zarejestrowaniu przez bind()?
Lernen beginnen
Dwie różne instancje - bind() tworzy nową za każdym razem.
Ile instancji zwróci dwukrotne app()->make() po zarejestrowaniu przez singleton()?
Lernen beginnen
Jedną, tę samą instancję z cache kontenera.
Jaka jest pułapka singletona w Laravel Octane?
Lernen beginnen
Kontener żyje dłużej niż jeden request - mutowalny stan singletona wycieka między requestami.
Czym różni się scoped() od singleton()?
Lernen beginnen
scoped() jest resetowany między requestami w Octane/queue workerach, singleton nie.
Co robi instance() w kontenerze?
Lernen beginnen
Wstrzykuje już gotowy, wcześniej utworzony obiekt jako binding.
Po co jest bindIf()?
Lernen beginnen
Rejestruje binding tylko jeśli jeszcze nie istnieje - przydatne w pakietach, by nie nadpisać configu aplikacji.
Co to jest contextual binding?
Lernen beginnen
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?
Lernen beginnen
Rzuca BindingResolutionException.
Do czego służy app()->tag()?
Lernen beginnen
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?
Lernen beginnen
Laravel woła register() na wszystkich providerach, dopiero potem boot() na wszystkich.
Co to są deferred providery?
Lernen beginnen
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?
Lernen beginnen
Wywołuje magiczną __callStatic(), która przez Facade deleguje do realnej instancji z kontenera.
Jaka metoda facade zwraca nazwę bindingu, np. router?
Lernen beginnen
getFacadeAccessor().
Jaka jest realna wada nadużywania facades?
Lernen beginnen
Ukryte zależności - sygnatura konstruktora nie pokazuje, czego klasa naprawdę potrzebuje.
Dlaczego env('APP_DEBUG') w kontrolerze zwróci null po config: cache?
Lernen beginnen
Po cache'owaniu configu plik. env w ogóle nie jest wczytywany.
Gdzie wolno wołać env(), a gdzie nie?
Lernen beginnen
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?
Lernen beginnen
Odpala łącznie config: cache, route: cache i view: cache.
Jakie ryzyko niesie optimize bez uprzedniego optimize: clear przy deployu?
Lernen beginnen
Aplikacja może działać na starej, zamrożonej konfiguracji mimo zmienionych plików źródłowych.
Jak działa implicit route model binding?
Lernen beginnen
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?
Lernen beginnen
404, bo ModelNotFoundException jest automatycznie tłumaczony przez exception handler.
Jaki wzorzec projektowy stoi za middleware pipeline?
Lernen beginnen
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?
Lernen beginnen
W odwrotnej kolejności niż middleware były rejestrowane.
Co to jest terminable middleware?
Lernen beginnen
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?
Lernen beginnen
Bo relacja author nie została dociągnięta - trzeba with('comments. author').
Czy eager loading widzi N+1 ukryty w accessorze/getXAttribute()?
Lernen beginnen
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?
Lernen beginnen
Model: preventLazyLoading() w AppServiceProvider: boot().
Czym różni się chunk() od cursor() pamięciowo?
Lernen beginnen
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?
Lernen beginnen
chunkById - zwykły chunk może przeskoczyć rekordy przy usuwaniu w trakcie iteracji.
Jaka jest kolejność eventów modelu przy create()?
Lernen beginnen
saving -> creating -> insert -> created -> saved.
Jaka jest kolejność eventów modelu przy update()?
Lernen beginnen
saving -> updating -> update -> updated -> saved.
Czym jest Observer w Eloquencie?
Lernen beginnen
Klasa z metodami o nazwach eventów modelu, rejestrowana przez Model: observe().
Dlaczego global scope bywa niebezpieczny?
Lernen beginnen
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?
Lernen beginnen
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?
Lernen beginnen
Worker przy odpaleniu joba pobiera świeży rekord z bazy, nie zapisaną kopię.
Czym różni się connection od queue w config/queue. php?
Lernen beginnen
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?
Lernen beginnen
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?
Lernen beginnen
config: cache, route: cache, view: cache, migrate --force - dopiero potem przełączenie symlinku.
Czym różni się queue: restart od twardego kill procesu workera?
Lernen beginnen
queue: restart pozwala workerowi dokończyć bieżący job i dopiero potem się zamknąć.
Jak assertować brak N+1 w teście Laravela?
Lernen beginnen
DB: enableQueryLog() przed requestem, potem assertLessThanOrEqual na count(DB: getQueryLog()).
Dlaczego relacja morphTo jest trudniejszym przypadkiem N+1?
Lernen beginnen
Generuje osobne zapytanie per typ powiązanego modelu, bo różne typy leżą w różnych tabelach.
Co robi DatabaseTransactions w testach Laravela?
Lernen beginnen
Owija każdy test w transakcję i robi ROLLBACK na końcu, bez resetowania struktury bazy.
Co robi RefreshDatabase w testach Laravela?
Lernen beginnen
Sprawdza czy migracje są aktualne, odpala je jeśli nie, i korzysta z transakcji per test.
Kiedy RefreshDatabase jest konieczny mimo że wolniejszy?
Lernen beginnen
Gdy test jest wrażliwy na strukturę schematu albo sam robi commit/rollback ręcznie.
Jaka jest minimalna wersja PHP wymagana przez Laravel 11?
Lernen beginnen
PHP 8.2.
Co zniknęło ze szkieletu aplikacji w Laravel 11?
Lernen beginnen
app/Http/Kernel. php i app/Console/Kernel. php - konfiguracja przeniosła się do bootstrap/app. php.
Co zmienił Laravel 10 w typowaniu kodu?
Lernen beginnen
Wprowadził natywne typy PHP we wszystkich metodach szkieletu i core frameworka.
Czym charakteryzuje się Laravel 12 względem Laravel 11?
Lernen beginnen
Głównie aktualizacją zależności i nowymi starter kitami, bez dużych zmian strukturalnych.
Co to jest Laravel Precognition?
Lernen beginnen
Mechanizm pozwalający walidować formularz na frontendzie bez duplikowania reguł walidacji z backendu.
Jakie są główne typy relacji w Eloquencie?
Lernen beginnen
hasOne, hasMany, belongsTo, belongsToMany, hasManyThrough, morphMany/morphTo.
Czym różni się hasMany od belongsToMany?
Lernen beginnen
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?
Lernen beginnen
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+)?
Lernen beginnen
Jedna metoda zwracająca Attribute: make(get: ..., set: ...), zamiast osobnych getXAttribute()/setXAttribute().
Czym różni się local scope od global scope w Eloquencie?
Lernen beginnen
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?
Lernen beginnen
web dokłada sesję i ochronę CSRF, api dokłada throttling bez sesji.
Czym różni się explicit route model binding od implicit?
Lernen beginnen
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)?
Lernen beginnen
Kodem w repozytorium przez $schedule->command(...)->daily(), jednym wpisem crona wołającym schedule: run.
Co to jest Package Discovery w Laravelu?
Lernen beginnen
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?
Lernen beginnen
Mail: fake() przed akcją, potem Mail: assertSent().
Dlaczego mockowanie facade jest bezpieczne?
Lernen beginnen
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?
Lernen beginnen
Queue: fake() i Queue: assertPushed().
Jak przetestować samą logikę joba bez mechanizmu kolejki?
Lernen beginnen
Wywołać (new Job($x))->handle() bezpośrednio jak zwykłą klasę.
Dlaczego assertDatabaseHas() jest bezpieczniejsze niż sprawdzanie return z save()?
Lernen beginnen
Weryfikuje faktyczny stan bazy, niezależnie jaką ścieżką zapis nastąpił.
Jaki jest odpowiednik loginUser() w Laravelu?
Lernen beginnen
$this->actingAs($user).
Jak bezpiecznie zrestartować worker bez przerywania joba w trakcie?
Lernen beginnen
queue: restart w Laravelu - kończy bieżący job, potem się zamyka.
Kiedy wybrać Sanctum zamiast Passport w Laravelu?
Lernen beginnen
Gdy masz własny, ufany frontend (SPA/mobile), nie zewnętrznych deweloperów.
Kiedy wybrać Passport zamiast Sanctum?
Lernen beginnen
Gdy API mają konsumować zewnętrzni deweloperzy z pełnym flow OAuth2 i scope'ami.
Jak Sanctum rozpoznaje request z SPA jako stateful?
Lernen beginnen
Middleware EnsureFrontendRequestsAreStateful sprawdza domenę w config('sanctum. stateful').
Kiedy Form Request jest rozwiązywany względem wywołania kontrolera?
Lernen beginnen
Przed - jako część wstrzykiwania argumentów w ArgumentResolverze.
Co się dzieje, gdy authorize() w Form Request zwróci false?
Lernen beginnen
Kontroler się nie wykonuje, leci AuthorizationException.
Czym różni się singleton() w kontenerze Laravela od klasycznego wzorca Singleton?
Lernen beginnen
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?
Lernen beginnen
Statyczny interfejs do obiektu faktycznie zarejestrowanego w kontenerze DI, np. Cache: get() zamiast wstrzykiwać CacheManager.
Co to jest Service Provider w skrócie?
Lernen beginnen
Miejsce rejestracji bindingów w kontenerze i konfiguracji danej funkcjonalności przy starcie aplikacji Laravel.
Co robi Artisan w Laravelu?
Lernen beginnen
Wbudowane narzędzie CLI do generowania kodu, migracji, kolejek i innych zadań administracyjnych.
Co robi opcja retry_after w konfiguracji kolejki?
Lernen beginnen
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?
Lernen beginnen
Metoda backoff() na klasie joba, zwracająca liczbę sekund albo tablicę opóźnień per kolejna próba.
Dlaczego joby w Laravelu powinny być idempotentne?
Lernen beginnen
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?
Lernen beginnen
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?
Lernen beginnen
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?
Lernen beginnen
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?
Lernen beginnen
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?
Lernen beginnen
Wykonuje job natychmiast, synchronicznie, w tym samym requeście - używany głównie lokalnie/w testach, nie na produkcji.

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