We have recently developed a component framework for PHP 5 named PRADO. The component model of PRADO follows closely to that in Borland Delphi, Visual Basic and ASP.NET, and it is event-driven.
A PRADO application is a collection of pages each of which is a hierarchical tree of components having properties, events, assets, templates, and so on. Components are highly configurable and they can inherited or composed together to form new components.
A wonderful thing about PRADO is that it is event-driven. Unlike traditional procedural programming, developers now concentrate more on responding to different component events. For example, you can write an OnClick event handler function to respond to the user click on a button, or you can write an OnTextChanged event handler function to respond to any content change in a text field. People familiar with desktop GUI programming may find Web programming with PRADO is very similar to that.