Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
The plugin installed successfully, without throwing any errors or notices
Server metrics [RAM: ▲0.00MB] [CPU: ▼3.94ms] Passed 4 tests
This is a short check of server-side resources used by RelayPay Checkout
Server-side resource usage in normal parameters
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.47 ▲0.00 | 39.29 ▼5.43 |
Dashboard /wp-admin | 3.31 ▲0.00 | 45.60 ▼8.73 |
Posts /wp-admin/edit.php | 3.36 ▲0.00 | 49.64 ▲2.24 |
Add New Post /wp-admin/post-new.php | 5.89 ▲0.00 | 93.22 ▼3.83 |
Media Library /wp-admin/upload.php | 3.24 ▲0.00 | 35.71 ▲4.42 |
Server storage [IO: ▲2.25MB] [DB: ▲0.00MB] Passed 3 tests
Analyzing filesystem and database footprints of this plugin
The plugin installed successfully
Filesystem: 447 new files
Database: no new tables, 6 new options
New WordPress options |
---|
db_upgraded |
widget_theysaidso_widget |
theysaidso_admin_options |
widget_recent-comments |
can_compress_scripts |
widget_recent-posts |
Browser metrics Passed 4 tests
Checking browser requirements for RelayPay Checkout
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,790 ▲3 | 14.25 ▼0.43 | 1.67 ▼0.11 | 43.60 ▼0.10 |
Dashboard /wp-admin | 2,192 ▲15 | 5.59 ▼0.02 | 102.74 ▲16.00 | 41.19 ▲2.24 |
Posts /wp-admin/edit.php | 2,100 ▼0 | 1.96 ▼0.06 | 41.37 ▲2.77 | 35.04 ▼0.04 |
Add New Post /wp-admin/post-new.php | 1,526 ▼0 | 23.11 ▼0.07 | 612.55 ▼23.75 | 58.07 ▲1.09 |
Media Library /wp-admin/upload.php | 1,397 ▼3 | 4.18 ▼0.02 | 99.12 ▼1.15 | 43.50 ▲2.07 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
It is recommended to fix the following
- Zombie WordPress options were found after uninstall: 6 options
- can_compress_scripts
- db_upgraded
- widget_recent-comments
- widget_recent-posts
- theysaidso_admin_options
- widget_theysaidso_widget
Smoke tests 75% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
The smoke test was a success, however most plugin functionality was not tested
SRP 50% from 2 tests
🔹 Tests weight: 20 | It is important to ensure that your PHP files perform no action when accessed directly, respecting the single-responsibility principle
Almost there! Just fix the following items
- 202× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Interface 'RelayPayDeps\\Psr\\Http\\Message\\UploadedFileInterface' not found in wp-content/plugins/relaypay/deps/guzzlehttp/psr7/src/UploadedFile.php:10
- > PHP Fatal error
Uncaught Error: Interface 'RelayPayDeps\\Invoker\\ParameterResolver\\ParameterResolver' not found in wp-content/plugins/relaypay/deps/php-di/invoker/src/ParameterResolver/NumericArrayResolver.php:18
- > PHP Fatal error
Uncaught Error: Class 'RelayPayDeps\\Wpify\\Model\\Exceptions\\ModelException' not found in wp-content/plugins/relaypay/deps/wpify/model/src/Exceptions/SqlException.php:6
- > PHP Parse error
syntax error, unexpected 'private' (T_PRIVATE), expecting variable (T_VARIABLE) in wp-content/plugins/relaypay/src/Api/RelayPayApi.php on line 23
- > PHP Fatal error
Uncaught Error: Class 'RelayPayDeps\\Wpify\\Model\\Exceptions\\ModelException' not found in wp-content/plugins/relaypay/deps/wpify/model/src/Exceptions/PrimaryKeyException.php:6
- > PHP Fatal error
Default value for property of type RelayPayDeps\\Wpify\\Model\\mixed may not be null. Use the nullable type ?RelayPayDeps\\Wpify\\Model\\mixed to allow null default value in wp-content/plugins/relaypay/deps/wpify/model/src/Model.php on line 25
- > PHP Fatal error
Uncaught Error: Interface 'RelayPayDeps\\GuzzleHttp\\Promise\\PromiseInterface' not found in wp-content/plugins/relaypay/deps/guzzlehttp/promises/src/FulfilledPromise.php:12
- > PHP Fatal error
Uncaught Error: Interface 'RelayPayDeps\\Psr\\Http\\Message\\StreamInterface' not found in wp-content/plugins/relaypay/deps/guzzlehttp/psr7/src/MultipartStream.php:13
- > PHP Fatal error
Uncaught Error: Class 'RelayPayDeps\\DI\\Definition\\Helper\\CreateDefinitionHelper' not found in wp-content/plugins/relaypay/config.php:10
- > PHP Fatal error
require_once(): Failed opening required '../vendor/autoload.php' (include_path='.:/usr/share/php') in wp-content/plugins/relaypay/deps/relaypay-official/merchant-php-sdk/Examples/GetTransation.php on line 7
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
No browser errors were detected
Optimizations
Plugin configuration 86% from 29 tests
readme.txt 94% from 16 tests
Often overlooked, readme.txt is one of the most important files in your plugin
Attributes that need to be fixed:
- Tags: Please reduce the number of tags, currently 11 tag instead of maximum 10
relaypay/relaypay.php 77% from 13 tests
The primary PHP file in "RelayPay Checkout" version 2.0.1 is used by WordPress to initiate all plugin functionality
The following require your attention:
- Requires at least: Required version does not match the one declared in readme.txt ("6.0" instead of "6.0.0")
- Domain Path: The domain path is invalid: folder "/languages" does not exist
- Requires PHP: Required version does not match the one declared in readme.txt ("8.0" instead of "8.0.0")
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
Everything looks great! No dangerous files found in this plugin29,349 lines of code in 423 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 356 | 963 | 14,939 | 22,154 |
Markdown | 38 | 1,801 | 0 | 5,101 |
JSON | 22 | 0 | 0 | 1,976 |
Bourne Shell | 1 | 13 | 8 | 31 |
JavaScript | 2 | 5 | 11 | 31 |
XML | 1 | 1 | 0 | 20 |
SVG | 1 | 0 | 0 | 19 |
Dockerfile | 1 | 8 | 0 | 10 |
Bourne Again Shell | 1 | 0 | 0 | 7 |
PHP code 50% from 2 tests
Analyzing logical lines of code, cyclomatic complexity, and other code metrics
Please tend to the following items
- Method cyclomatic complexity should be reduced to less than 100 (currently 179)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.46 |
Average class complexity | 11.94 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 320.00 |
Average method complexity | 2.76 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 179.00 |
Code structure | ||
---|---|---|
Namespaces | 61 | |
Interfaces | 39 | |
Traits | 2 | |
Classes | 275 | |
▷ Abstract classes | 5 | 1.82% |
▷ Concrete classes | 270 | 98.18% |
▷ Final classes | 29 | 10.74% |
Methods | 1,906 | |
▷ Static methods | 266 | 13.96% |
▷ Public methods | 1,670 | 87.62% |
▷ Protected methods | 31 | 1.63% |
▷ Private methods | 205 | 10.76% |
Functions | 234 | |
▷ Named functions | 102 | 43.59% |
▷ Anonymous functions | 132 | 56.41% |
Constants | 267 | |
▷ Global constants | 81 | 30.34% |
▷ Class constants | 186 | 69.66% |
▷ Public constants | 184 | 98.92% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
PNG files should be compressed to save space and minimize bandwidth usage
PNG images were not found in this plugin