Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
Installer ran successfully
Server metrics [RAM: ▲0.11MB] [CPU: ▼0.86ms] Passed 4 tests
Server-side resources used by SFX Exchange rates
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.57 ▲0.11 | 43.90 ▲2.97 |
Dashboard /wp-admin | 3.42 ▲0.12 | 49.40 ▲1.83 |
Posts /wp-admin/edit.php | 3.53 ▲0.18 | 77.57 ▲25.68 |
Add New Post /wp-admin/post-new.php | 6.00 ▲0.11 | 83.74 ▼12.36 |
Media Library /wp-admin/upload.php | 3.32 ▲0.09 | 36.11 ▲4.14 |
/wp-admin/admin.php?page=process_admin | 3.15 | 24.77 |
Server storage [IO: ▲0.98MB] [DB: ▲0.00MB] Passed 3 tests
A short overview of filesystem and database impact
This plugin was installed successfully
Filesystem: 61 new files
Database: no new tables, 7 new options
New WordPress options |
---|
theysaidso_admin_options |
db_upgraded |
widget_sfxexchangerates_widget |
widget_recent-posts |
widget_recent-comments |
widget_theysaidso_widget |
can_compress_scripts |
Browser metrics Passed 4 tests
An overview of browser requirements for SFX Exchange rates
This plugin renders optimally with no browser resource issues detected
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,100 ▲354 | 15.60 ▲0.98 | 8.04 ▲5.45 | 38.85 ▼7.83 |
Dashboard /wp-admin | 2,365 ▲177 | 6.83 ▲0.79 | 142.47 ▲42.01 | 83.40 ▲47.75 |
Posts /wp-admin/edit.php | 2,286 ▲197 | 3.63 ▲1.59 | 65.42 ▲26.31 | 77.19 ▲41.65 |
Add New Post /wp-admin/post-new.php | 1,543 ▲1 | 23.26 ▲4.98 | 650.04 ▲9.19 | 159.56 ▲102.76 |
Media Library /wp-admin/upload.php | 1,422 ▲34 | 4.41 ▲0.22 | 88.49 ▼16.45 | 69.32 ▲24.24 |
/wp-admin/admin.php?page=process_admin | 8 | 0.44 | 0.08 | 0.13 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
These items require your attention
- The uninstall procedure has failed, leaving 7 options in the database
- widget_theysaidso_widget
- can_compress_scripts
- theysaidso_admin_options
- widget_recent-comments
- db_upgraded
- widget_recent-posts
- widget_sfxexchangerates_widget
Smoke tests 75% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for server-side errors
Good news, no errors were detected
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
Please fix the following
- 10× PHP files trigger server-side errors or warnings when accessed directly:
- > PHP Fatal error
Uncaught Error: Call to undefined function is_admin() in wp-content/plugins/sfx-exchange-rates/core/cons.php:4
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/sfx-exchange-rates/controller/admin.php:13
- > PHP Fatal error
Uncaught Error: Call to undefined function register_activation_hook() in wp-content/plugins/sfx-exchange-rates/classes/virtualpage.php:8
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/sfx-exchange-rates/controller/front.php:5
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/sfx-exchange-rates/core/menus.php:3
- > PHP Warning
Use of undefined constant sfxexchangerates_plugin_id - assumed 'sfxexchangerates_plugin_id' (this will throw an Error in a future version of PHP) in wp-content/plugins/sfx-exchange-rates/core/configs.php on line 10
- > PHP Fatal error
Uncaught Error: Call to undefined function __() in wp-content/plugins/sfx-exchange-rates/views/admin/index.php:1
- > PHP Warning
Use of undefined constant sfxexchangerates_images_url - assumed 'sfxexchangerates_images_url' (this will throw an Error in a future version of PHP) in wp-content/plugins/sfx-exchange-rates/core/configs.php on line 12
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/sfx-exchange-rates/widgets/sfxplugin.php:3
- > PHP Fatal error
Uncaught Error: Call to undefined function is_admin() in wp-content/plugins/sfx-exchange-rates/core/cons.php:4
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
There were no browser issues found
Optimizations
Plugin configuration 97% from 29 tests
readme.txt 94% from 16 tests
Don't ignore readme.txt as it is the file that instructs WordPress.org on how to present your plugin to the world
Attributes that require attention:
- Plugin Name: Please replace "Plugin Name" with the name of your plugin on the first line (
=== sfx-exchange-rates ===
)
sfx-exchange-rates/sfx-exchange-rates.php Passed 13 tests
"SFX Exchange rates" version 1.0's main PHP file describes plugin functionality and also serves as the entry point to any WordPress functionality
26 characters long description:
SFX Google Exchange rates.
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short review of files and their extensions; it is not recommended to include executable files
There were no executable files found in this plugin24,519 lines of code in 36 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
JavaScript | 14 | 4,438 | 2,819 | 22,049 |
PHP | 19 | 644 | 473 | 2,289 |
CSS | 2 | 66 | 11 | 131 |
PO File | 1 | 14 | 15 | 50 |
PHP code Passed 2 tests
A short review of cyclomatic complexity and code structure
Although this was not an exhaustive test, there were no cyclomatic complexity issues detected
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.50 |
Average class complexity | 83.60 |
▷ Minimum class complexity | 7.00 |
▷ Maximum class complexity | 249.00 |
Average method complexity | 5.05 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 66.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 5 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 5 | 100.00% |
▷ Final classes | 0 | 0.00% |
Methods | 102 | |
▷ Static methods | 1 | 0.98% |
▷ Public methods | 87 | 85.29% |
▷ Protected methods | 15 | 14.71% |
▷ Private methods | 0 | 0.00% |
Functions | 30 | |
▷ Named functions | 18 | 60.00% |
▷ Anonymous functions | 12 | 40.00% |
Constants | 48 | |
▷ Global constants | 48 | 100.00% |
▷ Class constants | 0 | 0.00% |
▷ Public constants | 0 | 0.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
3 compressed PNG files occupy 0.00MB
Potential savings
Compression of 3 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
common/images/setting.png | 0.51KB | 0.43KB | ▼ 14.94% |
common/images/icon.png | 0.32KB | 0.27KB | ▼ 15.74% |
common/images/icon-black.png | 0.29KB | 0.27KB | ▼ 9.60% |