codezero/cookie
PHP Cookies
Your friendly, furry cookie monster!
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!
Installation
Install this package through Composer:
composer require codezero/cookie
Vanilla PHP Implementation
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!
Laravel 5 Implementation
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!
Usage
Get a cookie
This will return null if the cookie doesn't exist or is expired.
$cookieValue = $cookie->get('cookieName');
Store a cookie for a limited time
If you don't specify $minutesValid, a default of 60 minutes will be used.
$minutesValid = 120;
$cookie->store('cookieName', 'cookieValue', $minutesValid);
Store a cookie forever
5 years feels like forever... ;)
$cookie->forever('cookieName', 'cookieValue');
Delete a cookie
If the cookie doesn't exist, nothing will happen...
$cookie->delete('cookieName');
Check if a cookie exists
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!
}
Testing
$ composer run test
Security
If you discover any security related issues, please e-mail me instead of using the issue tracker.
License
The MIT License (MIT). Please see License File for more information.
Related Packages
Automatically detect and set an app locale that matches your visitor's preferenc...
Laravel Package for TMDB ( The Movie Database ) API. Provides easy access to the...


