I was wondering if there was any general advice or tips about someone whose going about building their own open source web application. I was thinking once I get the fundamentals down, I would put it on github for some collaboration.
It seems to a very difficult thing to find advice for online, I know security is a big deal. I’m trying to make it as simple as possible, and heavy on plug-ins. That’s the goal anyway, that way it’s just add things as you need.
As for creating a plugin system, that’s beyond me for the time being, if anyone has any advice on that either that would be appreciated as well!
What kind of project is it? What does it do?
It’s a forum system. vBulletin, phpBB, MyBB, etc. It’s obviously no where near on the same scale, I’m just doing it as a project for myself, not a big deal if no one runs it at all.
You haven’t really provided much of an insight into your requirements.
A generic system which can be extended via plugins? Thats probably the most complex application you can possibly think of.
Somethign a little more specialized like a CMS or maybe eCom.
As for practices. There are hundreds if not thousands of practices, patterns, methodologies, etc.
Google design patterns, XP/Agile, OO principles, unit testing.
Best practices in software is a HUGE subject that takes decades to fully comprehend.
There are many different way to do plugins. I would suggest look into Event model with Subject/Observer pattern. Your application would trigger interesting events through the applications and any number of plugins could be registered as observers and will be listening to those events. Anyway, this is not easy to just explain in a single post. This is a very old, time-tested pattern, was used in other languages before php was even object-oriented.
This is what I am using, I am still not completely done with releasing my project, but the source is available at github. Look at www.lampcms.com if you interested.