This looks similar to this issue 
<https://github.com/protocolbuffers/protobuf/issues/6219>. Did you set up 
protobuf 
autoloading 
<https://github.com/protocolbuffers/protobuf/blob/main/php/composer.json#L17>
 correctly?

On Monday, March 28, 2022 at 4:00:20 AM UTC-7 [email protected] wrote:

> I'm sorry the autoloading is of course
> ```
> "psr-0": {
>      "Famly\\Queue": "Packages/Application/Famly.Queue/Classes"
> }
> ```
>
> On Monday, 28 March 2022 at 12:58:28 UTC+2 Jakob Merrild wrote:
>
>> I'm trying to use the google/protobuf package for php, but am running 
>> into an issue that I don't understand. When trying to construct an instance 
>> of the generated class I'm met with the following exception
>>
>> InvalidArgumentException: Famly\Queue\Model\Proto\ExportRequest is not 
>> found in descriptor pool. Only generated classes may derive from Message.
>>
>> I have added the following to `composer.json`
>>
>> ```
>> "require":  {
>>        ...,
>>         "google/protobuf": "^3.19"
>> }.
>> "psr-0": {
>>      "Famly\\Queue": "Packages/Application/Famly/Queue"
>> }
>> ````
>>
>> I'm using `protoc` version 3.19.4 and generated the the files with 
>> protoc --proto_path="famlyqueue/src/main/protobuf" 
>> --php_out="core/Packages/Application/Famly.Queue/Classes" 
>> famlyqueue/src/main/protobuf/co/famly/export/ExportRequest.proto
>>
>> Here's the `proto` file
>>
>> ```
>> syntax = "proto3";
>>
>> package co.famly.export.proto;
>> option php_namespace = "Famly/Queue/Model/Proto";
>> option php_metadata_namespace = "Famly/Queue/Model/Proto/Meta";
>>
>> message ExportRequest {
>>     // The ID of the entity to export
>>     string entityId = 1;
>>     // The type of the entity to export
>>     ExportEntityType entityType = 2;
>> }
>>
>> enum ExportEntityType {
>>     BILL_PAYER = 0;
>>     BILL_PAYER_INVOICES = 1;
>>     CHILD = 2;
>>     LOGIN = 3;
>>     LOGIN_POST_MEDIA = 4;
>>     SITE = 5;
>>     SITE_MEDIA = 6;
>> }
>> ```
>>
>> And the test where I'm trying to construct the class instance (simply 
>> roundtrip test)
>> ```
>> <?php
>> namespace Famly\Queue\Model\Proto;
>>
>> use Neos\Flow\Tests\UnitTestCase;
>> use Neos\Flow\Utility\Algorithms;
>>
>> class ExportRequestTest extends UnitTestCase {
>> /**
>> * @test
>> */
>> public function canRoundtripSerialization() {
>> $from = new ExportRequest();
>> $entityId = Algorithms::generateUUID();
>> $from->setEntityId($entityId);
>> $from->setEntityType(ExportEntityType::SITE);
>>
>> $serialized = $from->serializeToString();
>>
>> $to = new ExportRequest();
>> $to->mergeFromString($serialized);
>>
>> $this->assertEquals($to->getEntityId(), $entityId);
>> $this->assertEquals($to->getEntityType(), ExportEntityType::SITE);
>> }
>> }
>> ```
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/protobuf/5e1c55b6-9cdf-4acd-acc8-faadfc84bd47n%40googlegroups.com.

Reply via email to