Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Add sniff to delete_option() + add_option

Ouverte
#637 4 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@rebeccahum y travaille déjà.

Depuis le 31/3/2021.

  • #648 par @rebeccahum — ouverte

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
35/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
php, wordpress
Domaine
tooling

Piste de recherche

Commencez par retracer la manière dont les sniffs PHP_CodeSniffer existants représentent les appels à delete_option() et add_option(), y compris leur scope et la gestion des option-keys. Le travail est considéré comme terminé lorsque les appels correspondants dans le même scope sont signalés, en excluant les scopes ou les keys différents, et que update_option() est suggéré ; l’issue ne nomme aucun fichier cible ni aucun test.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Type: Enhancement

What problem would the enhancement address for VIP?

As explained at https://github.com/woocommerce/woocommerce/pull/27696 there is a race condition when delete_option('foo') is followed by add_option('foo', '...').

Describe the solution you'd like

Having a sniff that looked for a delete_option() call followed by an add_option() immediately
or at some point within the same scope, for the same option key, could flag this race condition and suggest using update_option() instead.

What code should be reported as a violation?

function reset_settings() {
	$defaults = get_default_settings();
	delete_option( 'my_settings' );
	add_option( 'my_settings', $defaults );
}

Likely to need some consideration of an option key that is using a variable.

What code should not be reported as a violation?

  • add_option() in a different scope.
  • different option key (including different variable).
Langage dominant
PHP
Étoiles
261
Forks
44
Merge moyen
3 j 9 h
PR mergées (30 j)
10

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de Automattic/VIP-Coding-Standards

Toutes les issues de Automattic/VIP-Coding-Standards

Issues similaires

Plus d'issues PHP

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.