>
Ding(http://marcelog.github.com/Ding/) is a PHP framework that provides dependency injection, Aspect Oriented Programming, lightweight, simple, and quick MVC, syslog, TCP client and server with non-blocking sockets, timers, and custom error, signal, and exception handling, PAGI integration (for the Asterisk gateway interface), and PAMI integration (for Asterisk management). It is similar to Java’s Seasar and Spring.
Ding offers the following features:
- Scalable architecture, allowing to easily adopt new features.
- Lightweight, easy of use, and useful.
- Loosed-couple, just use what you need and nothing more.
- Setter Injection (For arrays, scalar values, php code, and references to other beans).
- Constructor Injection (For the same data types as above).
- Can define factory beans, factory classes, and factory methods to create beans.
- Managed bean lifecycle (for singletons and prototypes).
- Initialization and destruction methods called by the container.
- Aspects (as in aspect oriented programming).
- Lightweight implementation of the MVC (Model View Controller) pattern.
- Annotations used by helpers and the container (i.e: @InitMethod, @DestroyMethod, @Controller, @ErrorHandler, etc).
- Can cache proxies and bean definitions with Zend_Cache, Memcached, Filesystem, and APC.
- Integration with PAMI and PAGI. So you can make asterisk (telephony) applications via agi and ami.
- Helpers: SignalHandler, ErrorHandler, ShutdownHandler, Timer, Syslog, TCPServer, TCPClient, etc.
The name “Ding” comes from the action of using/doing dependency injection (DI), the result is something like “di’ing”.