andrew-gos/double-gis

2Gis Api的高级严格类型库

1.1.1 2024-07-16 15:34 UTC

This package is auto-updated.

Last update: 2024-09-16 16:00:29 UTC


README

版本 1.1.1

概览

此库旨在通过利用严格的类型和其它改进来简化使用2Gis的应用程序开发。
它允许开发者通过以清晰和结构化的方式定义各种更新的处理器来创建高度模块化和易于维护的机器人。

联系方式

如果您收到错误或有想法,请发邮件至 Gostev71@outlook.com,并在邮件主题中输入 2Gis Library Bug2Gis Library Idea

特性

  • 严格类型:确保类型安全,并提供更好的代码补全,减少运行时错误的可能性。
  • 易于使用:设计时考虑了简洁性,让您可以专注于机器人的功能,而不是样板代码。

安装

要安装库,请使用Composer

composer require andrew-gos/double-gis

使用方法

  1. 获取库实例
    <?php
    
    use AndrewGos\DoubleGis\DoubleGisFactory;
    use AndrewGos\DoubleGis\ValueObject\AuthToken;
    
    $doubleGis = DoubleGisFactory::getDefault(new AuthToken('123456-7890-abcd-ef12-34567890abcd'));
  2. 获取API
    <?php
    
    use AndrewGos\DoubleGis\DoubleGisFactory;
    use AndrewGos\DoubleGis\ValueObject\AuthToken;
    
    $doubleGis = DoubleGisFactory::getDefault(new AuthToken('123456-7890-abcd-ef12-34567890abcd'));
    $api = $doubleGis->getApi();
  3. 使用API
    <?php
    
    use AndrewGos\DoubleGis\DoubleGisFactory;
    use AndrewGos\DoubleGis\ValueObject\AuthToken;
    use AndrewGos\DoubleGis\Request\RegionGetRequest;
    use AndrewGos\DoubleGis\Entity\Region;
    
    $doubleGis = DoubleGisFactory::getDefault(new AuthToken('123456-7890-abcd-ef12-34567890abcd'));
    $api = $doubleGis->getApi();
    $regionResponse = $api->regionGet(new RegionGetRequest('1'));
    /** @var Region[] $regions */
    $regions = $regionResponse->getResult()?->getItems();
  4. 指定库的日志记录器
    <?php
    
    use AndrewGos\DoubleGis\DoubleGisFactory;
    use AndrewGos\DoubleGis\ValueObject\AuthToken;
    
    $doubleGis = DoubleGisFactory::getDefault(new AuthToken('123456-7890-abcd-ef12-34567890abcd'));
    $doubleGis->setLogger(new MyLogger());

在Symfony中作为服务使用

如果您使用Symfony,并希望像服务一样创建DoubleGis对象,请输入

# services.yaml
services:
  andrew-gos.double-gis.token:
     class: AndrewGos\DoubleGis\ValueObject\AuthToken
     arguments:
        $token: '%env(YOUR_TOKEN_ENV_PARAM)%'
        # Or if you don`t use .env
        # $token: 'YOUR_TOKEN'

  AndrewGos\DoubleGis\DoubleGis:
     factory: ['AndrewGos\DoubleGis\DoubleGisFactory', 'getDefault']
     arguments:
        $token: '@andrew-gos.double-gis.token'

     # If you want to set custom loggers
     calls:
        - setLogger: ['@logger']

在Yii2中使用

如果您使用Yii2,可以使用此库与Yii2 DI一起使用

// IN main.php OR web.php
// your config:
[
    'container' => [
        'definitions' => [
            \AndrewGos\DoubleGis\DoubleGis::class => function () {
                return \AndrewGos\DoubleGis\DoubleGisFactory::getDefault(
                    new \AndrewGos\DoubleGis\ValueObject\AuthToken('YOUR_TOKEN');
                ),
            },
        ],
    ],
];