Skip to content

Conversation

@TeBoring
Copy link
Contributor

@TeBoring TeBoring commented Nov 20, 2019

Previously, when creating a message, all messages defined in the same proto file and transitive proto files need to be resolved by php engine, even though some of them are not needed.
This change lazily resolve php classes of proto messages, so that they are only needed if the actual message is created.

@TeBoring TeBoring changed the title Implement lazy loading of php class for proto messages [WIP] Implement lazy loading of php class for proto messages Nov 20, 2019
return;
}

// Ensure layout exists. We may be invoked to create handlers for a given
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand why we can remove this

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has been done in register_class

bool use_nested_submsg TSRMLS_DC);
void init_generated_pool_once(TSRMLS_D);
void add_handlers_for_message(const void* closure, upb_handlers* h);
void register_class(void *desc, bool is_enum TSRMLS_DC);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So is register_class a function that already existed before this PR?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It existed as a static method in def.c.
In this change, I refactored a little to make it easy to use.

@TeBoring TeBoring merged commit 6d7bb7e into protocolbuffers:master Nov 21, 2019
rafi-kamal pushed a commit to rafi-kamal/protobuf that referenced this pull request Nov 21, 2019
…rs#6911)

* Implement lazy loading of php class for proto messages

* Fix php 7.1

* Fix encode

* Fix memory leak

* Fix enum descriptor
rafi-kamal added a commit that referenced this pull request Nov 22, 2019
* Implement lazy loading of php class for proto messages

* Fix php 7.1

* Fix encode

* Fix memory leak

* Fix enum descriptor
nlhien pushed a commit to nlhien/protobuf that referenced this pull request Feb 28, 2020
…rs#6911)

* Implement lazy loading of php class for proto messages

* Fix php 7.1

* Fix encode

* Fix memory leak

* Fix enum descriptor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants