I would like to suggest more advanced import functionality. And since I 'll be working on something like this, chances are that I can contribute this to the doctrine project.
Here is my suggestion:
- Provide ImportDriver classes, eg. CSVImportDriver, XMLImportDriver
- Provide BatchImporter classes, eg. PersonBatchImporter for an object called 'Person'
- Transformation classes, that can be attached to field in the import file, eg. DeleteTransformer ('first_name') will 'delete' the column, which means it won 't be imported, even if it is included in the import file
Another transformation could be the changing of decimal characters, eg. 16,20 becomes 16.20
Yet another transformation could be moving a column to another table and provide relational mapping by foreign keys.
In my experience, import data is never how you want it to be and you always have to make changes. Streamlining this process and providing usefull default Transformers would be immensely usefull in my opinion. Since the logic is included in classes, we could even work with base classes with basic importing functionality, which limits the real work of importing to customizing edge cases (import fields that need to be changed).
How about it? Please contact me by email if you are interested.