In both Ruby and PHP (and I guess other languages as well) there are some utility methods that are called whenever a property is set. ( *instance_variable_set*
inherit from ContextBoundObject - which does allow this, but at a performance cost
write an explicit property (i.e. with a backing field), and add a utility method call manually
look at compile-time weavers, such as PostSharp - generally by spotting an attribute or similar
look at runtime code generators, as offered by some DI/IoC tools (and some other "decorator" based tools) - which either decorate or subclass your object to add the extra code