Skip to content

Your friendly, furry cookie monster. Get and set cookies with ease!

License

Notifications You must be signed in to change notification settings

codezero-be/cookie

Repository files navigation

PHP Cookies

GitHub release License Build Status Code Coverage Scrutinizer Code Quality Total Downloads

ko-fi

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's Cookie 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.