class TController { private $components = new array(); public function register(&$comp) { $components[] = $comp; } public function getHeader() { foreach ($components as $comp) { $comp->getHeader(); } } } interface Component { public function getHeader() } class DropDown implements Component { public function getHeader() { include('ddHeader.php'); } } $controller = new TController(); $dd = new DropDown(); $controller->register($dd); $controller->getHeader(); ...