views:

63

answers:

1

I'm going to be starting a new project soon, and was having some thoughts. These are the requirements:

  • it's going to be built in PHP
  • it will need to be able to support plugin modules/components. These can be thought of as mini applications.
  • users will be able to log in, and depending on a number of things, they will have access to different components
  • it will need to be able to respond to HTTP requests in a number of formats, eg: html, xml, json, pdf - that is, it will use the MVC pattern

I'm not sure what the right term for this piece of software is, but I'm calling it an Application Platform, or an Application Framework, but this isn't anything like CakePHP, Kohana or Zend - it's another level higher than that.

When I was given these requirements, I began thinking that Joomla 1.5 would actually satisfy all these criteria. After ripping out a lot of the defaults to make it less CMS-centric and more component-centric, I figure that it might work. My concern though is that I might be using Joomla for something it was never intended, and that there is something else out there which would be better suited from the get-go.

Are there any other PHP "application platforms" which I should take a look at? Do you have any comments or suggestions about the idea?

+4  A: 

Drupal might be a good choice. It is somewhat designed as a CMS, but it really is a bigger platform for building applications. Definitely a learning curve to it, but I would consider it the "higher level" platform in the same category as the MVC frameworks you listed.

Quick 30,000-ft summary: everything in drupal is a "node", nodes can store different things depending on their type; have different ways of being rendered; and have different was of linking to each other. Examples of nodes: blog entry, comment, user, product, wiki revision, forum, forum post..

Once you get developing for it, you really do start appreciating the simplicity and yet power and flexibility of the design. As a bonus, everything is a module. The framework provides modules that do users, authentication/authorization, and basic content. There's a good chance that you can use some of the existing modules for a lot of your functionality, or at least as a base to get started.

gregmac
Barebones Drupal is only barely a CMS in the vaguest sense of the word... It has the CRUD, but not much else in the way of niceties that everyone expects from their favourite CMS. Very much a base for building applications off rather than a CMS in and of itself.
Matthew Scharley