Neither class does anything as a class, except wrap function(s) that may as well be declared static. There is no point in creating instances of either class as they have no instance data. The immensely complicated file class does nothing useful that cannot be done with, say, the built-in SplFileObject class - and indeed, a good deal less. It seems to describe itself as a text processing class, but it doesn't process text. It is poorly documented. Some of its member functions make no sense - e.g. checking an operation and storing the result of the check in a function-local variable. The built-in freadcsv() function, or the CSV read facilities in SplFileObject, are a great deal easier to use and more robust than what we find here.