FlatDB – database designed to persist data using just PHP and flat-files
github.comAt what point does it stop being a flat file and start being an actual database albeit one implemented in a bit of a round about way?
With that said, PHP has sqlite support built in since 5.0 and sqlite3 since 5.3 so I see no reason to use this over that. Maybe the author can elaborate.
I remember writing code to do stuff like this in C way back when because there were literally no other choices.
Also, why is this on Hacker News?
Edit: I do, however, applaud any effort to contribute to the open source community. However, for anyone to trust this they would need unit tests and a composer package on Packagist.
This is useful for some free web hosting sites with some limits (if file creation is not forbidden ;), also useful for simple personal blog system (composer is unnecessary).
Well, not great, but usable. The write method is not reliable for asynchronous operations.
You don't need composer on the server you are running it on to still benefit from package management. You just do an install then deploy your vendors director.
As I mentioned in other comments, it's not an replacement for SQLite or any other database engine. I created this script for my own needs and shared it because it may be useful for other developers.
Yeah, and I mentioned, I appreciate anyone contributing to open source so I actually feel a little bad being critical. I was just wondering what the use case is. Especially since Sqlite3 is installed by default (probably also on shared hosts) and has the same requirements (all it needs is the ability to read and write a file).
Aside from that, I'm leery of Hacker News being a place where brand new open source contributions gets submitted (regardless of quality). There are other places for that.
There is already a super-fast flat-file database system that supports sorting (alphabetically and timestamps), ultra-fast lookup and retrieval, and optimized caching -- it's called a filesystem.
So why this and not SQLite? Just to save the dependency? What makes it "secure"?
Also curious about performance, SQLite is very mature and VERY fast.
Sometimes SQLite is not an option and I created FlatDB for my own needs. This is not a replacement for SQLite or other database engine.
When is it not an option?
Please correct me if I'm wrong but SQLite database could be downloaded from web-browser. There is a some ways to prevent it by keeping db files above www/ dir or via htaccess, however what you will do if you have only limited access to www/ folder and .htaccess aren't supported?
The server you are describing I have never seen... even in the 90s. I have never seen a server where .htaccess was disabled AND you couldn't go one level up from www/public_html/htdocs/etc.
So now curiosity has gotten the best of me... is this a private lan or something? The only thing I can think of it is one of those situations where a University gives you a website but it is really really locked down.
Also, try starting it with a dot (".mytest.html") as a lot of servers prevent hosting up files that start with a dot.