snicco / session-bundle
Requires
- php: ^7.4|^8.0
- snicco/better-wp-api: ^2.0
- snicco/better-wp-cache: ^2.0
- snicco/better-wp-cache-bundle: ^2.0
- snicco/better-wp-hooks: ^2.0
- snicco/better-wp-hooks-bundle: ^2.0
- snicco/better-wpdb: ^2.0
- snicco/better-wpdb-bundle: ^2.0
- snicco/encryption-bundle: ^2.0
- snicco/event-dispatcher: ^2.0
- snicco/http-routing: ^2.0
- snicco/http-routing-bundle: ^2.0
- snicco/kernel: ^2.0
- snicco/session: ^2.0
- snicco/session-psr16-bridge: ^2.0
- snicco/session-wp-bridge: ^2.0
Requires (Dev)
- codeception/codeception: ^4.1.29
- lucatume/wp-browser: ~3.1.4
- nyholm/psr7: ^1.0.0
- phpunit/phpunit: ^9.5.13
- snicco/http-routing-testing: ^2.0
- snicco/testable-clock: ^2.0
- snicco/testing-bundle: ^2.0
Conflicts
- snicco/better-wp-cli: <2.0.0-beta.9
- snicco/better-wp-cli-testing: <2.0.0-beta.9
- snicco/better-wp-mail: <2.0.0-beta.9
- snicco/better-wp-mail-bundle: <2.0.0-beta.9
- snicco/better-wp-mail-testing: <2.0.0-beta.9
- snicco/blade-bridge: <2.0.0-beta.9
- snicco/blade-bundle: <2.0.0-beta.9
- snicco/content-negotiation-middleware: <2.0.0-beta.9
- snicco/debug-bundle: <2.0.0-beta.9
- snicco/default-headers-middleware: <2.0.0-beta.9
- snicco/eloquent: <2.0.0-beta.9
- snicco/event-dispatcher-testing: <2.0.0-beta.9
- snicco/guests-only-middleware: <1.0.0
- snicco/http-routing-testing: <2.0.0-beta.9
- snicco/https-only-middleware: <2.0.0-beta.9
- snicco/illuminate-container-bridge: <2.0.0-beta.9
- snicco/kernel-testing: <2.0.0-beta.9
- snicco/method-override-middleware: <2.0.0-beta.9
- snicco/minimal-logger: <2.0.0-beta.9
- snicco/must-match-route-middleware: <2.0.0-beta.9
- snicco/no-robots-middleware: <2.0.0-beta.9
- snicco/open-redirect-protection-middleware: <2.0.0-beta.9
- snicco/payload-middleware: <2.0.0-beta.9
- snicco/pimple-bridge: <2.0.0-beta.9
- snicco/psr7-error-handler: <2.0.0-beta.9
- snicco/redirect-middleware: <2.0.0-beta.9
- snicco/session-testing: <2.0.0-beta.9
- snicco/share-cookies-middleware: <2.0.0-beta.9
- snicco/signed-url: <2.0.0-beta.9
- snicco/signed-url-psr15-bridge: <2.0.0-beta.9
- snicco/signed-url-psr16-bridge: <2.0.0-beta.9
- snicco/signed-url-testing: <2.0.0-beta.9
- snicco/signed-url-wp-bridge: <2.0.0-beta.9
- snicco/str-arr: <2.0.0-beta.9
- snicco/templating: <2.0.0-beta.9
- snicco/templating-bundle: <2.0.0-beta.9
- snicco/testable-clock: <2.0.0-beta.9
- snicco/testing-bundle: <2.0.0-beta.9
- snicco/trailing-slash-middleware: <2.0.0-beta.9
- snicco/wp-auth-only-middleware: <2.0.0-beta.9
- snicco/wp-capability-middleware: <2.0.0-beta.9
- snicco/wp-capapility-middleware: <1.0.0
- snicco/wp-guests-only-middleware: <2.0.0-beta.9
- snicco/wp-nonce-middleware: <2.0.0-beta.9
- dev-master
- v2.0.0-beta.9
- v2.0.0-beta.8
- v2.0.0-beta.7
- v2.0.0-beta.6
- v2.0.0-beta.5
- v2.0.0-beta.4
- v2.0.0-beta.3
- v2.0.0-beta.2
- v2.0.0-beta.1
- v1.10.1
- v1.10.0
- v1.9.1
- v1.9.0
- v1.8.1
- v1.8.0
- v1.7.0
- v1.6.2
- v1.6.1
- v1.6.0
- v1.5.0
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.0
- v1.2.1
- v1.2.0
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.2
- v1.0.1
- v1.0.0
- dev-beta
This package is auto-updated.
Last update: 2024-12-07 15:01:22 UTC
README
This WordPress bundle integrates snicco/session
in applications based on snicco/kernel
.
The snicco/http-routing-bundle
is required for this bundle.
Installation
composer install snicco/session-bundle
Configuration
See config/session.php for the available configuration options.
If this file does not exist in your configuration directory the default configuration will be copied the first time the kernel is booted in dev mode.
Add the SessionBundle
to your bundles.php
config file.
<?php // /path/to/configuration/bundles.php use Snicco\Bundle\Session\SessionBundle; return [ 'bundles' => [ Snicco\Component\Kernel\ValueObject\Environment::ALL => [ SessionBundle::class ] ] ];
Usage
This bundle contains several middleware that manage the session lifecycle.
AllowMutableSessionForReadVerbs
,allows starting writable session for GET requests.StatefulRequest
, starts and saves a session.SessionNoCache
, marks the response as not cacheable.ShareSessionWithViews
, adds anImmutableSession
and an instance ofSessionErrors
to allViewResponses
.SaveResponseAttributes
, saves flash messages, errors and old-input in the session.
Its recommended configure the session middleware in the middleware
config of the HttpRoutingBundle
like so:
//path/to/config/middleware.php use Snicco\Bundle\HttpRouting\Option\MiddlewareOption; use Snicco\Bundle\Session\Middleware\AllowMutableSessionForReadVerbs; use Snicco\Bundle\Session\Middleware\SaveResponseAttributes; use Snicco\Bundle\Session\Middleware\SessionNoCache; use Snicco\Bundle\Session\Middleware\ShareSessionWithViews; use Snicco\Bundle\Session\Middleware\StatefulRequest; return [ MiddlewareOption::GROUPS => [ 'stateful' => [ StatefulRequest::class, ShareSessionWithViews::class, SaveResponseAttributes::class, // SessionNoCache::class, optional ] ], MiddlewareOption::ALIASES => [ 'session-allow-write' => AllowMutableSessionForReadVerbs::class, 'session-no-cache' => SessionNoCache::class, ] ];
The session can be accessed on the PSR-7 request:
// inside a controller or middleware use Snicco\Component\Session\ImmutableSession; use Snicco\Component\Session\MutableSession; $request->getAttribute(ImmutableSession::class); // Only for unsafe request methods or if allowed explicitly for read requests. $request->getAttribute(MutableSession::class);
Contributing
This repository is a read-only split of the development repo of the Snicco project.
This is how you can contribute.
Reporting issues and sending pull requests
Please report issues in the Snicco monorepo.
Security
If you discover a security vulnerability within BetterWPCache, please follow our disclosure procedure.