codezero / cookie
Your friendly, furry cookie monster. Get and set cookies with ease.
Installs: 46 433
Dependents: 1
Suggesters: 0
Security: 0
Stars: 9
Watchers: 4
Forks: 2
Open Issues: 0
Requires
- php: >=5.4.0
- codezero/encrypter: ~2.0
Requires (Dev)
- illuminate/cookie: >=5.0
- illuminate/http: >=5.0
- illuminate/support: >=5.0
- phpunit/phpunit: ~8.0
This package is auto-updated.
Last update: 2024-10-28 04:43:42 UTC
README
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
Cookie
implementation. This will use Laravel'sCookie
goodness 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.