alexandret / evc-bundle
Symfony应用程序中EVC API的集成
1.3.2
2020-05-14 13:21 UTC
Requires
- php: ^7.2
- ext-json: *
- mashape/unirest-php: ^3.0
- symfony/config: ^3.4|^4.3|^5.0
- symfony/dependency-injection: ^3.4|^4.3|^5.0
- symfony/flex: ^1.6
- symfony/http-kernel: ^3.4|^4.3|^5.0
- symfony/yaml: ^3.4|^4.3|^5.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- phpmd/phpmd: ^2.8
- phpunit/phpunit: ^8.5.4
- squizlabs/php_codesniffer: ^3.5
- symfony/debug: ^3.4|^4.3|^5.0
README
此symfony扩展包实现了使用evc.de API的服务。
安装
请确保全局已安装Composer,具体请参考Composer文档中的安装章节。
使用Symfony Flex的应用程序
打开命令行,进入您的symfony项目目录,然后执行
$ composer require alexandret/evc-bundle
打开env(或env.dist)文件,搜索新创建的行以配置变量
###> alexandret/evc-bundle ###
EVC_API = ''
EVC_USERNAME = ''
EVC_PASSWORD = ''
###< alexandret/evc-bundle ###
有关更多解释,请参阅配置部分。
不使用Symfony Flex的应用程序
第1步:下载扩展包
打开命令行,进入您的项目目录,并执行以下命令以下载此扩展包的最新稳定版本
$ composer require alexandret/evc-bundle
第2步:启用扩展包
然后,通过将其添加到项目config/bundles.php
文件中注册的扩展包列表中来启用扩展包
// config/bundles.php return [ // ... Alexandre\EvcBundle\AlexandreEvcBundle::class => ['all' => true], ];
打开您的env
文件,并添加必要的配置变量的值
第3步:创建一个alexandre_evc.yaml文件
在config/packages子目录下创建一个alexandre_evc.yaml
文件。然后复制并粘贴以下行
#config/packages/alexandre_evc.yaml alexandre_evc: api_id: '%env(EVC_API)%' username: '%env(EVC_USERNAME)%' password: '%env(EVC_PASSWORD)%'
不要用密码替换env。您必须按照以下段落中的说明配置您的.env
文件。
配置
EvcBundle需要数据信息。您应在您的env文件中填写这些信息。
- EVC_API:由EVC支持提供的API密钥
- EVC_USERNAME:您的evc.de账户号码
- EVC_PASSWORD:您的API密码。这不是您的evc.de账户密码。这是一个从EVC办公室获得的单独密码。
以下是一个示例
###> alexandret/evc-bundle ### EVC_API = sample_key EVC_USERNAME = my_name EVC_PASSWORD = my_password ###< alexandret/evc-bundle ###
如何模拟对API的请求?
您想使用模拟的客户测试您的应用程序,并避免向真实的evc.de API发送数据?默认情况下,我们的扩展包创建了一个使用内嵌Unirest/Request的请求者服务。在您的config/package/dev
存储库中,在service.yaml
文件末尾添加新行。(如果没有文件,请毫不犹豫地创建一个新的service.yaml
文件。如果您使用flex安装此扩展包,这已经完成了!:)
# config/packages/dev/service.yaml # config/packages/test/service.yaml services: alexandre_evc_request: class: Alexandre\EvcBundle\Service\EmulationService arguments: $api: '%env(EVC_API)%' $username: '%env(EVC_USERNAME)%' $password: '%env(EVC_PASSWORD)%'
开发环境将使用EmulationService
而不是调用RequesterService
。
有四个声明的客户。
11111
是不存在客户的标识符。当您想使用不存在的客户测试应用程序时使用它。22222
客户存在,但他不是您的经销商的个人用户。当您想使用非个人客户测试应用程序时使用它。33333
客户存在,并且他是一位有42个信用点的个人用户。44444
也是一个个人客户。他也有42个信用点。55555
每次您调用55555客户时,模拟服务都会抛出NetworkException
来测试您的应用程序,就像evc API不可达一样。66666
每次您调用66666客户时,模拟服务都会抛出CredentialException
来测试您的应用程序,当您的配置错误时。77777
每次您调用77777客户时,模拟服务都会抛出LogicException
。我们认为这没有用,但如果您想测试。如果在API更改或响应被截断时,可能会抛出一个逻辑异常。
异常
NetworkException
:如果evc.de不可达,则会抛出网络异常。CredentialException
:当您对evc.de凭据进行错误配置时,会抛出凭据异常。LogicException
:当evc.de返回非预期响应时抛出逻辑异常。这可能是由于此包存在错误,或者API发生了变更。EvcException
:前三个异常继承自EvcException
。