A declarative constraint framework for PHP object properties