Automattic / Automattic/VIP-Coding-Standards

Add check for register_uninstall_hook

Đang mở
#716 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
Standard: VIP-Go Type: Enhancement
Ngôn ngữ chính
PHP
Star
261
Fork
44
Merge trung bình
19 phút
Pull request đã merge (30 ngày)
1

Mô tả

## 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_

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu bằng cách tìm các sniff và bài kiểm thử hiện có của PHP_CodeSniffer để phát hiện các lệnh gọi hàm, sau đó sử dụng ví dụ register_uninstall_hook trong issue này làm điểm bắt đầu. Công việc được xem là hoàn tất khi các lệnh gọi đến register_uninstall_hook được báo cáo là lỗi và không có trường hợp dương tính giả nào được xác định trong issue.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
php
Lĩnh vực
tooling
Loại issue
Tính năng
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
42/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.