| Install | |
|---|---|
composer require codezero/cookie |
|
| Latest Version: | 2.0.0 |
| PHP: | >=5.4.0 |
Get and set cookies in vanilla PHP with ease. A Laravel implementation is included, but this has no real advantages if you only use Laravel.
CAUTION! Never store sensitive data in a cookie!
Install this package through Composer:
composer require codezero/cookie
Autoload the vendor classes:
require_once 'vendor/autoload.php'; // Path may vary
And then use the VanillaCookie implementation:
$cookie = new \CodeZero\Cookie\VanillaCookie();
If you want your cookies to be encrypted, pass an instance of codezero/encrypter to the Cookie class.
You will also need to provide it with an encryption key that is needed to decrypt the cookie later on.
$key = 'my secret app key';
$encrypter = new \CodeZero\Encrypter\DefaultEncrypter($key);
$cookie = new \CodeZero\Cookie\VanillaCookie($encrypter);
TIP: Laravel automagically encrypts cookies by default!
You can "make" (or inject) a Cookie instance anywhere in your app:
$cookie = \App::make('CodeZero\Cookie\Cookie');
TIP: Laravel's IoC container will automatically provide the Laravel specific
Cookieimplementation. This will use Laravel'sCookiegoodness behind the scenes!
This will return null if the cookie doesn't exist or is expired.
$cookieValue = $cookie->get('cookieName');
If you don't specify $minutesValid, a default of 60 minutes will be used.
$minutesValid = 120;
$cookie->store('cookieName', 'cookieValue', $minutesValid);
5 years feels like forever... ;)
$cookie->forever('cookieName', 'cookieValue');
If the cookie doesn't exist, nothing will happen...
$cookie->delete('cookieName');
You can check if a cookie exists. However, keep in mind that a cookie will not be available immediately. It will be on the next page load.
if ($cookie->exists('cookieName')) {
// The cookie exists!
}
$ composer run test
If you discover any security related issues, please e-mail me instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.