Deprecated/0.9/ReleaseNotes090

Warning! This page has the following tags:

  • This page is deprecated, and is only useful for developers using Agavi 0.9.
  • This page exists for reference purposes only.

Agavi 0.9.0 Release Notes


Please see milestone:0.9.0 for more information on what went into this release.


Announcing Agavi, a fork of Mojavi3


What is Mojavi?

Mojavi is an open-source MVC (model-view-controller) php framework, licensed under the LGPL. Developing with Mojavi php framework enables you to easily divide your web application into tiers, allowing for independent custom web application development.


Sounds great, so why fork it?

Mainly just differences in objectives and in development approach. The Agavi development process emphasizes open developer access to the codebase, as well as to use and contribute back to 3rd party projects such as Simpletest, Phing, Propel, Creole, etc in preference to custom solutions. Mojavi by in large is the work of one man, Sean Kerr, and most of the development happens in the dark. As impressive as Sean's efforts have been, we believe a project of this scale can be better managed by the community of developers using it.


I'm using Mojavi's 3.x development version now, will I have to make a bunch of changes to use Agavi?

Agavi 0.9.x should more or less be a drop in replacement for Mojavi's 3.0.0-DEV branch, at least it is at the time of this writing. (M3 revision 775). Basically, you will need to:

  • Adjust your factories.ini to look more like this:
    [Controller]  
    request          = "WebRequest"  
    storage          = "SessionStorage"  
    user             = "BasicSecurityUser"  
    security_filter  = "BasicSecurityFilter"  
    
    [ConsoleController]  
    request          = "ConsoleRequest"  
    storage          = "SessionStorage"  
    user             = "BasicSecurityUser"  
    security_filter  = "BasicSecurityFilter" 
    
  • Change the [config/settings.ini] section of config/config_handlers.ini to look like this:
    [config/settings.ini]
        class        = "DefineConfigHandler"
        param.prefix = "AG_"
    
  • rename any MO_* constant reference to AG_*
  • repoint any references to the mojavi.php {webapp/config.php,www/index.php} to wherever you installed Agavi.
  • so, ok, we concede that it might not be as drop-in as we'd have liked, but should be well worth the effort none-the-less. :)


So what are some differences between Agavi 0.9 and Mojavi3?

  • Some internal refactoring to make testing easier and improve code clarity, most if not all of which should not be noticable by users of the framework.
  • Changes to the factory configuration allowing multiple controllers to be configured (re: Zimba's posting to the Mojavi forums:  http://forum.mojavi.org/index.php?showtopic=958)
  • Unit tests for the framework (written using  SimpleTest), albeit many more to be written.
  • A command line tool using  Phing for a variety of tasks to remove some of the overhead of developing with the framework.
  • Installable using  PEAR
  • A few other items not yet implemented in Mojavi3 that we felt were both easy to complete and important to have


What are the long-term goals for Agavi?

Take a look at our  Trac Roadmap, but briefly:

  • As close to 100% code coverage for our unit tests as possible.
  • To be open to feedback, be it positive or negative.
  • To encourage other developers to contribute.
  • To build community love.


Hot damn, this all sounds great! But, where is it???

Everything you need can be found at http://www.agavi.org/