A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.
I am on a team developing a web-based application. It is currently used in-house, but will soon be opened up to a small group of high-paying clients. It seems there is no clear winner in PHP frameworks, but I'm hoping folks on here more familiar with the features of the choices available might advise on what best suits us.
Our application is mostly interesting because of the data we have and the folks we have in-house to analyze it. The web interface is relatively simple right now: most of the complexity in our app is in the SQL we generate, not the interface itself (although that could change in time).
The person who developed our current framework was clearly not an experienced OOP programmer, so we've a fair number of reports with an awful lot of duplicated code. Nevertheless, they work, and we'd prefer not to rewrite them right now.
What we need is:
- a reasonably simple framework that will let us produce a bunch of reports without copying and pasting all the code to save out the state of the objects on the forms, connect those to the SQL and blah blah blah (adding a pair of radio buttons that governed the generation of one Boolean SQL condition recently involved adding code in 25 functions in 5 files)
- something that will make adding a reasonably rich security model to our app (with roles, accounts and reasonable security) as painless as is reasonable
- something that will let us use existing reports with minimal fuss; and
- something that will let us add new reports in a clean way, with nice OOP-based code reuse.
If it wasn't for the desire to add security, I'd just roll my own (our HTML generation and user interaction is pretty simple), but the security and the hope that we'd grow into a framework that made more sophisticated stuff possible soon makes me want to look for something canned.
So: what do y'all think about cake, lampshade, prado, wact, cocoon, smarty, phpsavant, drupal, ...
Well, I'd say that wanting a powerful framework is a sure sign that your time has come to consider switching from PHP.
If that isn't an option, usually the best is to use Smarty and a homegrown class library. Adding some DB wrapper is also a good idea, but I can't say that current efforts like PEAR::DB are generally worth using.
There's also PHP version of a cross-language framework called Fusebox. The catch is that it isn't OO and has some different (IMO, pretty weird) design philosophy. But I hear it's pretty established and used for large projects.
Thursday, July 21, 2005
dotProject is actually a Project Management Tool (I'm a core contributor), but we've seen lots of people using it as a framework for some other things.
Help ticket management
It's pretty flexible, the module interface is pretty straightfoward, and the permissions system is pretty extensive.
Friday, July 22, 2005
This topic is archived. No further replies will be accepted.Other recent topics
Powered by FogBugz