was das locking angeht kommen mit files mehrere probleme auf dich zu. zum einen musst du selbst dafür sorge tragen, dass beim beschreiben von dateien die reihenfolge eingehalten wird. lockst du ein file zu früh, kann es sein, dass ein benutzer warten muss, bis es wieder frei gegeben wird.
manche server locken garnicht oder mangelhaft. ein lock auf einem windows-server wird möglicher weise nicht funktionieren.
der webserver startet bei vielen gleichzeitigen zugriffen auf ein file neue instanzen. leider weiss eine instanz von der anderen nichts und bei einem gelockten file, könnte es passieren, dass die zweite instanz ein leeres file zurück liefert. damit kann man daten verlieren.
eine suche in files kann (wenn sie z.b. mehrere dateien übergreifend ist) sehr lange daueren und php bricht dann wegen eines zeitüberlaufs die suche mit einem fehler ab. das muss man entweder programm-technisch abfangen oder auf viele dateien aufteilen.
liegen daten in einem einzigen file, ist ein file wesentlich schneller als die datenbank (die ja eigentlich auch nichts anderes als ein file ist). mein selbst gebasteltes cms läuft sowohl mit files als auch mit sql. file-based ist es gut 3 mal so schnell (die suche ist wieder eine ausnahme, da sind beide ca gleich schnell).
prinzipiell kannst du mit files nahezu alles machen. ich habe gut 4 jahre ein forum betrieben, dass komplett auf files basierte und 0 sql-statements hatte und sich hinter einem sql-board nicht verstecken muss. das grösste board hatte übrigens über 1 million posts.
einzig die suche hätte ich gerne wie in einer datenbank gehabt.
ich persönlich stehe auf files, da man sie in jedem editor bearbeiten und mit jedem ftp-script sichern kann. wann immer ich files verwenden kann, tue ich das auch. sql kommt nur bei sehr grossen datenmengen zum zug und wenn eine schnelle sortierung oder suche sein muss.