The next major version of getID3() is underway. It will require PHP5 and a slightly different syntax from the user.
The 1.7 branch will be supported for some time for PHP4.
Proposed changes (possible very incomplete).
1. Make full use of protected/private/public members and values.
2. Replace 'error' with thrown exceptions.
3. Reduce size of getid3_lib - a lot.
4. Remove redundant code.
5. Create abstract class that all modules extends.
6. Make all constants per class.
7. Remove EmbeddedLookup() if possible.
8. Replace header comment block with PEAR compatible one http://pear.php.net/manual/en/standards.header.php
9. Use extra line feed to seperate sections and increase readablity.
one linefeed between small logical groups
two linefeeds between larger group of small groups
three linefeeds between functions
four linefeeds between classes
A. Use CVS
<strike>[REMOVED]B. Change result array to return complex object instead of multidim array.</strike>
C. Change all modules - give them a pointer/handle to the main getid3 class instead of fd and ThisFileInfo.
D. Get rid of getid3_lib::IncludeDependency()
E. Reduce code complexity by using $cond and FunctionCall().
F. Make full use of multi dim static arrays. Saves lots of memory.
G. Reduce number of functions and lines of code.
H. Replace many !empty($var)/isset($var) with @$var - easier to read, poossible faster.
I. Remove cleanup code. Instead of removing unwanted keys we do not create them in the first place.
J. Make all variable names lower case.
A public alpha version will be released very soon. It will be very limited, only a few modules, but it will show some of the principles mentioned above.
Comments and suggestions are more than welcome