Type-Safe Objects in PHP