Quote from: snowflip at Nov 05, 2009, 08:30 AM
How is MODx Revolution different? Why would one use MODx Revolution instead of Cake or CodeIgnitor for custom web applications? For "simpler sites" I see the benefits in using MODx, but how about for full-on custom web apps? Would MODx Revolution limit the possibilities of what could be done? Would it be a good idea to use MODx Revolution to build web apps like Freshbooks, Basecamp, or any other web service?
First off, it’s important to note that primarily at this time, Revolution is not a PHP Application Framework, as much as a Content Management Framework. There’s a difference. PHP AFs come with all kinds of tools to get you programming immediately, but offer no end-user support or content management tools. They expect you to create them. However, they offer easier integration with SVN, scaffolding, and such.
Revolution, on the other hand, is meant for building websites and web apps that are used in tandem with a website. For example, I’ve built (or am building) the following in Revolution:
- A dynamic online course system, complete with chapters/modules/quizzes/exams, online signup, payment processing, reporting, manager previews, etc.
- A threaded, complete forum solution that can rival SMF
- SSO Integration with the Atlassian stack
- modxcms.com/extras/ - the online repository, that hooks directly into MODx Revolution
- The modxcms.com Showcase
- Integration into Amazon Web Services for a Gallery module
- Integration into Zendesk via REST, providing a full externalized, web-based UI on our own servers
- And more...
Basically, you name it, I could build it in Revolution. Why? Because Revo comes with the following:
- A complete, robust database ORM in xPDO, that can rival most other ORMs in ease of use and scalability
- A powerful and proper OOP-driven model layer, built in MVC/C - the second C being "connectors", which act as secure gateways to the Model layer, and allow for easy AJAX processing
- Multiple dynamic templating systems, either through the built-in Chunk-driven system for MODx, or through the service layer that can utilize Smarty or any templating class of choice
- i18n integration with Lexicons
- Context-driven support, meaning that multiple subdomains, web services, and other domain layers are easy on only one install
- Tighter security via movable core/ and connectors/ directories
- Easy dev-staging-production development process for 3rd Party Components (or your webapp) via Transport Packages, which can be versioned, rolled back, installed anywhere, etc
- Easy customization for the end-user via the MODx system of Snippets, Property Sets, custom User/Context/System Settings, and more.
And of course, many more reasons...
Are there any limitations?
It’s hard to list limitations because for most all limitations, a solution could easily be found. Maybe you could list some of what you had in mind?
Would MODx Revolution be a good starting point for building full-on web apps?
I certainly think so.