Automattic / Automattic/VIP-Coding-Standards

Add check for register_uninstall_hook

Ouverte
#716 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
Standard: VIP-Go Type: Enhancement
Langage dominant
PHP
Étoiles
261
Forks
44
Merge moyen
19 min
PR mergées (30 j)
1

Description

## What problem would the enhancement address for VIP?

Because the contents of `/wp-content/plugins` and `/wp-content/themes` are setup as `read-only` directories on the VIP Go platform, admin users cannot uninstall plugins from within the `wp-admin`. This results in the [function `register_uninstall_hook `](https://developer.wordpress.org/reference/functions/register_uninstall_hook/) never being able to run.

A VIP customer can deactivate a plugin through the admin, but uninstallation can only be done by removing the plugin from the [GitHub repo](https://docs.wpvip.com/technical-references/vip-codebase/) and deploying the changes. If a customer needs to run any clean-up steps associated with a plugin or theme's use of `register_uninstall_hook`, their development team has to reverse engineer the code to execute any functionality that needs to run.

This is not entirely unique to VIP, but only impacts WordPress environments where the `/wp-content/plugins` and `/wp-content/themes` are `read-only`, so it may not be a good fit for the [WordPress Coding Standards](https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/).

## Describe the solution you'd like

A sniff that will flag places where the [`register_uninstall_hook` function](https://developer.wordpress.org/reference/functions/register_uninstall_hook/) is used. Preferably as an error because it is functionality that will not work.

## What code should be reported as a violation?

```
register_uninstall_hook( __FILE__, 'your_prefix_uninstall' );
```

## What code should *not* be reported as a violation?

I'm unaware of cases where this might be detected as a false positive.

## Additional context

_None applicable_

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par localiser les sniffs et les tests existants de PHP_CodeSniffer pour détecter les appels de fonction, puis utilisez l’exemple register_uninstall_hook de cette issue comme point d’entrée. Le travail est considéré comme terminé lorsque les appels à register_uninstall_hook sont signalés comme des erreurs et qu’aucun cas de faux positif n’a été identifié dans l’issue.

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

Évaluation

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

Recevez les nouvelles issues par e-mail

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