but i think, the access levels of its class properties and methods should be changed from private to protected or is there are reason for not doing that?
It would make it easier to subclass it, if you p.e. only want to override one method.
ayhan
added a comment - - edited that's really great news.
but i think, the access levels of its class properties and methods should be changed from private to protected or is there are reason for not doing that?
It would make it easier to subclass it, if you p.e. only want to override one method.
method getMetadataFor is public and probably candidate #1 to get overwritten... but that's only possible to a certain degree as the subclass cannot access the EntityManager.
method getAllMetadata is public, but as the subclass cannot access the initialized property, not really overwrittable.
i might have overlooked something, as i just grabbed the updated version.
ayhan
added a comment - thanks for the quick answer.
examples:
method getMetadataFor is public and probably candidate #1 to get overwritten... but that's only possible to a certain degree as the subclass cannot access the EntityManager.
method getAllMetadata is public, but as the subclass cannot access the initialized property, not really overwrittable.
i might have overlooked something, as i just grabbed the updated version.
Benjamin Eberlei
added a comment - no, the primary method to be overwritten are:
protected function newClassMetadataInstance($className)
protected function getParentClasses($name)
All the other code should not be touched as it handles the caching loading and such.
ayhan
added a comment - - edited for me it's getMetadataFor :-D as i need another alias mechanism.
but don't get me wrong, i think the changes you already made are sufficent for my case... but it's confusing, therefore the comment.
for the method getParentClasses that you mentioned:
how would you access the driver property in the subclass?
Implemented