فهرست:

کوکی ها در انجام جلسه کاربر در یک وب اپلیکیشن ، نقش مهمی را بازی می کنند. در این مبحث، شما با کار کوکی ها در وب اپلیکیشن های مبتنی بر لاراول آشنا خواهید شد.

ایجاد یک کوکی در لاراول

کوکی را می توان توسط 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”/]