php encapsulation best practices