Jul 20, 2007 at 10:03 PM

Baking Mambo

With the 4.7 release just around the corner the Mambo team thought now would be great time to discuss with the community our plans for post 4.7 releases.  The major initiatives laid out on the Roadmap a year ago are still in place, but the release plans have changed slightly based on some decisions we have made.  Originally we had planned to release 4.7, then 4.8, and then 5.0.  We are now planning to move from the 4.7 release directly into Mambo 5.  The 4.8 release was to focus on database portability, content versioning, and the implementation of a PHP template engine.   Version 5.0 was to tackle features like enhanced Access Control Lists (ACL), N-Level content organization instead of the current two tier section/category structure, multi-site management, etc.

The team has spent a great deal of time thinking about the approaches we will take to implement all those features and how best to leverage the great work being done by others within the PHP community as well.  Over the last year the number of PHP frameworks on the market has increased as have the maturity level and feature set provided by each.  As the size and complexity of a project like Mambo grows having a solid foundation to build from becomes increasingly more important.  We believe that Mambo 4.7 will prove to be the best Mambo release yet.  The team has spent a considerable amount of time working on XHTML validation, WCAG 1.0 (Priority 1, 2, and some 3), removal of unnecessary and/or inaccessible JavaScript code, improved usability, plus much more.  With a solid release like Mambo 4.7 out we will have a stable, accessible, and standards compliant system for the community to use which will allow the team to fully focus its attention on the future.  Of course we will continue to provide maintenance releases of 4.7 as needed while we work on Mambo 5.

Mambo 5 offers us a chance to step back and rework things from the ground up.  There couldn’t be a better time to leverage the benefits of tried and true enterprise patterns and features offered by a number of great web development frameworks on the market today.  After a great deal of research the Mambo team has decided to utilize the CakePHP framework for Mambo 5.  CakePHP is a rapidly evolving, mature, and feature rich PHP framework.  The project is backed by an official Foundation (http://cakefoundation.org/) much like the Mambo project itself.  We believe this is an important criterion as it helps assure the project will remain active and community minded.  CakePHP also has a growing community, a software forge (http://cakeforge.org/), and a nice body of documentation.  From their site, "Cake is a rapid development framework for PHP which uses commonly known design patterns like ActiveRecord, Association Data Mapping, Front Controller and MVC. Our primary goal is to provide a structured framework that enables PHP users at all levels to rapidly develop robust web applications, without any loss to flexibility."

Here are some of the standard cake features:

  • Hot Features:
    • Model, View, Controller Architecture
    • View Helpers for AJAX, Javascript, HTML Forms and more
    • Built-in Validation
    • Application Scaffolding
    • Application and CRUD code generation via Bake
    • Access Control Lists
    • Data Sanitization
    • Security, Session, and Request Handling Components
    • Flexible View Caching
    • And More...
  • Active, Friendly Community - Just join our IRC channel to see who's in. We'd love to help you get started.
  • Flexible License - Cake is distributed under the MIT License
  • Clean IP - Every line of code was written by the CakePHP development team
  • Extremely Simple - Just look at the name...It's Cake
  • Rapid Development - Build apps faster than ever before (check out the zZine article - http://www.zzine.org/articles/cakephp)
  • Best Practices - Cake is easy to understand and sets the industry standard in security authentication, and session handling, among other features.
  • OO - Whether you are a seasoned object-oriented programmer or a beginner, you'll feel comfortable
  • No Configuration - Set-up the database and watch the magic begin

We realize this decision is not only important for the Mambo core, but also for the 3rd party developer community.  I’m sure at this point most of you have at least read about and more than likely have tried at least several different frameworks.  In fact you probably already have a favorite.  Like anything else, each framework has its own strengths and weaknesses and CakePHP may or may not be your first choice, but we hope you’ll agree that CakePHP is a solid choice and certainly one of the top frameworks available today.  Having a framework like CakePHP at your disposal should make developing Mambo add-ons just that much easier and offer new levels of extendability.  Developers will find a great starter manual (http://manual.cakephp.org/), a solid API (http://api.cakephp.org/), plenty of online tutorials (http://bakery.cakephp.org/) & screencasts (http://cakephp.org/screencasts), an IRC channel, and the projects Google Group (http://groups.google.com/group/cake-php) for CakePHP support.  Of course Mambo 5 will have its own documentation as well, but we still have a long way to go before then.

Also, just so you know its not all theory I thought I would mention that we already have a pre-alpha prototype of the new Mambo 5 installer.  I've spent the last month or so reworking some early code I had done on the Mambo installer for 4.8 around database portability.  I started the code 1 year ago this week and set it off to the side for a long while waiting for 4.8.  With 4.8 going away and the project moving to CakePHP I decided it was time to bring it back to life and do it the CakePHP way.  It utilizes ADOdb and AXMLS to create the initial Mambo database and land the database connector.  From that point on it relies on the native database portability drivers within CakePHP.  Having these native drivers has made life much easier than previous methods.  The pre-alpha version was done on CakePHP 1.1.x and has support for SQLite, PostgreSQL, and MySQL.  CakePHP 1.2 is now in alpha status and is looking better by the day.  Before too long I will rework the installer to utilize the 1.2 branch which will bring even more databases into the mix; oracle, db2, and mssql.  By no means is the pre-alpha installer ready for production, but it does show off some nice functionality and proves Mambo and CakePHP can make a nice pair.  We will be sharing this with interested 3rd party developers as a sample shortly after 4.7 is released.

It's the perfect time to make a shift and look toward the future of this great system of ours.  We hope you'll join us on this new adventure.  Mambo on!

<Previous   Next>
Digg!
 

Get Help

Mambo Manual

Our user manual and developer guide. Jump inside and find out how Mambo works for you.

Mambo Forums

The place to help and be helped.

Mambo Support

Knowledgebase chock full of tips, tricks, how-to's and best practise to help you get the most out of using Mambo.

Mambo Services

Can't do it alone? You don't need to! We have a growing list of Mambo professionals who will be happy to help you out.

Read more...

What is Mambo?

Mambo is a full-featured, award-winning content management system that can be used for everything from simple websites to complex corporate applications. It is used all over the world to power government portals, corporate intranets and extranets, ecommerce sites, nonprofit outreach, schools, church, and community sites. Mambo's "power in simplicity" also makes it the CMS of choice for many small businesses and personal sites.

Mambo is one of the most powerful Open Source Content Management Systems on the planet and with almost 8 million downloads, Mambo is arguably one of the most popular CMS's in the world. Mambo is easy to install, simple to manage, and reliable.

Read more...

About this site

The mambo-news.org site has been built with the world's most popular CMS - Mambo!

This is a basic install of Mambo Lite 4.6.5.

The site uses the following 3rd party extensions:

Thick-RSS module from Horst Lindlbauer;

Featured Item module from David Thomas;

Digg module from Justin Cook;

Run Digital RSS from Robert Deutz.

Read more...