Я хочу создать клиент grpc с скомпилированными классами .proto, которые я сгенерировал.Теперь у меня проблема в том, что при попытке запустить сервер разработки я получаю сообщение об ошибке:
В строке FileLoader.php 168:
Ожидаемый класс автозагрузчика "Приложение\ Proto_compiled \ GPBMetadata \ Proto \ RezeptVerwalten \ Gericht ", который должен быть определен в файле" /home/denniskruk/PhpstormProjects/Rezepte/front/vendor/composer/../../src/Proto_compiled/GPBMetadata/ich/wich.tw.PHP».Файл был найден, но класса в нем не было, имя класса или пространство имен, вероятно, содержит опечатку в /home/denniskruk/PhpstormProjects/Rezepte/front/config/services.yaml (загружается в ресурс "/ home / denniskruk /PhpstormProjects / Rezepte / передний / конфигурации / services.yaml ").
В строке DebugClassLoader.php 200:
Ожидаемый класс автозагрузчика "App \ Proto_compiled \ GPBMetadata \ Proto \ RezeptVerwalten \ Gericht" должен быть определен в файле "/ home / denniskruk / PhpstormProjects / Rezepte/front/vendor/composer/../../src/Proto_compiled/GPBMetadata/Proto/RezeptVerwalten/Gericht.php».Файл был найден, но класса в нем нет, возможно, имя класса или пространство имен содержит опечатку.
Когда я смотрю на класс Gericht.php
, он показывает опечатку в пространстве имен и имя класса.
Я уже пытался изменить пространство имен, чтобы исправить опечатку, но это не помогло.
Я пытался найти орфографическую ошибку, но не нашел ее.
Я не знаю, что еще могло вызвать проблему.
По какой-то причине каждый сгенерированный класс имееттот же вопрос.
Это класс "Gericht"
<?php
namespace GPBMetadata\Proto\RezeptVerwalten;
class Gericht
{
public static $is_initialized = false;
public static function initOnce() {
$pool = \Google\Protobuf\Internal\DescriptorPool::getGeneratedPool();
if (static::$is_initialized == true) {
return;
}
\GPBMetadata\Proto\RezeptVerwalten\Messages::initOnce();
$pool->internalAddGeneratedFile(hex2bin(
"0acf020a2470726f746f2f72657a6570745f76657277616c74656e2f6765" .
"72696368742e70726f746f121072657a6570745f76657277616c74656e22" .
"5b0a074765726963687412260a02696418012001280b321a2e72657a6570" .
"745f76657277616c74656e2e52657a657074494412280a077a7574617465" .
"6e18022003280b32172e72657a6570745f76657277616c74656e2e5a7574" .
"617432af010a0f476572696368745f53657276696365124b0a155365745a" .
"75746174656e467565724765726963687412192e72657a6570745f766572" .
"77616c74656e2e476572696368741a172e72657a6570745f76657277616c" .
"74656e2e456d707479124f0a164765745a75746174656e4675657252657a" .
"6570744944121a2e72657a6570745f76657277616c74656e2e52657a6570" .
"7449441a172e72657a6570745f76657277616c74656e2e5a757461743001" .
"620670726f746f33"
));
static::$is_initialized = true;
}
}
Это services.yaml
parameters:
locale: 'en'
services:
_defaults:
autowire: true
autoconfigure: true
public: false
# makes classes in src/ available to be used as services
# this creates a service per class whose id is the fully-qualified class name
App\:
resource: '../src/*'
exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'
# controllers are imported separately to make sure services can be injected
# as action arguments even if you don't extend any base controller class
App\Controller\:
resource: '../src/Controller'
tags: ['controller.service_arguments']