Laravel

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

Devi essere accedere per pubblicare un commento.