78% acychecker

Code Review | Anti Spam and list cleaner - AcyChecker

WordPress plugin Anti Spam and list cleaner - AcyChecker scored 78% from 54 tests.

About plugin

  • Plugin page: acychecker
  • Plugin version: 1.1.4
  • PHP compatiblity: 5.6.0+
  • PHP version: 7.4.16
  • WordPress compatibility: 4.7-5.9
  • WordPress version: 5.9.2
  • First release: Nov 12, 2021
  • Latest release: Mar 21, 2022
  • Number of updates: 13
  • Update frequency: every 10.6 days
  • Top authors: acyba (100%)

Code review

54 tests

User reviews

2 reviews

Install metrics

100+ active / 792 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | The install procedure must perform silently
Installer ran successfully

Server metrics [RAM: ▲0.40MB] [CPU: ▼284.13ms] Passed 4 tests

A check of server-side resources used by Anti Spam and list cleaner - AcyChecker
This plugin has minimal impact on server resources
PageMemory (MB)CPU Time (ms)
Home /3.94 ▲0.4259.45 ▲9.73
Dashboard /wp-admin3.80 ▲0.3935.95 ▲3.11
Posts /wp-admin/edit.php4.09 ▲0.4445.37 ▲7.07
Add New Post /wp-admin/post-new.php7.32 ▲0.3497.03 ▼1,151.47
Media Library /wp-admin/upload.php3.75 ▲0.4529.30 ▲4.77
Block on registration /wp-admin/admin.php?page=acychecker_registration3.8126.54
Tests /wp-admin/admin.php?page=acychecker_tests3.8827.29
Clean my database /wp-admin/admin.php?page=acychecker_configuration3.8225.44
AcyChecker /wp-admin/admin.php?page=acychecker_dashboard3.8526.85

Server storage [IO: ▲1.19MB] [DB: ▲0.01MB] Passed 3 tests

Filesystem and database footprint
The plugin installed successfully
Filesystem: 103 new files
Database: 4 new tables, no new options
New tables
wp_acyc_test
wp_acyc_global_stat
wp_acyc_block_history
wp_acyc_configuration

Browser metrics Passed 4 tests

A check of browser resources used by Anti Spam and list cleaner - AcyChecker
There were no issues detected in relation to browser resource usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,852 ▲11015.81 ▲0.065.44 ▼0.522.22 ▲0.19
Dashboard /wp-admin2,982 ▲1216.13 ▼0.07123.08 ▼10.81158.35 ▲0.03
Posts /wp-admin/edit.php2,774 ▲833.26 ▲0.0264.16 ▼0.92141.14 ▼4.09
Add New Post /wp-admin/post-new.php1,736 ▲7520.93 ▲4.12431.75 ▲18.68161.61 ▲8.74
Media Library /wp-admin/upload.php1,788 ▲905.53 ▼0.01139.46 ▼1.45188.63 ▲5.66
Block on registration /wp-admin/admin.php?page=acychecker_registration1,7202.6354.58159.50
Tests /wp-admin/admin.php?page=acychecker_tests1,7322.6654.85194.12
Clean my database /wp-admin/admin.php?page=acychecker_configuration1,9393.3270.84212.71
AcyChecker /wp-admin/admin.php?page=acychecker_dashboard2,2895.17168.17235.87

Uninstaller [IO: ▲0.00MB] [DB: ▲0.01MB] 75% from 4 tests

🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
Please fix the following items
  • The uninstall procedure failed, leaving 4 tables in the database
    • wp_acyc_global_stat
    • wp_acyc_block_history
    • wp_acyc_test
    • wp_acyc_configuration

Smoke tests 50% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | A smoke test targeting server-side errors
Please fix the following server-side errors
  • 8 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=acychecker_dashboard
    • > Warning in wp-content/plugins/acychecker/cms/cmsServices/Miscellaneous.php+52
    session_start(): Cannot start session when headers already sent

SRP 50% from 2 tests

🔹 Tests weight: 20 | SRP (Single-Responsibility Principle) - PHP files must act as libraries and never output text or perform any action when accessed directly in a browser
Please fix the following
  • 51× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'AcyChecker\\Libraries\\AcycController' not found in wp-content/plugins/acychecker/src/Controllers/DashboardController.php:19
    • > PHP Warning
      Use of undefined constant DS - assumed 'DS' (this will throw an Error in a future version of PHP) in wp-content/plugins/acychecker/defines_cms.php on line 20
    • > PHP Fatal error
      Uncaught Error: Class 'AcyChecker\\Libraries\\AcycObject' not found in wp-content/plugins/acychecker/src/Libraries/AcycView.php:16
    • > PHP Fatal error
      Uncaught Error: Call to undefined function __() in wp-content/plugins/acychecker/src/Views/Tests/listing.php:17
    • > PHP Warning
      Use of undefined constant DS - assumed 'DS' (this will throw an Error in a future version of PHP) in wp-content/plugins/acychecker/defines_cms.php on line 29
    • > PHP Warning
      Use of undefined constant WP_PLUGIN_DIR - assumed 'WP_PLUGIN_DIR' (this will throw an Error in a future version of PHP) in wp-content/plugins/acychecker/defines_cms.php on line 21
    • > PHP Fatal error
      Uncaught Error: Class 'AcyChecker\\Libraries\\AcycController' not found in wp-content/plugins/acychecker/src/Controllers/CallbackController.php:12
    • > PHP Fatal error
      Uncaught Error: Class 'AcyChecker\\Libraries\\AcycClass' not found in wp-content/plugins/acychecker/src/Classes/Acymailing5ListClass.php:8
    • > PHP Warning
      Use of undefined constant DS - assumed 'DS' (this will throw an Error in a future version of PHP) in wp-content/plugins/acychecker/defines_cms.php on line 26
    • > PHP Fatal error
      Uncaught Error: Using $this when not in object context in wp-content/plugins/acychecker/src/Views/Dashboard/default.php:9

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
Everything seems fine on the user side

Optimizations

Plugin configuration 97% from 29 tests

readme.txt 94% from 16 tests

The readme.txt file uses markdown syntax to describe your plugin to the world
These attributes need your attention:
  • Screenshots: Please add descriptions for these screenshots #1, #2, #3, #4 in acychecker/assets to your readme.txt
You can look at the official readme.txt

acychecker/acychecker.php Passed 13 tests

The main PHP file in "Anti Spam and list cleaner - AcyChecker" ver. 1.1.4 adds more information about the plugin and also serves as the entry point for this plugin
75 characters long description:
Check the email addresses of your site and block them if they do not exists

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | A short glimpse at programming languages used with this plugin and a check that no dangerous files are present
Good job! No executable or dangerous file extensions detected10,664 lines of code in 93 files:
LanguageFilesBlank linesComment linesLines of code
PHP681,2323185,146
JavaScript161,2503414,715
SVG3502698
JSON10060
SQL13841
CSS4004

PHP code Passed 2 tests

This plugin's cyclomatic complexity and code structure detailed below
No cyclomatic complexity issues were detected for this plugin
Cyclomatic complexity
Average complexity per logical line of code0.35
Average class complexity12.67
▷ Minimum class complexity1.00
▷ Maximum class complexity44.00
Average method complexity3.20
▷ Minimum method complexity1.00
▷ Maximum method complexity23.00
Code structure
Namespaces6
Interfaces0
Traits0
Classes57
▷ Abstract classes00.00%
▷ Concrete classes57100.00%
▷ Final classes00.00%
Methods304
▷ Static methods11036.18%
▷ Public methods24781.25%
▷ Protected methods41.32%
▷ Private methods5317.43%
Functions3
▷ Named functions133.33%
▷ Anonymous functions266.67%
Constants62
▷ Global constants3861.29%
▷ Class constants2438.71%
▷ Public constants24100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

Using a strong compression for your PNG files is a great way to speed-up your plugin
1 compressed PNG file occupies 0.03MB
Potential savings
Compression of 1 random PNG file using pngquant
FileSize - originalSize - compressedSavings
assets/images/icons/logo_acyc.png31.43KB33.09KB0.00%