Automattic / Automattic/VIP-Coding-Standards
Add check for register_uninstall_hook
- 主要言語
- PHP
- スター
- 261
- フォーク
- 44
- 平均マージ
- 19分
- マージ済み PR(30日)
- 1
説明
## 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_
コントリビューションガイド
調査の方向性
まず、関数呼び出しを検出するための既存の PHP_CodeSniffer の sniffs とテストを見つけ、次にこの issue の register_uninstall_hook の例をエントリーポイントとして使用します。register_uninstall_hook の呼び出しがエラーとして報告され、issue 内で誤検知のケースが特定されていなければ完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- php
- 領域
- tooling
- issue の種類
- 機能追加
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 42/100