Je suis actuellement en train de reconstruire un système de tickets spécialisé au travail (principalement utilisé pour aider les personnes ayant des défauts dans le matériel de télédétection...). Bref, je me demandais si faire beaucoup d'activités de type workflow dans le constructeur d'un objet était une bonne idée.
Par exemple, il y a actuellement ceci :
$ticket = new SupportTicket(
$customer,
$title,
$start_ticket_now,
$mail_customer
);
dès que l'objet est créé, il va placer une ligne dans une base de données, aller envoyer un e-mail de confirmation au client, éventuellement envoyer un SMS au technicien le plus proche, etc.
Est-ce qu'un constructeur devrait déclencher tout ce travail, ou plutôt quelque chose comme ce qui suit ?
$ticket = new SupportTicket($customer, $title);
$customer->confirmTicketMailed($ticket);
$helpdesk->alertNewTicket($ticket);
Si cela peut vous aider, les objets sont tous basés sur le style ActiveRecord.
Je suppose que c'est une question d'opinion, mais quelle est, selon vous, la meilleure chose à faire ?