Agavi

from Wikipedia, the free encyclopedia
Agavi
Basic data

Current  version 1.0.8
(June 29, 2015)
operating system cross-platform
programming language PHP
category Web framework
License LGPL
www.agavi.org

Agavi is a free web framework . It is implemented object-oriented in PHP 5 and structured according to the architecture pattern Model View Controller .

history

Similar to Symfony , Agavi is originally based on the never published version 3 of the once popular PHP framework Mojavi , which was developed by the American Sean Kerr himself and which was finally discontinued.

The project was founded at the beginning of May 2005 when a team of software developers in Keller (Texas) started to split off the PHP framework Mojavi out of dissatisfaction with the unclear development process, despite the open source license , with the intention of involving them the community and to develop a framework as a joint project with an open roadmap.

Since the beginning of 2006, the original founders of the project are no longer involved due to lack of time; Since then, Agavi has been further developed by an international team led by a company from Munich .

Philosophy and special features

Compared to other frameworks , Agavi limits itself to the tasks that classically fall into the problem domain of a framework and, for example, leaves the object-relational mapping to specialized projects. This is to avoid a vendor lock-in in which certain functionalities of the framework could only be used when using a certain ORM , a certain template engine , etc.

The main focus is on a clean code structure in the applications with a strict separation of responsibilities. In contrast to comparable web frameworks, with Agavi it ​​is actually possible in practice to use the same code without changes to the existing structure and logic under different conditions and, for example, to retrofit a web service interface in an existing web application , such as the MVC architecture actually provides for it. However, the initial effort involved in creating software is higher than with other frameworks that have specialized in helping developers achieve faster results. For example, Agavi does not include any support for scaffolding by default (ultimately a consequence of the decision not to include an ORM).

An Agavi application can define any environment (e.g. for production, staging, development environment for individual programmers) and contexts (e.g. web, command line, SOAP) and run in them. Configuration options can be set for any combination of environments and contexts, so that, for example, the special request data sources can be set separately when operating behind a load balancer for the production environment, or each developer can store their own database configuration without overwriting other settings . This considerably simplifies the deployment of an application.

Another special feature is the strong focus on XML for configuration, which for example allows simple modularization using standard technologies such as XIncludes and XSLT , or configuration formats are versioned using XML namespaces in order to ensure backward compatibility. Also supported are XML Schema , RELAX NG and Schematron for validation.

features

  • Compatible with PHP5
  • Configuration via XML
  • Support for all common database abstraction interfaces and ORMs
  • Routing including reverse generation, not limited to URLs
  • Flexible page design with any number of nested templates
  • Support for any template engine
  • Form handling (error marking, error messages, filling of forms) regardless of the template engine used
  • Multilingualism and I18N support
  • Validation for all input data (e.g. also HTTP headers, cookies, uploading files)
  • Flexible caching even from parts of a page
  • No HTML "helpers" supplied, no binding to an ORM, no Javascript library or similar.

reception

See also

Similar projects

Web links