Boa tarde,
Você precisa do Behavior exatamente por que?
A partir do CakePHP 3, com a divisão do ORM em Entities e Tables, boa parte dos casos de uso para behaviors passaram a ser atendidos por uma ou outra.
Como regra básica eu costumo fazer:
- Se o campo que vai ser calculado não precisa de acesso a outra tabela/registro, defino um mutator/getter na minha entidade
- Se precisa consultar outro registro, uso na table
- Se precisa de acesso a outra tabela, daí eu parto para um behavior.
Quanto ao callback para uso, você está pensando em definir o beforeMarshal da tabela pra chamar um método do behavior? Porque você pode fazer isso de forma transparente definindo no Behavior
o método beforeMarshal, e nele você faz as rotinas necessárias.