首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决加载类"MockStorageStrategy“的错误?

如何解决加载类"MockStorageStrategy“的错误?
EN

Stack Overflow用户
提问于 2022-03-24 13:12:11
回答 1查看 76关注 0票数 -1

我被一个我无法解决的错误困住了,我需要帮助。

尝试从命名空间“MangoPay\Test\Mocks”加载类"MockStorageStrategy“。您忘了另一个名称空间的"use“语句了吗?

我的代码:

代码语言:javascript
复制
<?php

namespace App\Service;

use Symfony\Contracts\HttpClient\HttpClientInterface;
use App\Entity\User;
use MangoPay;
use MangoPay\Tests\Mocks\MockStorageStrategy;

class CallApiService
{
    private $mangoPayApi;
    private $client;

    public function __construct(HttpClientInterface $httpClient)
    {
        $this->client = $httpClient;
        $this->mangoPayApi = new MangoPay\MangoPayApi();
        $this->mangoPayApi->Config->ClientId = $_ENV['CLIENT_ID'];
        $this->mangoPayApi->Config->ClientPassword = $_ENV['API_KEY'];
        // $this->mangoPayApi->Config->TemporaryFolder = '/some/path/';
        $this->mangoPayApi->OAuthTokenManager->RegisterCustomStorageStrategy(new MockStorageStrategy());
        //$this->mangoPayApi->Config->BaseUrl = 'https://api.sandbox.mangopay.com';
    }

    public function createProfilMango($form)
    {
        $userMango = $this->client->request(
            'POST',
            'https://api.sandbox.mangopay.com/v2.01/' . '%env(CLIENT_ID)%' . '/users/natural',
            [
                $UserNatural = new MangoPay\UserNatural(),
                $UserNatural->FirstName = $form['firstname']->getData(),
                $UserNatural->LastName = $form['lastname']->getData(),
                $UserNatural->Email = $form['email']->getData(),
                $UserNatural->Address = new \MangoPay\Address(),
                $UserNatural->Address->AddressLine1 = $form['streetNumber']->getData() . $form['address']->getData(),
                $UserNatural->Address->AddressLine2 = "",
                $UserNatural->Address->City = $form['city']->getData(),
                $UserNatural->Address->Region = "",
                $UserNatural->Address->PostalCode = $form['zipCode']->getData(),
                $UserNatural->Address->Country = "FR",
                $UserNatural->Birthday = $form['birthday']->getData(),
                $UserNatural->Nationality = $form['nationality']->getData(),
                $UserNatural->CountryOfResidence = "FR",
                $Result = $this->mangoPayApi->Users->Create($UserNatural),
            ]
        );

        return $userMango;
    }
}

已经检查了命名空间,并且它是正确的,关于http-client和mangopay/php-sdk-v2已经安装的依赖项。

EN

回答 1

Stack Overflow用户

发布于 2022-03-24 14:28:30

使用来自Test命名空间的类有时不会添加到自动加载程序中--因为您不应该在应用程序中使用它们。查看该包的composer.json如下所示:命名空间MangoPay被路由到文件夹MangoPay (请参阅autoload ),而您想要使用的类存储在另一个文件夹中,并且只通过autoload-dev加载。如果您仅在自己的应用程序中使用此包,则不对此部分进行评估。

如果确实希望使用该类MockStorageStrategy (仅为包的内部测试套件提供,而不是应用程序使用),则应该将其复制到自己的应用程序命名空间中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71603154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档