Maybe I'm misunderstanding something here, but PHP5 will let you chain calls: class Foo { function Foo() { $this->bar = new Bar(); } function & getBar() { return $this->bar; } } class Bar { function baz() { print 'baz'; } } $foo = new Foo(); $foo->getBar()->baz();