New Bundle: IntegratedExportBundle (empty repository is available)
New menu item Content - Export (http://integratedfordevelopers.com/content/documentation/article/add-menu-items-to-integrated)
Export page with list of content types and "Export" button. In a later release also Search selections will be added to this page.
After click Export a new page will appear to choose the Export format: xml, csv or xlsx
After choose a new page will apear and tell to user to wait for the download. The export need to be started here
Use https://github.com/PHPOffice/PHPExcel for xlsx writing. Use cache options (http://stackoverflow.com/questions/13635633/phpexel-create-xls-overload-ram) to set a cache that uses 50% of the available memory (also check PHP memory limit)
For XML use a simple format that includes all available fields
All fields for the content type (as selected on /admin/contenttype/<contenttype>/edit need to be included)
The export need to work for all content types, also custom made one's. Use some intelligent way (maybe reflection) to get the data.
Relations will be added in a later release
Build the real export as a service, the controllers need to be tiny
During export check the PHP max execution time. When it's near that time add a line with "PARTIAL EXPORT" in each column. Add a Flash message (http://bootstrap.braincrafted.com/components.html#flash) with "The export is a partial one. It was unable to finish because of the execution time."