Skip to content

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.

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages