honeybee / agavi
Agavi is a full-featured MVC-style framework for PHP5 with a strong focus on structure, code reusability and flexibility.
Requires
- php: >=8.0
- ext-dom: *
- ext-pcre: *
- ext-reflection: *
- ext-spl: *
- lib-libxml: *
- phing/phing: ^2.17
- twig/twig: ^3.5
Requires (Dev)
- ext-xdebug: >=2.1
- maglnet/composer-require-checker: ^4.4.0
- phpcompatibility/php-compatibility: ^9.3
- phpunit/phpunit: ^9.5
- phpunit/phpunit-selenium: ^9.0
- squizlabs/php_codesniffer: ^3.7
Suggests
- ext-iconv: Enable iconv if you need to convert between other charset than iso-8859-1 and utf-8
- ext-pdo: PDO is required for database connectors that use PDO as base
- ext-session: If the session extension is disabled you'll have to build your own session storage system and hook it into agavi
- ext-soap: Enable the xmlrpc extension if you want to use Agavi's SOAP features
- ext-tokenizer: Enable the tokenizer extension allows Agavi to generate more efficient config-caches
- ext-xmlrpc: Enable the xmlrpc extension if you want to use XML-RPC features
- ext-xsl: Required only for transformation of pre 1.0 style configuration files
- maglnet/composer-require-checker: if you want check deps
- phpunit/phpunit: Install phpunit if you want to run your tests
- phpunit/phpunit-selenium: Required only for transformation of pre 1.0 style configuration files
This package is auto-updated.
Last update: 2024-12-07 21:11:48 UTC
README
- License: LGPL
- Latest Version:
- Build:
- Homepage: http://www.agavi.org/
- Releases: see downloads page or github releases
Purpose
Agavi is a powerful, scalable PHP5 application framework that follows the MVC paradigm. It enables developers to write clean, maintainable and extensible code. Agavi puts choice and freedom over limiting conventions, and focuses on sustained quality rather than short-sighted decisions.
Agavi is designed for serious development. It is not a complete website construction kit but rather a skeleton over which you build your application. The architecture of Agavi allows developers to retain very fine control over their code.
Agavi strives to leave most implementational choices to the developers. Agavi's components are inherently extensible, and the framework itself is designed around a XML-based configuration system that provides a very flexible environment.
The framework works for almost all kinds of applications but excels most in large codebases, long-term projects, extreme cases of integration and other special situations. Creating an application that is accessible not only as a standard web application but also via a commandline interface or standards like HTTP, SOAP or even XML-RPC is a perfectly valid use case.
Requirements and installation
- PHP v5.2.0+ (recommended is 5.2.8 or higher)
- required:
libxml
,dom
,SPL
,Reflection
andPCRE
- optional:
xsl
,tokenizer
,session
,xmlrpc
,soap
,PDO
,iconv
,gettext
,phing
See the installation guide
in the tutorial for some details. Installation via Composer/Packagist
and git clone is not mentioned there, but available by typing composer require agavi/agavi [optional version]
. Adding Agavi manually as a vendor
library requirement to the composer.json
file of your project works as well:
{ "require": { "agavi/agavi": "~1.0.0" } }
Alternatively, you can download a release archive from the github releases page and extract it or see the downloads page on the homepage.
Documentation
An introduction into Agavi can be found in form of a tutorial for a blog application. There are API docs and an official FAQ as well as slightly outdated WTF and blog. A useful FAQ for developers may help with common questions while browsing the source files with their docs is always an option.
Support
To get support have a look at the support page on the homepage.
There are mailing lists to join and a helpful freenode IRC channel
named #agavi
to get you up to speed (irc://irc.freenode.org/agavi
).
The IRC channel logs are available for the
curious that are interested in past conversations.
Contribution
Discussing issues on the mailing lists or in github issues as well as talking about problems and features in the IRC channel is always of good help to everyone. If you want to do more please contribute by forking and sending a pull request. More information can be found in the CONTRIBUTING.md file.
Changelog
See the latest changes in the repository CHANGELOG or on the homepage. The 1.0 release notes or upcoming release notes may be helpful as well.
License
Agavi is licensed under the LGPL 2.1. See the Open Source Initiative and this FAQ entry for details. All relevant licenses and details can be found in the LICENSE file.