Récemment, j'ai eu besoin de gérer la journalisation des données d'entrée et de sortie dans mon API. Cependant, j'ai rencontré un problème : certaines propriétés contenaient des données sensibles qui ne pouvaient pas être affichées dans les logs. Il est simple de gérer cela lorsqu'il s'agit d'un objet simple, mais lorsqu'il s'agit d'un objet imbriqué à plusieurs niveaux, les choses deviennent plus complexes. C'est là que la récursion entre en jeu. Grâce à la récursivité, il est possible de gérer cela efficacement en temps linéaire O(n). Voici le code :
const sensitiveFields = ['password', 'email', 'userCode']; function handleSensitivesFields(data) { if (typeof data !== 'object' || data === null) { return data; } for (const key in data) { if (sensitiveFields.includes(key)) { const value = data[key]; if (typeof value === 'string') data[key] = createMask(value.length); } if (typeof data[key] === 'object') handleSensitivesFields(data[key]); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!