

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Configurazione dei client di servizio nel codice per la AWS SDK per PHP versione 3
<a name="configuring-service-clients-code"></a>

In alternativa o in aggiunta alla configurazione [esterna dei client di servizio, è possibile configurarli a livello di codice a livello](configuring-service-clients-ext.md) di codice.

Configurando i client di servizio in codice, acquisisci un controllo approfondito delle numerose opzioni a tua disposizione. La maggior parte delle configurazioni che è possibile impostare esternamente possono essere impostate anche nel codice.

## Configurazione di base in codice
<a name="conf-service-client-code-basic"></a>

È possibile creare e configurare un client di servizio in codice passando un array associativo di opzioni al costruttore di un client. Nell'esempio seguente, l'array associativo contiene solo l'opzione «region» utilizzata dal client:

```
require 'vendor/autoload.php';

use Aws\S3\S3Client;
use Aws\Exception\AwsException;

//Create an S3Client
$s3 = new S3Client([
    'region' => 'eu-south-2'
]);
```

Le informazioni sul parametro opzionale «version» sono disponibili nell'argomento delle [opzioni di configurazione](guide_configuration.md#cfg-version).

Si noti che **non abbiamo** esplicitamente fornito le credenziali al client. Questo perché l'SDK utilizza la [catena di provider di credenziali predefinita per cercare informazioni](guide_credentials_default_chain.md) sulle credenziali.

Tutte le opzioni generali di configurazione del client sono descritte in dettaglio in. [Opzioni del costruttore del client per la AWS SDK per PHP versione 3](guide_configuration.md) La gamma di opzioni fornite a un client può variare in base a quale client si sta creando. Queste opzioni personalizzate per la configurazione del client sono descritte nella [documentazione API](https://docs.aws.amazon.com/aws-sdk-php/latest/) per ogni client.

## Utilizzo della `Sdk` classe
<a name="sdk-class"></a>

La classe `Aws\Sdk` agisce come un client factory e viene utilizzata per gestire le opzioni di configurazione condivise da più client. Molte delle opzioni che possono essere fornite a un costruttore client specifico possono essere fornite anche alla `Aws\Sdk` classe. Queste opzioni vengono poi applicate a ciascun costruttore di client.

 **Importazioni** 

```
require 'vendor/autoload.php';

use Aws\S3\S3Client;
use Aws\Exception\AwsException;
```

 **Codice di esempio** 

```
// The same options that can be provided to a specific client constructor can also be supplied to the Aws\Sdk class.
// Use the us-west-2 region and latest version of each client.
$sharedConfig = [
    'region' => 'us-west-2'
];
// Create an SDK class used to share configuration across clients.
$sdk = new Aws\Sdk($sharedConfig);
// Create an Amazon S3 client using the shared configuration data.
$client = $sdk->createS3();
```

Le opzioni che sono condivise per tutti i client sono collocate in coppie chiave-valore a livello radice. I dati di configurazione specifici del servizio possono essere forniti in un array associativo con una chiave uguale allo spazio dei nomi di un servizio (ad esempio, «S3", «», ecc.). DynamoDb

```
$sdk = new Aws\Sdk([
    'region'   => 'us-west-2',
    'DynamoDb' => [
        'region' => 'eu-central-1'
    ]
]);

// Creating an Amazon DynamoDb client will use the "eu-central-1" AWS Region.
$client = $sdk->createDynamoDb();
```

I valori di configurazione specifici del servizio sono una combinazione di valori specifici del servizio e di valori a livello radice (ad esempio, i valori specifici del servizio sono clonati in valori di livello radice).

**Nota**  
È consigliabile utilizzare la classe `Sdk` per creare client se nell'applicazione si utilizzano più istanze client. La classe `Sdk` utilizza automaticamente lo stesso client HTTP per ogni client SDK, consentendo a client SDK per servizi diversi di eseguire richieste HTTP senza blocchi. Se i client SDK non utilizzano lo stesso client HTTP, le richieste HTTP inviate dal client SDK potrebbero bloccare l'orchestrazione della promessa tra i servizi.