Je serai rapide et simple à ce sujet. Fondamentalement, j'ai besoin de fusionner plusieurs factures (objet) rapidement et rapidement.OO question de performance
Une idée simple est de
$invoice1 = new Invoice(1);
$invoice2 = new Invoice(2);
$invoice3 = new Invoice(3);
$invoice1->merge($invoice2,invoice3);
$invoice1->save();
Puisque chaque objet interrogera ses propres données, le nombre de requêtes augmente à mesure que le nombre de factures nécessaires à la fusion augmente.
Cependant, ceci est un cas où une seule requête
SELECT * FROM invoice WHERE id IN (1,2,3)
suffit, mais la mise en œuvre ne sera pas aussi élégant que ci-dessus.
repères initiaux sur les données de l'échantillon indique une diminution 2,5x-3x la vitesse au-dessus en raison du grand nombre de requêtes MySQL.
conseils s'il vous plaît
aussi, jetez un oeil à [ 'func_get_args()'] (http: // php.net/manual/fr/function.func-get-args.php) afin que la même implémentation gère 'Get (id)', 'Get (idA, idB)', et 'Get (id1, id2,. .. idN) '. – jensgram
c'est une option, bien que généralement je préfère ne pas le faire parce que le tableau indique à quelqu'un qui traverse la méthode en cours d'utilisation ce qu'il fait et accepte sans le chercher. – DampeS8N