Extender métodos en PHP
Interesante método que se utiliza mucho en .NET, que permite extender los métodos de una clase usando la definición de métodos estáticos de una clase extendida de la primera. El proceso es sencillo, se utiliza el método __call y se obtiene una lista de clases definidas y se compara la clase actual por cada una de las definidas y si contiene el método y es derivada de ella, se ejecuta la llamada:
public function __call($functionName, $arguments = array()) {
// Add an extra parameter
array_unshift($arguments, $this);
// Current reflected class
$reflectedClass = new reflectionObject($this);
// Find suitable class and function
$availableClasses = get_declared_classes();
foreach ($availableClasses as $class) {
$classDefinition = new ReflectionClass($class);
$availableMethods = $classDefinition->getMethods();
foreach ($availableMethods as $method) {
if ($method->isStatic() && $method->getName() == $functionName) {
$availableParameters = $method->getParameters();
if ($availableParameters[0]->getClass()->getName() == $reflectedClass->getName()) {
$method->invokeArgs(null, $arguments);
}
}
}
}
}
Vía / PHPDeveloper.org

Últimamente el número de frameworks para PHP que aparecen crece cada vez más rápido. Solar es un framework para PHP5 que nos permite desarrollar aplicaciones web de forma rápida. Usa conceptos derivados del sistema de plantillas