Trieda `BulkGate\Sms\BulkMessage` reprezentuje objekt, ktorý spája správy typu [`BulkGate\Sms\Message`](https://www.bulkgate.com/sk/dokumentacia/php-sdk/php-sdk-sprava/2.0/) do hromadnej správy (kampane).

```php
use BulkGate\Sms\BulkMessage;
```

Konštruktor má jeden nepovinný parameter typu [`array`](http://php.net/manual/en/language.types.array.php), ktorý musí obsahovať položky typu [`BulkGate\Sms\Message`](https://www.bulkgate.com/sk/dokumentacia/php-sdk/php-sdk-sprava/2.0/).

```php
$array = [
    new BulkGate\Sms\Message("420777777777", "test1"),
    new BulkGate\Sms\Message("420777777778", "test2"),
    new BulkGate\Sms\Message("420777777779", "test3"),
    new BulkGate\Sms\Message("420777777780", "test4"),
];

$bulk_message = new BulkMessage($array);
```

Správy môžete pridávať aj po jednej:

```php
$message = new BulkGate\Sms\Message(
    new BulkGate\Sms\Message\PhoneNumber("777777781", BulkGate\Sms\Country::CZECH_REPUBLIC),
    new BulkGate\Sms\Message\Text("test<number>", [
        'number' => '5'
    ])
);

/** @var BulkGate\Sms\BulkMessage $bulk_message */
$bulk_message->addMessage($message);
```

## Iterátor

Správami môžete prechádzať pomocou cyklu [`foreach`](http://php.net/manual/en/control-structures.foreach.php)

```php
/** 
 * @var BulkGate\Sms\BulkMessage $bulk_message 
 * @var BulkGate\Sms\Message $message
 */
foreach($bulk_message as $message)
{
    echo $message;
}
```

Počet správ zistíme metódou `count()`

```php
/** @var BulkGate\Sms\BulkMessage $bulk_message */
$bulk_message->count();
```

## Podpora JSON

Objekt `BulkGate\Sms\BulkMessage` implementuje rozhranie [`\JsonSerializable`](http://php.net/manual/en/class.jsonserializable.php), vďaka ktorému ho môžete previesť pomocou funkcie [`json_encode()`](http://php.net/manual/en/function.json-encode.php) do formátu JSON.

```php
/** @var BulkGate\Sms\BulkMessage $bulk_message */
echo json_encode($bulk_message);
```

Výstupom je:

```json
[
  {
    "number": {
      "number": "420777777777",
      "iso": null
    },
    "text": "test1",
    "status": "preparation",
    "price": 0.0,
    "credit": 0.0,
    "id": null,
    "scheduled": null
  },
  {
    "number": {
      "number": "420777777778",
      "iso": null
    },
    "text": "test2",
    "status": "preparation",
    "price": 0.0,
    "credit": 0.0,
    "id": null,
    "scheduled": null
  },
  {
    "number": {
      "number": "420777777779",
      "iso": null
    },
    "text": "test3",
    "status": "preparation",
    "price": 0.0,
    "credit": 0.0,
    "id": null,
    "scheduled": null
  },
  {
    "number": {
      "number": "420777777780",
      "iso": null
    },
    "text": "test4",
    "status": "preparation",
    "price": 0.0,
    "credit": 0.0,
    "id": null,
    "scheduled": null
  },
  {
    "number": {
      "number": "777777781",
      "iso": "cz"
    },
    "text": "test5",
    "status": "preparation",
    "price": 0.0,
    "credit": 0.0,
    "id": null,
    "scheduled": null
  }
]
```

## Prevod na reťazec

Objekt `BulkGate\Sms\BulkMessage` implementuje magickú metódu [`__string()`](http://php.net/manual/en/language.oop5.magic.php#object.tostring).

```php
/** @var BulkGate\Sms\BulkMessage $bulk_message */
$message = (string) $bulk_message; // do premennej
echo $bulk_message; // na výstup
```

Výstupom je:
```
420777777777: test1
420777777778: test2
420777777779: test3
420777777780: test4
777777781: test5
```

## Prevod na pole 

```php
/** @var BulkGate\Sms\BulkMessage $bulk_message */
$array = $message->toArray();
```
