В настоящее время я работаю над 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