Tanto en empresas, clientes, proveedores como en contactos tenemos los campos telefono1 y telefono2. Nos vendría muy bien tener esos campos en un trait junto a un método addPhone() al cual podamos llamar pasando un número y que lo guarde en el primer campo que esté libre. Sería muy cómodo.
$cliente->addPhone('555123456');
echo $cliente->getPhone(); // 555123456
echo $cliente->telefono1; // 555123456
echo $cliente->telefono2; // nada
$cliente->addPhone('66699999');
echo $cliente->getPhone(); // 555123456
echo $cliente->telefono1; // 555123456
echo $cliente->telefono2; // 66699999
if ($cliente->addPhone('77700000')) {
// entra si ha podido añadirlo, pero como ya hay dos, no va a entrar
}
Creo que podemos sacar más ventajas al uso de traits en los modelos, en lugar de tanta herencia. El modelo cliente podría quedar asÍ.
class Cliente extends ModelClass
{
use ModelTrait;
use TelefonosTrait;
use CodsubcuentaTrait;
use CodserieTrait;
...
}
Esto es una sugerencia a debatir. Está abierta a comentarios, votación y debate en la reunión semanal. Si se aprueba pasará a estado pendiente.