PHPackages                             siteparts/http-message-cookies - 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. [HTTP &amp; Networking](/categories/http)
4. /
5. siteparts/http-message-cookies

ActiveLibrary[HTTP &amp; Networking](/categories/http)

siteparts/http-message-cookies
==============================

Cookies for PSR-7

v1.0.0(2y ago)0104BSD-3-ClausePHPPHP ^7.1 || ^8.0

Since Apr 23Pushed 2y agoCompare

[ Source](https://github.com/siteparts/http-message-cookies)[ Packagist](https://packagist.org/packages/siteparts/http-message-cookies)[ Docs](https://github.com/siteparts/http-message-cookies)[ RSS](/packages/siteparts-http-message-cookies/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (2)Versions (5)Used By (0)

Cookies for PSR-7
=================

[](#cookies-for-psr-7)

*Add cookie headers to PSR-7 messages.*

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

[](#installation)

Via Composer:

```
$ composer require siteparts/http-message-cookies
```

Usage
-----

[](#usage)

The `Set-Cookie` headers are added to the PSR-7 response object using the `addTo` method of `ResponseCookie` class.

Set cookies using template:

```
use DateTime;
use SiteParts\Cookies\HttpMessage\ResponseCookieTemplate;

$cookieTemplate = new ResponseCookieTemplate([
	'domain' => 'example.org',
	'path' => '/foo',
	'expires' => new DateTime("+14 days"),
]);

// $response is instance of Psr\Http\Message\ResponseInterface

$response = $cookieTemplate
	->create("lang", "en")
	->addTo($response);

$response = $cookieTemplate
	->create("color", "blue")
	->withSecure(true)
	->addTo($response);
```

Set cookies directly:

```
use DateTime;
use SiteParts\Cookies\HttpMessage\ResponseCookie;

// $response is instance of Psr\Http\Message\ResponseInterface

$response = new ResponseCookie("lang", "en")
	->withDomain("example.org")
	->withPath("/foo")
	->withExpires(new DateTime("+14 days"))
	->addTo($response);

$response = new ResponseCookie("color", "blue")
	->withDomain("example.org")
	->withPath("/foo")
	->withExpires(new DateTime("+14 days"))
	->withSecure(true)
	->addTo($response);
```

Response cookie template parameters:

```
$cookieTemplate = new ResponseCookieTemplate([
	'domain' => 'example.org',
	'path' => '/foo',
	'expires' => new DateTime("+14 days"),
	'max_age' => 14 * 24 * 60 * 60,
	'secure' => true,
	'http_only' => true,
	'same_site' => 'Strict',
]);
```

Response cookie methods:

```
$cookie = new ResponseCookie("lang", "en")
	->withDomain("example.org")
	->withPath("/foo")
	->withExpires(new DateTime("+14 days"))
	->withMaxAge(14 * 24 * 60 * 60)
	->withSecure(true)
	->withHttpOnly(true)
	->withSameSite("Strict");
```

For use with a PSR-11 container, see `ResponseCookieTemplateFactory` class.

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~405 days

Total

4

Last Release

990d ago

Major Versions

v0.3.0 → v1.0.02023-08-23

PHP version history (2 changes)v0.1.0PHP ^7.1

v1.0.0PHP ^7.1 || ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/3ca9b2beb4cf4006fe50549c3af315f638b9a0754a962705ea5eea7c6f23d37b?d=identicon)[tomascapka](/maintainers/tomascapka)

---

Top Contributors

[![tomascapka](https://avatars.githubusercontent.com/u/63675470?v=4)](https://github.com/tomascapka "tomascapka (4 commits)")

---

Tags

psr-7http-messagecookies

###  Code Quality

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/siteparts-http-message-cookies/health.svg)

```
[![Health](https://phpackages.com/badges/siteparts-http-message-cookies/health.svg)](https://phpackages.com/packages/siteparts-http-message-cookies)
```

###  Alternatives

[symfony/psr-http-message-bridge

PSR HTTP message bridge

1.3k296.6M804](/packages/symfony-psr-http-message-bridge)[dflydev/fig-cookies

Cookies for PSR-7 HTTP Message Interface.

2268.5M101](/packages/dflydev-fig-cookies)[httpsoft/http-message

Strict and fast implementation of PSR-7 and PSR-17

86874.0k94](/packages/httpsoft-http-message)[hansott/psr7-cookies

🍪 bakes cookies for PSR-7 messages

402.2M19](/packages/hansott-psr7-cookies)[phpro/http-tools

HTTP tools for developing more consistent HTTP implementations.

28137.8k](/packages/phpro-http-tools)[art4/requests-psr18-adapter

Use WordPress/Requests as a PSR-18 HTTP client

153.3k](/packages/art4-requests-psr18-adapter)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
