فهرست:
کوکی ها در انجام جلسه کاربر در یک وب اپلیکیشن ، نقش مهمی را بازی می کنند. در این مبحث، شما با کار کوکی ها در وب اپلیکیشن های مبتنی بر لاراول آشنا خواهید شد.
ایجاد یک کوکی در لاراول
کوکی را می توان توسط global cookie helper لاراول که یک نمونه از SymfonyComponentHttpFoundationCookie
می باشد ایجاد نمود. کوکی را می توان با استفاده از متد withCookie
به response پیوست کرد. برای فراخوانی متد withCookie
یک نمونه response از کلاس IlluminateHttpResponse
ایجاد می کنیم. لازم به ذکر است کوکی ایجاد شده توسط Laravel
رمزگذاری و امضا شده و توسط کاربر قابل اصلاح یا خواندن نیست. برای درک بهتر از توضیحات انجام شده به مثال زیر دقت کنید.
[pastacode lang=”php” manual=”%2F%2FCreate%20a%20response%20instance%0A%24response%20%3D%20new%20Illuminate%5CHttp%5CResponse(‘Hello%20World’)%3B%0A%0A%2F%2FCall%20the%20withCookie()%20method%20with%20the%20response%20method%0A%24response-%3EwithCookie(cookie(‘name’%2C%20’value’%2C%20%24minutes))%3B%0A%0A%2F%2Freturn%20the%20response%0Areturn%20%24response%3B” message=”” highlight=”” provider=”manual”/]
متد Cookie
سه آرگومان خواهد داشت. آرگومان اول نام کوکی، آرگومان دوم مقدار کوکی و آرگومان سوم مدت زمان کوکی می باشد که پس از آن کوکی به طور خودکار حذف می شود. چنانچه مد نظرتان باشد که کوکی ورد نظر شما برای همیشه دارای اعتبار زمانی باشد بصورت زیر آن را ایجاد می نماییم.
[pastacode lang=”php” manual=”%24response-%3EwithCookie(cookie()-%3Eforever(‘name’%2C%20’value’))%3B%0A” message=”” highlight=”” provider=”manual”/]
بازیابی کوکی در لاراول
پس از ایجاد کوکی، می توانیم کوکی مورد نظر را با استفاده از متد cookie
بازیابی کنیم. در اینجا متد cookie
فقط یک آرگومان خواهد داشت که نام کوکی خواهد بود. متد cookie
را می توان با استفاده از نمونه IlluminateHttpRequest
فراخوانی کرد. نمونه کد زیر را بررسی بفرمایید.
[pastacode lang=”php” manual=”%2F%2F%E2%80%99name%E2%80%99%20is%20the%20name%20of%20the%20cookie%20to%20retrieve%20the%20value%20of%0A%24value%20%3D%20%24request-%3Ecookie(‘name’)%3B” message=”” highlight=”” provider=”manual”/]
مثال کاربردی برای کوکی ها در لاراول
برای درک بیشتر کوکی ها در لاراول مثال زیر را بررسی می کنیم، برای ایجاد یک کنترلر که در آن کوکی را دستکاری می کنیم، دستور زیر را اجرا کنید.
[pastacode lang=”markup” manual=”php%20artisan%20make%3Acontroller%20CookieController%20–plain” message=”” highlight=”” provider=”manual”/]
کد زیر را در فایل app/Http/Controllers/CookieController.php
قرار دهید.
[pastacode lang=”php” manual=”%3C%3Fphp%0A%0Anamespace%20App%5CHttp%5CControllers%3B%0A%0Ause%20Illuminate%5CHttp%5CRequest%3B%0Ause%20Illuminate%5CHttp%5CResponse%3B%0Ause%20App%5CHttp%5CRequests%3B%0Ause%20App%5CHttp%5CControllers%5CController%3B%0A%0Aclass%20CookieController%20extends%20Controller%20%7B%0A%20%20%20public%20function%20setCookie(Request%20%24request)%20%7B%0A%20%20%20%20%20%20%24minutes%20%3D%201%3B%0A%20%20%20%20%20%20%24response%20%3D%20new%20Response(‘Hello%20World’)%3B%0A%20%20%20%20%20%20%24response-%3EwithCookie(cookie(‘name’%2C%20’uclass’%2C%20%24minutes))%3B%0A%20%20%20%20%20%20return%20%24response%3B%0A%20%20%20%7D%0A%20%20%20public%20function%20getCookie(Request%20%24request)%20%7B%0A%20%20%20%20%20%20%24value%20%3D%20%24request-%3Ecookie(‘name’)%3B%0A%20%20%20%20%20%20echo%20%24value%3B%0A%20%20%20%7D%0A%7D” message=”app/Http/Controllers/CookieController.php” highlight=”” provider=”manual”/]
کد های زیر را در فایل app/Http/routes.php
بارگذاری کنید.
[pastacode lang=”php” manual=”Route%3A%3Aget(‘%2Fcookie%2Fset’%2C’CookieController%40setCookie’)%3B%0ARoute%3A%3Aget(‘%2Fcookie%2Fget’%2C’CookieController%40getCookie’)%3B” message=”app/Http/routes.php” highlight=”” provider=”manual”/]
برای ایجاد کردن کوکی مورد نظر به آدرس زیر مراجعه می کنیم بعد از لود آدرس کوکی مورد نظر شما ایجاد شده است.
[pastacode lang=”markup” manual=”http%3A%2F%2Flocalhost%3A8000%2Fcookie%2Fset” message=”” highlight=”” provider=”manual”/]
و خروجی مروگر شما باید بصورت زیر باشد.
[pastacode lang=”markup” manual=”Hello%20World” message=”” highlight=”” provider=”manual”/]
و برای دریافت کوکی مورد نظر از ادرس زیر استفاده می کنیم.
[pastacode lang=”markup” manual=”http%3A%2F%2Flocalhost%3A8000%2Fcookie%2Fget” message=”” highlight=”” provider=”manual”/]
وخروجی مرورگر شما باید بصورت زیر باشد.
[pastacode lang=”markup” manual=”uclass” message=”” highlight=”” provider=”manual”/]