PHP code example of aik27 / drom-client

1. Go to this page and download the library: Download aik27/drom-client library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

aik27 / drom-client example snippets


use aik27\DromClient\Client;
use aik27\DromClient\Config;
use aik27\DromClient\Scenario;
use aik27\DromClient\Http\GuzzleClient;
use aik27\DromClient\Validators\JsonValidator;

try {

    /* 
     * Конфигурирование клиента под условия тестового задания.
     */

    $config = new Config([
    
        /* 
         * Список целевых адресов.
         * В данном случае, для сервиса комментариев.
         */
         
        'urlGetAll' => 'http://example.com/comments',
        'urlCreate' => 'http://example.com/comment',
        'urlUpdate' => 'http://example.com/comment/{id}',
        
        /* 
         * Внедрение зависимостей.
         * Для HTTP клиента реализованы взаимозаменяемые адаптеры GuzzleClient() и SymfonyClient()
         * Для валидации ответа сервера JsonValidator() и XmlValidator()
         * Использование валидатора ответа не является обязательным.
         */

        'httpClient' => new GuzzleClient(),
        'validator' => new JsonValidator(),
        
        /* 
         * Сценарии валидации данных на стороне клиента перед отправкой.
         * Реализуются через экземпляры класса Scenario. 
         * Использование сценариев не является обязательным.
         * 
         * Доступные типы параметров валидации:
         * 
         *  type - int|string - проверка типа значения [обязательный]
         *  ь путём отправки PUT запроса на urlUpdate.
     * Принимает обязательный аргумент (object) $data. 
     * Конкретные поля должны быть свойствами объекта.
     * Можно указать только нужные поля.
     */
    
    $client->update((object)[
        'id' => 42,
        'text' => 'New text',
    ]);
} catch (\Exception $e) {
    echo $e->getMessage();
}