NOTE: For Version 3 of the AWS SDK for PHP, please see the V3 User Guide and V3 API Reference.

# Class PessimisticLockingStrategy

This locking strategy uses pessimistic locking (similar to how the native PHP session handler works) to ensure that sessions are not edited while another process is reading/writing to it. Pessimistic locking can be expensive and can increase latencies, especially in cases where the user can access the session more than once at the same time (e.g. ajax, iframes, or multiple browser tabs)

  Aws\DynamoDb\Session\LockingStrategy\AbstractLockingStrategy implements Aws\DynamoDb\Session\LockingStrategy\LockingStrategyInterface
  Aws\DynamoDb\Session\LockingStrategy\PessimisticLockingStrategy

Namespace: Aws\DynamoDb\Session\LockingStrategy
Located at Aws/DynamoDb/Session/LockingStrategy/PessimisticLockingStrategy.php

## Methods summary

- `public` `__construct ( Aws\DynamoDb\DynamoDbClient $client, Aws\DynamoDb\Session\SessionHandlerConfig $config )`

  Adds the defaults for the pessimistic locking strategy if not set

- `public` `doRead ( string $id )`

  Reads the session data from Dynamo DB Retries the request until the lock can be acquired

- `protected` `getExtraAttributes ( )`

  Allows the specific strategy to add additional attributes to update

## Methods detail

# `public`
`__construct( `Aws\DynamoDb\DynamoDbClient` $client, `Aws\DynamoDb\Session\SessionHandlerConfig` $config )`

Adds the defaults for the pessimistic locking strategy if not set

#### Parameters

$client
  ``Aws\DynamoDb\DynamoDbClient``
  $client The DynamoDB client
$config
  ``Aws\DynamoDb\Session\SessionHandlerConfig``
  $config The session handler config options

#### Overrides

`Aws\DynamoDb\Session\LockingStrategy\AbstractLockingStrategy::__construct`
# `public array`
`doRead( string $id )`

Reads the session data from Dynamo DB Retries the request until the lock can be acquired

#### Parameters

$id
  `string`
  $id The session ID

#### Returns

`array`
# `protected array`
`getExtraAttributes( )`

Allows the specific strategy to add additional attributes to update

#### Returns

`array`

### Methods inherited from Aws\DynamoDb\Session\LockingStrategy\AbstractLockingStrategy

`doDestroy()`, `doWrite()`, `formatKey()`

### Magic methods summary

## Properties summary

### Properties inherited from Aws\DynamoDb\Session\LockingStrategy\AbstractLockingStrategy

`$client`, `$config`