PHPackages                             chronex/cookiebanner - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. chronex/cookiebanner

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

chronex/cookiebanner
====================

A flexible, customizable GDPR-compliant cookie consent banner with automatic script blocking, multiple templates, and comprehensive event hooks.

021PHP

Since Dec 15Pushed 5mo agoCompare

[ Source](https://github.com/alabacakmurat/cookiebanner)[ Packagist](https://packagist.org/packages/chronex/cookiebanner)[ RSS](/packages/chronex-cookiebanner/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Chronex Cookie Banner
=====================

[](#chronex-cookie-banner)

A flexible, customizable, and GDPR-compliant cookie consent banner for PHP applications.

Features
--------

[](#features)

- **Multiple Templates**: Classic, Modern, Minimal, and Floating designs
- **Automatic Script Blocking**: Block third-party scripts until consent is given
- **Event Hooks**: Comprehensive event system for logging and integration
- **Multi-language Support**: 10+ languages included, easily extendable
- **GDPR Compliant**: Consent proof, anonymized IP logging, withdrawal support
- **Pluggable Storage**: Store consent in sessions, database, or encrypted cookies
- **Customizable**: Categories, colors, translations, and more
- **No Dependencies**: Vanilla JavaScript, works with any PHP project

Installation
------------

[](#installation)

```
composer require chronex/cookiebanner
```

Publishing Assets
-----------------

[](#publishing-assets)

The library includes CSS and JavaScript files that need to be accessible from your web server. You can publish these assets using Composer or PHP.

### Using Composer (Recommended)

[](#using-composer-recommended)

```
# Publish with default settings
composer publish-assets

# Publish minified files
composer publish-assets -- --minify

# Publish to a custom path
composer publish-assets -- --path=public/assets/cookiebanner

# Publish combined CSS (all templates in one file) + minified
composer publish-assets -- --minify --combined
```

### Configure in composer.json

[](#configure-in-composerjson)

Add configuration to the `extra` section of your project's `composer.json`:

```
{
    "extra": {
        "cookiebanner": {
            "publish-path": "public/vendor/cookiebanner",
            "minify": true,
            "combined": false
        }
    }
}
```

### Using PHP

[](#using-php)

```
use Chronex\CookieBanner\Asset\AssetPublisher;

// Basic publishing
$publisher = new AssetPublisher('/path/to/public/assets');
$files = $publisher->publishAll();

// Publish with minification
$publisher = new AssetPublisher('/path/to/public/assets', minify: true);
$files = $publisher->publishAll();

// Publish only CSS or JS
$publisher->publishCss();
$publisher->publishJs();

// Publish combined CSS (all templates in one file)
$publisher->publishCombinedCss('cookiebanner-all.css');

// Quick static method
AssetPublisher::publish('/path/to/assets', minify: true, combined: true);
```

### Published File Structure

[](#published-file-structure)

```
public/vendor/cookiebanner/
├── css/
│   ├── base.css          (or base.min.css)
│   ├── classic.css
│   ├── modern.css
│   ├── floating.css
│   ├── minimal.css
│   └── blocking.css
└── js/
    └── cookiebanner.js   (or cookiebanner.min.js)

```

After publishing, update your configuration:

```
$banner = new CookieBanner([
    'assetsUrl' => '/vendor/cookiebanner',
    // ...
]);
```

Quick Start
-----------

[](#quick-start)

```
