私は表現力豊かな禅を学び、工場についていくつか質問があります。
したがって、ミドルウェアでセッションを取得できます。
...
/** @var Zend\Expressive\Session\LazySession $session */
$session = $request->getAttribute(SessionMiddleware::SESSION_ATTRIBUTE);
...
ただし、セッションに依存するカスタム サービスを作成する場合は、セッション インスタンスをファクトリに取得する必要があります。
class AuthServiceFactory
{
public function __invoke(ContainerInterface $container): HttpAuthService
{
// get instance $userRepository
// get instance $session
return new HttpAuthService(
$userRepository,
$session
);
}
}
コンテナからリクエストインスタンスを取得しようとすると:
public function __invoke(ContainerInterface $container): HttpAuthService
{
dd($container->get(\Psr\Http\Message\ServerRequestInterface::class));
}
Closure を返します。
この段階ではリクエストは初期化されていないと思います。
私の仕事は、認証されたユーザーをセッションに保存する承認用のサービスを作成することです。
教えてください、どうすればリクエストとセッションのインスタンスを正しく取得できますか?
多分、私はzend表現がどのように機能するかを理解していませんか?