Jump to content

[résolu] avertissement pour classes/product.php


Recommended Posts

Bonjour,

Dans classes/product.php, ligne 1952, il manque des parenthèses.
avant :

        $row['attribute_price'] = isset($row['id_product_attribute']) AND $row['id_product_attribute']? floatval(Product::getProductAttributePrice($row['id_product_attribute'])) : 0;


le résultat est un booléen

après :

        $row['attribute_price'] = (isset($row['id_product_attribute']) AND $row['id_product_attribute']) ? floatval(Product::getProductAttributePrice($row['id_product_attribute'])) : 0;


le résultat est numérique, ce qui est attendu.

IL serait profitable d'utiliser des variables locales car lors de la recherche des informations tel que dans la fonction getProductProperties, le même appel de fonction est effectué plusieurs fois sur quelques lignes, ce qui nuit aux performances et obscurcit le code.

Share this post


Link to post
Share on other sites

Lorsque je regarde le code de prestashop, j'ai parfois l'envie de tout réécrire.

par exemple dans classes/product.php, dans la fonction getProductProperties,
on trouve sur quelques lignes, trois appels à Product::getPriceStatic, et dans cette dernière fonction une série de tests sur les arguments de l'appel.
C'est plutôt une usine à gaz, car il suffisait d'un seul appel pour recalculer tous les prix, avec ou sans taxe, avec ou sans réduction. Au lieu de cela le programmeur, payé sans doute à la ligne, a compliqué le code et sa compréhension et sa maintenance. De plus, Il ignore totalement l'utilisation de variables de stockage de résultat temporaire et refait plusieurs fois les mêmes tests ou calculs.

Le résultat est la répétition d'appels de fonctions inutiles, un code lourd et illisible et le plus important une baisse importante de la performance.

S'il veulent auditer le code, je suis là et il y a du travail!!!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More