Agavi
Agavi is an open source, object-oriented web application framework implemented in PHP 5 and licensed under the LGPL. Its object oriented implementation follows the Model–view–controller pattern.
History
Like Symfony, Agavi is based on the never-released third version of the once well-known and popular PHP framework Mojavi developed by Sean Kerr.
The project was created in May 2005 when a team of software engineers from Keller, Texas created it as a fork of Mojavi. It was created in reaction to Mojavi’s development model, which was a closed process without a public roadmap and did not involve the participation of a large community. The goal was to change the development of the project to a more open model to encourage collaboration.
Since 2006, Agavi has been maintained largely by a software development company based in Munich, Germany. The project’s original developers are now involved in the Ruby community.
Agavi was first released as version 0.9 on June 8, 2005. The first production-ready release version was 0.11.0, released on November 3, 2007. More recently a significant milestone in the life of the project was achieved when the stable version 1.0.0 was released on February 26, 2009.
Philosophy
Agavi is a powerful application framework for PHP applications. Although the framework can function under many different delivery mechanisms, it is primarily used as a web application framework. It is an implementation of the Model-view-controller design pattern for organizing and maintaining complex PHP 5 projects.
It is not meant to be a website construction kit but rather a platform upon which to develop complex PHP applications. Common functions, such as authentication, security, internationalization, caching, and URL routing, are part of the framework, providing consistent and centrally managed tasks found in many software systems.
It strives to be flexible as to prevent developers from having to modify or extend built-in functionality. It seeks to decrease the time to delivery for projects by leveraging existing pre-built logic for lower-level tasks, leaving only custom business logic to the developers using the framework.
Licensing
Agavi is currently licensed under the LGPL, and all code contributions to the project must be approved.
Requirements
Required
Agavi Framework requires PHP 5.2.0 or later as of version 1.0.0. Some features are not supported in PHP versions < 5.2.8, most importantly running on a system with magic_quotes_gpc enabled is not possible as there are major bugs in how uploaded files are processed.
Optional
These libraries or extensions are NOT required but are recommended in order to leverage the full power of the framework:
- xsl – required only for transformation of pre 1.0 style configuration files.
- tokenizer – used to generate more efficient config-caches.
- session – no PHP session support means that you’ll have to build your own session storage system and hook it into agavi.
- xmlrpc – required for XML-RPC features
- soap – required for SOAP features and web-services
- PDO – required for database connectors that use PDO as base
- iconvgettext – required to use gettext-translators in the interationalization feature.
Installation
Agavi consists of PHP source files that may be installed via a PEAR package, downloaded directly from the project’s website, or via Subversion (SVN). Setting path variables may also be required if the command-line tools are to be used.
Features
Agavi Framework consists of a rich feature set including:
- All components are fully object-oriented PHP 5
- Performance oriented cacheing mechanism
- Translation libraries for internationalization
- Exception handling and logging
- Input validation and data filtering
- Request and Response handeling and routing
- User authentication and session management
- Web services platform
- Modular design for re-usability of codeEtc.
Documentation
Agavi has a fairly detailed user guide, installation instructions, and tutorial.
Agavi provides HTML API documentation produced by PhpDocumentor
