I’m starting to write the specifications for the new project’s software. We’ve got some interesting things to build:
- a specialized content-management system
- a show-assembly system that combines audio files according to scripts
- content-distribution interfaces (our CDN, BitTorrent, Internet Archive, etc.)
- a membership-management system
- extensive ratings, reputation and personalization features
- event/engineer matching system
I plan to build most (if not all) of this in PHP, based to some extent on the existing code written by yours truly. Almost everything will be open source, and I hope to send out the word for interested developers within a month.
But in the meantime, I need advice from one or two people who have built successful large-scale projects in PHP. I wouldn’t call what I’ve written to date spaghetti code, but I’m sure I didn’t organize it the best way. For example, here are some questions I have:
- What’s the right way to organize source files in terms of common/include files for parameters, common functions, etc?
- What’s the best way to manage database connections? My current code sometimes opens and closes the database multiple times per page rendered because of the moudularity of the source files.
- Can you provide a link to an open-source PHP project that you think is well organized and architected? I’d like to read some source code to look for best practices.
At this point, it would be great just to get #3: some links to well-designed code. But if you’re interested in doing more, just send me a message. (doug@rds.com)