Cevaplara Giriş
Elbette, tüm yönlendirici ve kontrolcüler kullanıcının tarayıcısına bir şeyler geri dönmelidir. Laravel geri dönüş cevapları için birkaç yol sağlar. En temel cevap bir yönlendirici veya kontrolcüden yazı döndürmektir.
PHP’de cevapların nasıl üretildiğini merak ediyorsanız bu iki video tam sizin için
Bu video Laravel’in illuminate/http
paketindeki response objesini derinlemesine inceleyeceğiz. Aynı zamanda symfony/http-foundation
paketi içindeki response objesini de incelemiş oluyoruz.
Bu videoda ise bu makaleyi toparlamak için yaptığım Laravel framework içerisinde kullanımını gösteren bir video. Oldukça faydalı bulacağınıza eminim.
1 2 3 |
Route::get('/', function () { return 'Hello World'; }); |
Verilen text framewörk tarafından otomatik olarak HTTP cevaba dönüştürülecektir.
Ancak, çoğu yönlendirici ve kontrolcü eylemi için Illuminate\Http\Response
örneği veya görünüm
dönüşünüz olacaktır. Response
örneği dönme, cevabın HTTP surum kodu ve başlık bilgilerini özelleştirmenize izin verir. Bir Response
örneği, HTTP cevaplar oluşturmak için çeşitli metodlar sağlayan Symfony\Component\HttpFoundation\Response
sınıfından genişletilmiştir:
1 2 3 4 5 6 |
use Illuminate\Http\Response; Route::get('home', function () { return (new Response($content, $status)) ->header('Content-Type', $value); }); |
Kolay kullanım için response
yardımcısını da kullanabilirsiniz.
1 2 3 4 |
Route::get('home', function () { return response($content, $status) ->header('Content-Type', $value); }); |
Not: Kullanılabilir tüm metod listesi için API dökümantasyonuna ve Symfony API dökümantasyonuna bakınız.
Cevaplara Başlık İliştirmek
Cevap örneğindeki withCookie
yardımcı metodu çerezlerinizi cevaba kolayca iliştirmeye yarar. Örneğin, withCookie
metodunu kullanarak bir çerez üretip cevap örneğine iliştirebilirsiniz.
1 2 |
return response($content)->header('Content-Type', $type) ->withCookie('name', 'value'); |
withCookie
metodu çerezlerinizin özelliklerini daha fazla özelleştirmenizi sağlayan isteğe başlı ek argümanları alır.
1 |
->withCookie($name, $value, $minutes, $path, $domain, $secure, $httpOnly) |
Varsayılan olarak, Laravel tarafından şifrenizi ve imzalanan tüm çerezler, kullanıcı tarafından okunup değiştirilemezler. Eğer uygulamanız tarafından üretilen çerezlerin bazıları için şifremeyi engellemek isterseniz, App\Http\Middleware\EncryptCookies
ara katmanının $except
özelliğini kullanabilirsiniz.
1 2 3 4 5 6 7 8 |
/** * The names of the cookies that should not be encrypted. * * @var array */ protected $except = [ 'cookie_name', ]; |
Diğer Cevap Tipleri
response
yardımcısını parametresiz çağırdığınızda Illuminate\Contracts\Routing\ResponseFactory
kontrat döndürülür. Bu kontrat cevapların üretimi için birkaç yardımcı metod sağlar.
Gönürüm Cevapları
Cevap durumlarını ve başlıklarını kontrol etmeye ihtiyacınız var, aynı zamanda da cevap içeriğini görünüm olarak dönmeye ihtiyacınız varsa, view
metodunu kullanabilirsiniz.
1 |
return response()->view('hello', $data)->header('Content-Type', $type); |