germania-kg/aurasession-middleware

1.3.1 2022-03-30 09:46 UTC

This package is auto-updated.

Last update: 2024-08-29 04:31:11 UTC


README

Aura.Session Segments 注入到 PSR-7 ServerRequests 的中间件。

Packagist PHP version Build Status Scrutinizer Code Quality Code Coverage Build Status

使用 Composer 安装

$ composer require germania-kg/aurasession-middleware

使用方法

<?php
use Germania\AuraSessionMiddleware\AuraSessionSegmentMiddleware;

// Create session and segment, cf. Aura.Session docs
$session_factory = new \Aura\Session\SessionFactory;
$session = $session_factory->newInstance($_COOKIE);
$segment = $session->getSegment('Vendor\Package\ClassName');

// Optional with PSR-3 Logger
$mw = new AuraSessionSegmentMiddleware( $segment );
$mw = new AuraSessionSegmentMiddleware( $segment, $logger );

在您的路由中

<?php
$app = new \Slim\App();
$app->get('/books/{id}', function ($request, $response, $args) {
	// This is your Aura.Session segment
    $session = $request->getAttribute("session");
	...    
});

设置 PSR7 请求属性名称

默认情况下,SessionSegment 存储为名为 session 的 PSR7 请求属性。您可以在实例化后立即设置一个自定义名称

<?php
$mw = new AuraSessionSegmentMiddleware( $segment );

// "session" per default
echo $mv->getRequestAttributeName( );

// Choose another one...
$mv->setRequestAttributeName( "custom_name" );

// Inside route:
$session = $request->getAttribute("custom_name");

Pimple 服务提供者

<?php
use Germania\AuraSessionMiddleware\PimpleServiceProvider;
use Aura\Session\SegmentInterface;
use Psr\Log\LoggerInterface;

// have your Pimple DIC ready, and optionally a PSR3 Logger:
$sp = new PimpleServiceProvider("session", "request_attr");
$sp = new PimpleServiceProvider("session", "request_attr", $psr3_logger);
$sp->register( $dic );

// Grab your services
$yes = $dic['Session'] instanceOf SegmentInterface;
$yes = $dic['Session.Logger'] instanceOf LoggerInterface;
$yes = is_callable( $dic['Session.Middleware'] );

与 Slim 框架一起使用

<?php
$app = new \Slim\App;
$app->add( $dic['Session.Middleware'] );

开发

$ git clone https://github.com/GermaniaKG/AuraSessionMiddleware.git
$ cd AuraSessionMiddleware
$ composer install

单元测试

要么将 phpunit.xml.dist 复制到 phpunit.xml 并根据您的需求进行调整,要么保持不变。运行 PhpUnit 测试或 composer 脚本,如下所示

$ composer test
# or
$ vendor/bin/phpunit