0 votes

I would like to extend the default Doctrine2 exporter to add support for custom annotations for my project.

If I understood correctly, the generation process uses XSLT files to translate XML files in ORMD format to PHP/YML/XML files, however I can access to XML and script files but can't find any XSLT files.
I guess they are compiled in the GFS file. Is there any way to find them? I don't feel I could create an exporter from scratch.


in Solved by (200 points)
recategorized by

1 Answer

0 votes
Best answer

As you wrote, export mechanism works on XSLT basis. Also you have correctly found out that you can access XMLs, .cfgs and scripts but not .xslt files (which are compiled as GFS files). It's because we consider XSLT our critical know-how and because of that we can't provide it to public.

Also as you wrote, export works by transforming ORMD project file by several templates to desired output. You can freely add more transformations to more destinations to export script, but you can't modify existing xslt templates.

Regarding your request to extend annotations support, this isn't done by XSLT templates (as XML and YAML are) but by another complex mechanism of code parsers and generators. Currently there is support only for @ORM annotations but we have a plans to extend it to allow more customization, for example to @Gedmo annotations.

When this extension is ready, it will be possible also add more custom annotations. Unfortunately I can't promise you any specific date of release at this point.

by Skipper developer (74.8k points)
selected by

Thanks for your answer.

This kind of feature could be very interesting for a lot of people I guess. It's unfortunate you can't give us a more precise date of availability.

Is there a way to use custom annotations while keeping the compatibility with ORM Designer? I mean, are custom annotations kept while generating entites from ORM Designer?

Yes, custom annotations are kept. Thats why annotations use different parser than XML/YAML. Only @ORM annotations are imported changed, and exported back, while the original structure of the annotations and all unsupported annotations are kept.

The only downside is that you still have to modify the custom annotations manually in the code, they are not available in the visual model (so you're still better off than completely without ORM Designer :))