Agavi is an open source web application framework for PHP 5 It is object-oriented and implemented structured according to the Model-View- Controller architecture.
Similar to Symfony Agavi originally based on the never released version 3 of the once popular PHP frameworks Mojavi, developed by American Sean Kerr on their own and finally adjusted.
The project in early May 2005, when a team of software developers in Keller ( Texas) was founded out of dissatisfaction with the spite of the open source license closed and unclear development process a spin-off of PHP frameworks Mojavi started, with the intention of incorporating the community and with an exposed roadmap to develop a framework as a community project.
Since early 2006, the original founders of the project, lack of time is no longer one of the party; Agavi has since been further developed by an international team led by a company from Munich.
Philosophy and characteristics
Compared to other frameworks to Agavi limited to the tasks that traditionally fall within the problem domain of a framework, and leaves, for example, the object -relational mapping specialized projects. This is a vendor lock -in is avoided, etc. would be applicable only when using a certain ORMs, a specific template engine in which certain features of the framework.
The main focus is on clean code structure in the applications with strict separation of responsibilities. Unlike other web frameworks, it is actually possible with Agavi in practice to use the same code without any changes to existing structure and logic in other contexts, and so, for example, to retrofit a web service interface in an existing web application, such as it actually provides the MVC architecture. However, the initial cost of creating a software is higher than with other frameworks, which are specialized to support developers in achieving faster results. Agavi comes standard example also no support for Scaffolding ( ultimately a consequence of the decision, must be delivered no ORM).
A Agavi application can define and run in any environment (eg for production, staging, development environment single programmer ) and contexts ( eg, Web, command line, SOAP). Configuration options can be set as an arbitrary combinations of environments and contexts, so that for example the special request data sources when operating behind a load balancer are separately secured to the production environment, or any developer may deposit its own database configuration, without overwriting other settings. This makes the deployment of an application is considerably simplified.
Another special feature is the strong focus on XML for configuration, which allows for example the standard technologies such as XSLT and XIncludes a simple modularisation, or configuration formats are versioned using XML namespaces to ensure backward compatibility. It also supports XML Schema, RELAX NG and Schematron for validation.
- Compatible with PHP5
- Configuration via XML
- Support for all major database abstraction interface and ORMs
- Not limited routing including Reverse generation to URLs
- Flexible Layouting with any number of nested templates
- Support for any template engines
- Form treatment ( error flag, error messages, filling out forms ) regardless of the template engine used
- Multilingualism and I18N support
- Validation for all input data (eg, HTTP headers, cookies, file uploads)
- Flexible caching also of parts of a page