Securing and logging all objects individually is very hard,
especially when a change is made and all objects have to be edited.
Even when only a single include or function handles the security or logging of an object;
when the include file changes or an extra parameter is added to the function
you still have to adept all your classes.
Securing and Logging with Aspect Oriented Programming
With Aspect oriented programming you can add your include or function call
before, after or around your class methods.
When a change is made, just change your single Aspect for the Poincut
that includes the Joinpoints of all secured or logged methods.