lamoda/atol-client

ATOL API v3/v4/v5 PHP客户端

1.6.3 2023-09-11 11:30 UTC

README

ATOL API v3/v4/v5 PHP客户端

https://online.atol.ru/

Build Status Scrutinizer Code Quality Code Coverage Build Status

安装

使用方法非常简单

  1. 安装库

    composer require lamoda/atol-client
  2. 最好与symfony一起使用此库:https://github.com/lamoda/atol-client-bundle

  3. 但您也可以手动配置它(您可能需要一些工厂类)

    <?php
    
    declare(strict_types=1);
    
    namespace Lamoda\AtolClient\Tests\Helper;
    
    use GuzzleHttp\ClientInterface;
    use JMS\Serializer\Serializer;
    use Lamoda\AtolClient\Converter\ObjectConverter;
    use Lamoda\AtolClient\V3\AtolApi as AtolApiV3;
    use Lamoda\AtolClient\V4\AtolApi as AtolApiV4;
    use Symfony\Component\Validator\Validation;
    use Symfony\Component\Validator\Validator\ValidatorInterface;
    
    final class AtolApiFactory
    {
    	/**
    	 * @deprecated  	
    	 */
    	public static function createV3(
    		ClientInterface $client,
    		array $options,
    		string $baseUrl,
    		string $groupCode
    	): AtolApiV3 {
    		$objectConvertor = new ObjectConverter(
    			self::createSerializer(),
    			self::createValidator()
    		);
    
    		return new AtolApiV3(
    			$objectConvertor,
    			$client,
    			$options,
    			$baseUrl,
    			$groupCode
    		);
    	}
    
    	public static function createV4(
    		ClientInterface $client,
    		array $options,
    		string $baseUrl
    	): AtolApiV4 {
    		$objectConvertor = new ObjectConverter(
    			self::createSerializer(),
    			self::createValidator()
    		);
    
    		return new AtolApiV4(
    			$objectConvertor,
    			$client,
    			$options,
    			$baseUrl
    		);
    	}
    
    	private static function createSerializer(): Serializer
    	{
    		return SerializerBuilder::create()->build();
    	}
    
    	private static function createValidator(): ValidatorInterface
    	{
    		return Validation::createValidatorBuilder()
    			->enableAnnotationMapping()
    			->getValidator();
    	}
    }