## Composer

Nejsnadnější cestou, jak nainstalovat [bulkgate/php-sdk](https://packagist.org/packages/bulkgate/php-sdk) do projektu, je pomocí nástroje [Composer](https://getcomposer.org/) přes příkazovou řádku.

```
composer require bulkgate/php-sdk
```

## Nette DI Extension   

K instalaci SDK můžete také použít kontejner DI.

```yaml
extensions:
	sdk: BulkGate\Sdk\DI\Extension

sdk:
	application_id: 451
	application_token: NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj
	sender:
		tag: 'sdk' # Optional
		default_country: cz # Optional
	configurator:
		sms: # Optional
			sender_id: gText
			sender_id_value: 'Example'
			unicode: true
		viber: # Optional
			sender: Sender
			button:
				caption: 'Button Caption'
				url: 'https://www.bulkgate.com/'
			image: 
				url: 'https://www.example.com/example.png'
				zoom: true
			expiration: 3600 # seconds
```

```php

use BulkGate\Sdk\Sender;
use BulkGate\Sdk\Message\Sms;

class Sdk
{
    private Sender $sender;

    public function __construct(Sender $sender)
    {
        $this->sender = $sender;
    }
    

    public function sendMessage(string $phone_number, string $text): void
    {    
        $this->sender->send(new Sms($phone_number, $text));
    }
}

```

Ve výchozím nastavení stačí `application_id` a `application_token`; ostatní
volby mají výchozí hodnoty. Navíc lze nastavit:

| Volba | Výchozí hodnota | Význam |
|:--|:--|:--|
| `application_product` | `nette` | Identifikace produktu v požadavcích |
| `connection.api` | `https://portal.bulkgate.com/api/1.0/integration` | Adresa API |
| `connection.content_type` | `application/json` | Typ obsahu požadavku |
| `configurator.sms.country` | — | Routy po zemích; s ní se místo `SmsConfigurator` použije `SmsCountryConfigurator` |

```yaml
sdk:
	configurator:
		sms:
			country:
				cz:
					gate: gGate2
					sender: 'BulkGate'
```

U Viberu je `sender` povinný, stejně jako `button.url` a `image.url`, pokud
příslušnou sekci uvedete.

Kromě senderu registruje rozšíření i služby
[`BulkGate\Sdk\NumberChecker` a `BulkGate\Sdk\CreditChecker`](https://www.bulkgate.com/cs/dokumentace/php-sdk/php-sdk-kontrola-cisla/2.0/),
takže si je můžete nechat předat konstruktorem.

### Manuální vytvoření

```php
use BulkGate\Sdk\Connection\ConnectionStream;
use BulkGate\Sdk\MessageSender;
use BulkGate\Sdk\Message\Sms;

$connection = new ConnectionStream(
    /*application_id: */ 451, 
    /*application_token:*/ 'NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj'
);

$sender = new MessageSender($connection);

$sender->send(new Sms($phone_number, $text));

/* Optional */

$sender->setTag('sdk');

$sender->setDefaultCountry('cz');

$viber_configurator = new ViberConfigurator('Sender');
$viber_configurator->button('Button Caption', 'https://www.bulkgate.com/');
$viber_configurator->image('https://www.example.com/example.png', true);
$viber_configurator->expiration(3_600);

$sender->addSenderConfigurator($viber_configurator);

$sms_configurator = new SmsConfigurator('gText', 'Example', true);

$sender->addSenderConfigurator($sms_configurator);

$sender->send(new Sms($phone_number, $text));
```

