Скомпилированные файлы grpc имеют опечатку в пространстве имен и имени класса - PullRequest
0 голосов
/ 22 декабря 2018

Я хочу создать клиент 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']
...