grandioso! se qualcun altro è interessato, consiglio il wiki della stessa pagina in inglese (che contiene molte più informazioni, tra cui un esempio)

facendo così sembra funzionare
codice:
<?php
abstract class Component{
		
	public static function build($what)
	{
		switch($what)
		{
			case 1:
			{
				return new Resistance();
			}
			
			case 2:
			{
				return new Capacitance();
			}
		}
	}
	
	abstract function getName();
}

//Resistance
class Resistance extends Component
{
	function getName()
	{
		return "i'm a resistor";	
	}
}


//Capacitance
class Capacitance extends Component
{
	function getName()
	{
		return "i'm a capacitor";	
	}	
}

////////////////////////////////////////////////////

$comp = Component::build(2);

echo $comp->getName();
?>
é il modo corretto? quindi niente costruttore...