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); |