

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Aurora DSQL-Konnektor für PHP `PDO_PGSQL`
<a name="SECTION_program-with-dsql-connector-for-php-pdo-pgsql"></a>

Der [Aurora DSQL Connector für PHP](https://github.com/awslabs/aurora-dsql-connectors/tree/main/php/pdo_pgsql) ist ein PHP-Connector [https://www.php.net/manual/en/ref.pdo-pgsql.php](https://www.php.net/manual/en/ref.pdo-pgsql.php), der auf der IAM-Authentifizierung für die Verbindung von PHP-Anwendungen mit Amazon Aurora DSQL-Clustern basiert.

Der Connector kümmert sich um die Token-Generierung, die SSL-Konfiguration und das Verbindungsmanagement, sodass Sie sich auf Ihre Anwendungslogik konzentrieren können.

## Über den Konnektor
<a name="SECTION_program-with-dsql-connector-for-php-pdo-pgsql-about"></a>

Der Aurora DSQL Connector für PHP fügt zusätzlich eine Authentifizierungsebene hinzu`PDO_PGSQL`, die die Generierung von IAM-Tokens übernimmt, sodass Sie mithilfe Ihrer vorhandenen PDO-Workflows eine Verbindung zu Aurora DSQL herstellen können. Amazon Aurora DSQL erfordert eine IAM-Authentifizierung mit zeitlich begrenzten Token, und der Connector verwaltet automatisch die Token-Generierung für Sie.

### Was ist Aurora DSQL-Authentifizierung?
<a name="SECTION_program-with-dsql-connector-for-php-pdo-pgsql-authentication"></a>

In Aurora DSQL umfasst die **Authentifizierung**:
+ **IAM-Authentifizierung**: alle Verbindungen verwenden eine IAM-basierte Authentifizierung mit zeitlich begrenzten Token
+ **Token-Generierung**: Der Connector generiert Authentifizierungstoken mithilfe von AWS Anmeldeinformationen, und diese Token haben eine konfigurierbare Lebensdauer

Der Aurora DSQL Connector für PHP versteht diese Anforderungen und generiert beim Verbindungsaufbau automatisch IAM-Authentifizierungstoken.

### Features
<a name="SECTION_program-with-dsql-connector-for-php-pdo-pgsql-features"></a>
+ **Automatische IAM-Authentifizierung** — Übernimmt die Generierung und Aktualisierung von Aurora DSQL-Tokens
+ **Built on `PDO_PGSQL`** — Umschließt die Standard-PostgreSQL-Erweiterung für PHP
+ **Nahtlose Integration** — Funktioniert mit bestehenden PDO-Workflows
+ **SSL-Durchsetzung** — Verwendet immer SSL mit `verify-full` Modus und direkter TLS-Aushandlung
+ **Automatische Erkennung von Regionen** — Extrahiert die AWS Region aus dem Hostnamen des Aurora DSQL-Clusters
+ **AWS Unterstützung für Anmeldeinformationen** — Unterstützt AWS Profile und Anbieter von benutzerdefinierten Anmeldeinformationen
+ **OCC-Wiederholung — Opt-in-Wiederholungsversuch** mit optimistischer Parallelitätssteuerung mit exponentiellem Backoff und Jitter
+ **PSR-3-Protokollierung** — Kompatible Protokollierung für Wiederholungsdiagnosen

## Beispiel
<a name="SECTION_program-with-dsql-connector-for-php-pdo-pgsql-example-application"></a>

Ein vollständiges Beispiel finden Sie in der [Beispielanwendung](https://github.com/awslabs/aurora-dsql-connectors/tree/main/php/pdo_pgsql/example) unter. GitHub

## Schnellstart-Anleitung
<a name="SECTION_program-with-dsql-connector-for-php-pdo-pgsql-quick-start"></a>

### Voraussetzungen
<a name="SECTION_program-with-dsql-connector-for-php-pdo-pgsql-requirements"></a>
+ PHP 8.2 oder höher
+ `ext-pdo_pgsql`Erweiterung
+ [Zugriff auf einen Aurora DSQL-Cluster](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/getting-started.html)
+ AWS konfigurierte Anmeldeinformationen (über AWS CLI, Umgebungsvariablen oder IAM-Rollen)

## Installation
<a name="SECTION_program-with-dsql-connector-for-php-pdo-pgsql-installation"></a>

Fügen Sie das Paket zu Ihrem Projekt hinzu:

```
composer require awslabs/aurora-dsql-pdo-pgsql
```

## Usage
<a name="SECTION_program-with-dsql-connector-for-php-pdo-pgsql-usage"></a>

### Konfigurationsbasierte Verbindung
<a name="SECTION_program-with-dsql-connector-for-php-pdo-pgsql-config-connection"></a>

```
<?php

require_once 'vendor/autoload.php';

use Aws\AuroraDsql\PdoPgsql\AuroraDsql;
use Aws\AuroraDsql\PdoPgsql\DsqlConfig;

$config = new DsqlConfig(
    host: 'your-cluster.dsql.us-east-1.on.aws',
    occMaxRetries: 3
);
$pdo = AuroraDsql::connect($config);

// Read
$stmt = $pdo->query('SELECT 1 AS result');
$row = $stmt->fetch(PDO::FETCH_ASSOC);
echo "Connected: {$row['result']}\n";

// Transactional write with automatic OCC retry
$id = $pdo->transaction(function (PDO $conn): string {
    $stmt = $conn->prepare('INSERT INTO users (name) VALUES (?) RETURNING id');
    $stmt->execute(['Alice']);
    return $stmt->fetchColumn();
});
```

### Format der Verbindungszeichenfolge
<a name="SECTION_program-with-dsql-connector-for-php-pdo-pgsql-connection-string"></a>

Für einfache Skripten oder wenn Sie die Syntax von Verbindungszeichenfolgen bevorzugen, unterstützt `postgres://` der Konnektor `postgresql://` Verbindungszeichenfolgen mit Aurora DSQL-spezifischen Abfrageparametern:

```
$pdo = AuroraDsql::connectFromDsn(
    'postgres://admin@your-cluster.dsql.us-east-1.on.aws/postgres?region=us-east-1'
);
```

Unterstützte Abfrageparameter:`region`,,,`profile`. `tokenDurationSecs` `ormPrefix`

### OCC-Wiederholung
<a name="SECTION_program-with-dsql-connector-for-php-pdo-pgsql-occ-retry"></a>

Aurora DSQL verwendet Optimistic Concurrency Control (OCC). Wenn zwei Transaktionen dieselben Daten ändern, gewinnt die erste Transaktion, die einen Commit durchführt, und die zweite erhält einen OCC-Fehler.

Die OCC-Wiederholung ist optional. `occMaxRetries`In der Konfiguration so eingestellt, dass automatische Wiederholungen mit exponentiellem Backoff und Jitter aktiviert werden:

```
$config = new DsqlConfig(
    host: 'your-cluster.dsql.us-east-1.on.aws',
    occMaxRetries: 3
);
$pdo = AuroraDsql::connect($config);

// Single statements are automatically retried via exec()
$pdo->exec("CREATE INDEX ASYNC ON users (email)");

// Multi-statement transactions are retried via transaction()
$pdo->transaction(function (PDO $conn) {
    $conn->exec("UPDATE accounts SET balance = balance - 100 WHERE id = 1");
    $conn->exec("UPDATE accounts SET balance = balance + 100 WHERE id = 2");
});
```

**Wichtig**  
`transaction()`verwaltet//intern. `beginTransaction()` `commit()` `rollBack()` Ihr Rückruf sollte nur Datenbankoperationen enthalten und es sollte sicher sein, es erneut zu versuchen.

## Konfigurationsoptionen
<a name="SECTION_program-with-dsql-connector-for-php-pdo-pgsql-configuration"></a>

Der Konnektor akzeptiert `postgres://` auch `postgresql://` Verbindungszeichenfolgen mit Abfrageparametern für die Konfiguration. Unterstützte Abfrageparameter: `region``profile`,`tokenDurationSecs`, und`ormPrefix`.


| Feld | Typ | Standard | Description | 
| --- | --- | --- | --- | 
| host | string | (erforderlich) | Cluster-Endpunkt oder Cluster-ID mit 26 Zeichen | 
| region | ?string | null(automatisch erkannt) | AWS Region; erforderlich, wenn host es sich um eine Cluster-ID handelt | 
| user | string | "admin" | Datenbankbenutzer | 
| database | string | "postgres" | Datenbankname | 
| port | int | 5432 | Datenbankport | 
| profile | ?string | null | AWS Profilname für Anmeldeinformationen | 
| credentialsProvider | ?\$1Closure | null | Anbieter AWS für benutzerdefinierte Anmeldeinformationen | 
| tokenDurationSecs | int | 900(15 Minuten) | Gültigkeitsdauer des Tokens in Sekunden | 
| occMaxRetries | ?int | null(deaktiviert) | Standardmäßige maximale OCC-Wiederholungsversuche für und exec() transaction() | 
| ormPrefix | ?string | null | ORM-Präfix wird vorangestellt application\$1name | 
| logger | ?LoggerInterface | null | PSR-3-Logger für Wiederholungswarnungen und Diagnosen | 

## Authentifizierung
<a name="SECTION_program-with-dsql-connector-for-php-pdo-pgsql-auth"></a>

Der Connector verarbeitet automatisch die Aurora-DSQL-Authentifizierung, indem er mithilfe von AWS Anmeldeinformationen Token generiert. Wenn Sie die AWS Region nicht angeben, analysiert der Connector sie anhand des Hostnamens.

Weitere Informationen zur Authentifizierung in Aurora DSQL finden Sie unter[Authentifizierung und Autorisierung für Aurora DSQL](authentication-authorization.md).

### Admin im Vergleich zu normalen Benutzern
<a name="SECTION_program-with-dsql-connector-for-php-pdo-pgsql-admin-vs-regular"></a>
+ Benutzer mit dem Namen „admin“ verwenden automatisch Admin-Authentifizierungstoken
+ Alle anderen Benutzer verwenden reguläre Authentifizierungstoken
+ Der Connector generiert dynamisch Token für jede Verbindung