Платформа Symfony + API: Ошибка 500 во всех почтовых запросах (появилась внезапно) - PullRequest
1 голос
/ 23 мая 2019

В настоящее время я работаю над API с использованием Symfony и API_Platform.

Все идет отлично (POST-запросы работают), но неожиданно я не могу сделать ни одного POST-запроса (даже используя пакет EasyAdmin).

Я получаю эти журналы:

2019-05-23T13:51:05+00:00 [critical] Class 'GuzzleHttp\Client' not found
[Thu May 23 15:51:05 2019] 127.0.0.1:54351 [500]: /api/authors - Class 'Symfony\Component\BrowserKit\Client' not found in D:\projects\hp-api-2\vendor\symfony\http-kernel\Client.php on line 31
2019-05-23T13:51:05+00:00 [critical] Fatal Error: Class 'Symfony\Component\BrowserKit\Client' not found

Я пытался запросить оба пакета, но это не помогло исправить мои ошибки.

Я создал еще один проект API, работал над ним в течение 2 дней, и та же ошибка снова появилась без причины.

Я совершенно заблудился об этом.

Я использую Wamp для PHP / MySQL. Но я не думаю, что это проблема, так как раньше она работала нормально.

Вот мои зависимости:

"require": {
        "php": "~7.2.3",
        "ext-ctype": "*",
        "ext-iconv": "*",
        "api-platform/api-pack": "^1.2",
        "doctrine/doctrine-migrations-bundle": "^2.0",
        "easycorp/easyadmin-bundle": "^2.1",
        "symfony/apache-pack": "^1.0",
        "symfony/console": "4.2.*",
        "symfony/dotenv": "4.2.*",
        "symfony/flex": "^1.1",
        "symfony/framework-bundle": "4.2.*",
        "symfony/maker-bundle": "^1.11",
        "symfony/yaml": "4.2.*"
    },
    "require-dev": {
        "symfony/profiler-pack": "^1.0",
        "symfony/web-server-bundle": "4.2.*"
    }

Когда мне требуется symfony / browser-kit --dev, я получаю это:

2019-05-23T13:57:34+00:00 [critical] Class 'GuzzleHttp\Client' not found
2019-05-23T13:57:35+00:00 [critical] Uncaught PHP Exception Symfony\Component\Debug\Exception\ClassNotFoundException: "Attempted to load class "Client" from namespace "GuzzleHttp".
Did you forget a "use" statement for e.g. "Symfony\Component\HttpKernel\Client", "Symfony\Component\BrowserKit\Client" or "Symfony\Bundle\FrameworkBundle\Client"?" at D:\projects\hp-api-2\var\cache\dev\ContainerDsBBqcY\getApiPlatform_Doctrine_Listener_HttpCache_PurgeService.php line 13

И если мне требуется guzzlehttp / guzzle --dev я получаю это:

2019-05-23T14:01:32+00:00 [critical] Uncaught PHP Exception Symfony\Component\DependencyInjection\Exception\EnvNotFoundException: "Environment variable not found: "VARNISH_URL"." at D:\projects\hp-api-2\vendor\symfony\dependency-injection\EnvVarProcessor.php line 96

Я вообще не настраивал кеш-систему, это настройки по умолчанию.

Если вам нужна дополнительная информация, не стесняйтесь спрашивать.

Пожалуйста, извините меня за ошибки в английском, если я их допустил.

Спасибо.

Antoine

РЕДАКТИРОВАТЬ: я пытался не использовать wamp для моего php / mysql, и теперь, когда я делаю пост-запрос, у меня появляется какое-то сообщение об ошибке от Symfony (у меня его раньше не было):

Symfony\Component\Debug\Exception\FatalErrorException:
Error: Uncaught Error: Class 'Symfony\Component\BrowserKit\Client' not found in D:\projects\hp-api-2\vendor\symfony\http-kernel\Client.php:31
Stack trace:
#0 D:\projects\hp-api-2\vendor\symfony\debug\FatalErrorHandler\ClassNotFoundFatalErrorHandler.php(174): require_once()
#1 D:\projects\hp-api-2\vendor\symfony\debug\FatalErrorHandler\ClassNotFoundFatalErrorHandler.php(136): Symfony\Component\Debug\FatalErrorHandler\ClassNotFoundFatalErrorHandler->convertFileToClass('D:\\projects\\hp-...', 'D:\\projects\\hp-...', 'Symfony\\Compone...')
#2 D:\projects\hp-api-2\vendor\symfony\debug\FatalErrorHandler\ClassNotFoundFatalErrorHandler.php(118): Symfony\Component\Debug\FatalErrorHandler\ClassNotFoundFatalErrorHandler->findClassInPath('D:\\projects\\hp-...', 'Client', 'Symfony\\Compone...')
#3 D:\projects\hp-api-2\vendor\symfony\debug\FatalErrorHandler\ClassNotFoundFatalErrorHandler.php(62): Symfony\Component\Debug\FatalErrorHandler\ClassNotFoundFatalErrorHandler->getClassCandidates('Client')
#4 D:\projects\hp-api-2\vendor\s

  at vendor/symfony/http-kernel/Client.php:31

РЕДАКТИРОВАТЬ 2: я "исправил" мою проблему, потребовав оба пакета + отключение URL-адресов лака

api_platform:
    version: 0.0.1

    mapping:
        # paths: ['%kernel.project_dir%/src/Entity']
        paths: ['%kernel.project_dir%/config/api_platform/resources'] 

    http_cache:
        invalidation:
            enabled: true
            # varnish_urls: ['%env(VARNISH_URL)%'] ## this problem still needs to be fixed
        max_age: 0
        shared_max_age: 3600
        vary: ['Content-Type', 'Authorization']
        public: true
...