This class presents many interesting points :
- It can work as a standalone class, without relying on the external unix "file" command, which is sometimes slow when you have to analyze several files
- It handles the most common file types we have to deal with
- It can be easily extended to add additional file types
As a conclusion, this is a lightweight and fast implementation that can be used for handling the most common cases.