Agavi is an open-source MVC-style application framework for PHP 5 with strong support for important features such as web services, internationalization, and a heavy focus on code modularity and reusability.

****PLEASE NOTE****:
The "Ohloh Summary" information is missing because we chose not to enlist any source code repositories until the Ohloh importer can handle complete repositories (e.g. including branches), as it's not possible to accurately compare projects or display activity information.

Journal Entries

No entries yet. Link your entries with 'agavi' to include this project.

Ohloh Analysis Summary

Updated 07 Oct 2008 07:30 UTC


Ratings & Reviews

Community Rating
4.9/5.0

Based on 35 user ratings.

Your Rating

Click to rate this project.

about 1 year ago Avatar
Military grade universal PHP application framework

  by Mike Seth

Agavi is special, military grade, professional PHP application framework.

Agavi is:

* Pure PHP5 only
* Fully OOP and MVC
* Versatile, modular and 100% extensible
* Conservative and focused
* High performance
* XML enabled

....application framework that enables creation of arbitrary PHP applications. It is not designed solely for Web applications and enforces strict (yet flexible) separation of ... [More] application logic and presentation, allowing you to expose your application through arbitrary interfaces (from Agavi's perspective, it is immaterial whether you are interacting through a web browser, a serial console or a cron script running in a virtual machine on your cellular phone: no matter the media, you write your code once).

Outstanding quality of code written by brilliant developers who adopted the best of Mojavi legacy, customizable code generation tools, ample selection of utilities, independence of particular database and content production libraries, agressive caching features, extensible and magical configuration using intuitive XML, complete and proper support for internationalization, routing subsystem that beats pretty much every other framework, and many many more awesome features that can only be fully appreciated by professionals:

* Configurable two-sided filterchains; application and framework logic is wrapped by filters before and after execution (and is executed inside a filter), both globally and locally
* Contained and deferable execution of logic in tightly isolated environment (e.g. you can not access $_FILES or $_SESSION directly)
* High level security enforcement. RBAC implementation is available.
* Automagical XML to PHP compiler (XML configuration is read *once* after a change!)
* Mojavi-style slots and layered output buffering allow highly customizable decorator templates
* Highly consistent class hierarchy, clean source code, phpdoc comments and generated API documentation
* Phing as the underlying build engine
* Automatic and highly customizable filling of HTML forms
* Per-action validation defined in XML DSL
* Conditionally cacheable actions
* Easy integration with many existing database libraries and templating engines (no specific library or engine is required or encouraged)
* Easy incremental refactoring of legacy applications into Agavi
* Ideally fits PHP's execution model
* Powerful session management, with separate and extensible code for management and storage
* Extensive use of class autoloading - any part of Agavi can be customized or replaced
* Reliance on full power of PHP5 (data reflection, exceptions, XPointer/XPath etc).
* Fully supports web services, and multi-media, multi-user, multi-context applications
* Conservative restraints on what is accepted into the distribution: Agavi does not and will not carry libraries for HTML generation, Ajax, ORM and other stuff that doesn't belong in an universal framework
* Fully suitable for real life, mission critical production.
* Nice

Agavi is a work in progress (core API frozen until release 1.0) and its documentation is being improved. This author relies on Agavi heavily in intranet and Internet production environments.

[Less]

7 of 7 users found the following review helpful. Was this review helpful to you? |

Links

2 links submitted so far. Submit your own links.

News

Edit RSS feeds.

    The video of the Agavi talk I gave last week. (Mind the bug in...

    The video of the Agavi talk I gave last week.

    (Mind the bug in the video player - it’s 1:12:51, not 12:51!)

    Agavi 1.0.0 beta 1 released!

    After more than three years of development, Agavi has finally reached the first 1.0 milestone: 1.0.0 beta 1 is out! Grab it now at http://agavi.org/

    As you might already know, it’s fairly identical to the stable Agavi 0.11 series, which ... [More] has been ready for production use for a long time now and enjoys widespread use across many sites already.

    This new release introduces a new build system for projects, and features a new XML configuration subsystem that is even more flexible and ready for the future while maintaining full backwards compatibility. Several other minor enhancements are also listed below, but as usual, the RELEASE_NOTES and CHANGELOG files know it all. Please also pay special attention to the UPGRADING document which explains the changes to the configuration file formats (old configs will continue to work, however).

    There will likely be another beta release before we enter the release candidates cycle as a couple of refactorings remain to be done, just like the new unit testing subsystem for applications. Note that use in production environments is not recommended at this time.

    Also, I’m very happy to announce that a preview version of our new tutorial manual is up at http://agavi.org/docs/tutorial/. It covers the first couple of what’s going to be quite a number of chapters that explain the creation and improvement of the new official Agavi example application, which will also be used by other manuals, presentations and in trainings. Please have a look at it and let us know what you think; any sort of feedback is greatly appreciated!

    But let’s talk about three important new features in 1.0:

    XML config subsystem with improved, namespace-aware handlers, support for multiple XML Schema (also using XML Schema Instance declarations), RELAX NG and Schematron validation runs in various stages of config parsing, support for XSL provided through external instructions and by processing instructions and convenient support for namespace versioning, which means we’ll have nice backwards-compatible configuration files in the future. Envelope and actual content of files are now separate, as described in the UPGRADING document.
    A completely new build system for creating and managing your projects. It features several wizards, as well as raw targets that work without interactive input. This allows extension and customization of build operations in your custom build.xml files. There’s also an event listener system you can hook into for even more flexibility.
    Execution containers now have a request method. This means you can embed, for example, a slot with a login form, with the request method forced to “read”, so that this Action would never run the login operation even if another form on the page was submitted through a POST request. This should reduce a lot of request method related pains people have experienced when building heavily componentized web sites.

    The rest is mostly refactorings and minor enhancements as explained by RELEASE_NOTES, CHANGELOG and UPGRADING.

    Please test this first release thoroughly with your projects and report any issues you find on the mailing lists or the bug tracker!

    Thank you all for using Agavi, it’s an absolute pleasure to work with such a great user base! [Less]

    My talk on Agavi at PHPLondon

    Yesterday, I presented Agavi at the PHPLondon user group’s August meetup. At slightly over an hour, it was a bit long, but people asked a lot of questions afterwards, which I guess is always a good sign.

    There is an audio recording of it ... [More] , which I will combine with the slides to create a nice movie to watch. In the meantime, the slides can be found here (you can also download the original PDF there). [Less]

    Agavi Talk in London on August 7, 2008

    I’m giving a presentation on Agavi at the PHP London User Group meeting on 2008-08-07. Their wiki has all the details, but here’s the short version:

    Upstairs at Theodore Bullfrog from 7pm onwards. Admission is free.
    Talk is first ... [More] , discussion afterwards
    Several Agavi developers, contributors and users will be there to answer questions etc.

    Looking forward to seeing you there! [Less]

    How Ross tamed a legacy beast with Agavi.

    How Ross tamed a legacy beast with Agavi.

Read all Agavi articles…


Who uses Agavi?

Paweł Rynzar Henry Bauer Jordi Boggiano osde8info alan.bem Craig Fairhurst littlebutty Harald Kirschner crazyhead E_mE SunboX Mustafa Kumaş

Who contributes to Agavi?

David Zülke Dominik del Bondio Veikko Mäkinen Noah Fontes felix mike bob uwe bdabney horros ross bmatheny bmuskalla eremit zimba jake
I'm a contributor

Who manages Agavi?

David Zülke
I'm a manager

Where in the world?




People who use Agavi also use:

Propel


Project Cost

This calculator estimates how much it would cost to hire a team to write this project from scratch. More »
Include
Codebase 2,429,508
Effort (est.) 693 Person Years
Avg. Salary $ year
$ 38,129,131