getID3() 2.0.0alpha-preview

What features would you like to see in future versions of getID3() ?
Post Reply
Allan Hansen
getID3() v2 developer
Posts: 445
Joined: Sun May 04, 2003 2:22 pm
Location: Holmegaard, Denmark

getID3() 2.0.0alpha-preview

Post by Allan Hansen » Wed Aug 11, 2004 9:18 pm

A preview version of getID3() version 2.0.0alpha is now available at (or

This version requires PHP 5.0.0 or newer.

This release is intented to show how things might get to work in getID3() 2.0.0.

If you are interested in helping the getID3() development, please take closer look and discuss at:

We need your input now before the huge rewrite of all modules.

New user syntax:

$getID3 = new getID3;
$getID3->option_md5_data_source = true;
$getID3->encoding = 'UTF-8';
try {
$getID3->analyze($file); // returns info
$result = $getID3->info;
catch (Exception $e) {
// handle error $e->message;

Limited functionality:

Supported tags: ID3v1, APETAG
Supported fileformats: AC3, AU, MPC, Monkeys's Audio, RKAU, SZIP, TTA, VQF
iconv replacement working
md5 and sha1 data hashes
No Windows support yet


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
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
[REMOVED]B. Change result array to return complex object instead of multidim array.
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.
K. Everything related to md5_data and sha1_data in seperate module.
L. New iconv-replacement module - loads automatically if iconv is not present.

ys, Allan Hansen

Post Reply