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.67MB] [CPU: ▲1.98ms] Passed 4 tests
Analyzing server-side resources used by Essential Widgets
Server-side resource usage in normal parameters
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.20 ▲0.73 | 47.42 ▲7.05 |
Dashboard /wp-admin | 4.00 ▲0.70 | 47.29 ▼5.16 |
Posts /wp-admin/edit.php | 4.05 ▲0.70 | 51.05 ▲1.96 |
Add New Post /wp-admin/post-new.php | 6.56 ▲0.67 | 93.63 ▲4.06 |
Media Library /wp-admin/upload.php | 3.86 ▲0.63 | 39.14 ▲8.15 |
Server storage [IO: ▲0.50MB] [DB: ▲0.07MB] Passed 3 tests
How much does this plugin use your filesystem and database?
There were no storage issued detected upon installing this plugin
Filesystem: 58 new files
Database: no new tables, 13 new options
New WordPress options |
---|
widget_ew-tag |
widget_ew-author |
widget_theysaidso_widget |
can_compress_scripts |
widget_ew-menus |
db_upgraded |
theysaidso_admin_options |
widget_ew-archive |
widget_ew-category |
widget_ew-pages |
... |
Browser metrics Passed 4 tests
This is an overview of browser requirements for Essential Widgets
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,889 ▲127 | 13.77 ▼0.47 | 9.35 ▲7.63 | 42.62 ▼1.68 |
Dashboard /wp-admin | 2,205 ▲31 | 5.63 ▼0.07 | 94.09 ▲3.09 | 44.37 ▼0.97 |
Posts /wp-admin/edit.php | 2,116 ▲19 | 1.95 ▼0.08 | 40.25 ▲4.34 | 35.79 ▲1.38 |
Add New Post /wp-admin/post-new.php | 6,209 ▲4,678 | 19.05 ▼3.99 | 853.90 ▲150.27 | 57.66 ▲2.61 |
Media Library /wp-admin/upload.php | 1,416 ▲16 | 4.25 ▲0.09 | 98.93 ▲0.45 | 41.33 ▼0.59 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.07MB] 75% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
It is recommended to fix the following
- This plugin did not uninstall successfully, leaving 13 options in the database
- widget_ew-archive
- widget_ew-pages
- widget_ew-tag
- widget_ew-menus
- widget_recent-comments
- widget_recent-posts
- widget_ew-category
- db_upgraded
- widget_ew-posts
- widget_ew-author
- ...
Smoke tests 50% 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 0% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle: PHP files have to remain inert when accessed directly, throwing no errors and performing no actions
Please fix the following items
- 1× PHP files output non-empty strings when accessed directly via GET requests:
- > /wp-content/plugins/essential-widgets/public/partials/essential-widgets-public-display.php
- 22× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_html_e() in wp-content/plugins/essential-widgets/admin/partials/sidebar.php:3
- > PHP Fatal error
Uncaught Error: Class 'WP_Widget' not found in wp-content/plugins/essential-widgets/includes/widgets/class-ew-authors.php:14
- > PHP Fatal error
Uncaught Error: Class 'WP_Widget' not found in wp-content/plugins/essential-widgets/includes/widgets/class-ew-posts.php:18
- > PHP Fatal error
Uncaught Error: Call to undefined function essential_widgets_get_options() in wp-content/plugins/essential-widgets/includes/widgets/widgets.php:10
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/essential-widgets/includes/ew-block/index.php:16
- > PHP Fatal error
Uncaught Error: Class 'WP_Widget' not found in wp-content/plugins/essential-widgets/includes/widgets/class-ew-menus.php:18
- > PHP Fatal error
Uncaught Error: Call to undefined function add_shortcode() in wp-content/plugins/essential-widgets/includes/ew-block/blocks/ew-category/index.php:100
- > PHP Fatal error
Uncaught Error: Class 'WP_Widget' not found in wp-content/plugins/essential-widgets/includes/widgets/class-ew-categories.php:14
- > PHP Fatal error
Uncaught Error: Call to undefined function add_shortcode() in wp-content/plugins/essential-widgets/includes/ew-block/blocks/ew-menu/index.php:73
- > PHP Fatal error
Uncaught Error: Call to undefined function add_shortcode() in wp-content/plugins/essential-widgets/includes/ew-block/blocks/ew-author/index.php:80
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
There were no browser issues found
Optimizations
Plugin configuration 96% from 29 tests
readme.txt Passed 16 tests
You should put a lot of thought into formatting readme.txt as it is used by WordPress.org to prepare the public listing of your plugin
5 plugin tags: categories, pages, tags, widgets, posts
essential-widgets/essential-widgets.php 92% from 13 tests
The main file in "Essential Widgets" v. 2.2 serves as a complement to information provided in readme.txt and as the entry point to the plugin
It is important to fix the following:
- Description: The description should be shorter than 140 characters (currently 179 characters long)
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | Executable files are not allowed as they can serve as attack vectors
There were no executable files found in this plugin5,512 lines of code in 44 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 33 | 916 | 1,058 | 3,645 |
CSS | 4 | 251 | 95 | 1,185 |
PO File | 1 | 209 | 362 | 554 |
JavaScript | 6 | 30 | 66 | 128 |
PHP code Passed 2 tests
Cyclomatic complexity and code structure are the fingerprint of this plugin
There are no cyclomatic complexity problems detected for this plugin
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.18 |
Average class complexity | 13.25 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 47.00 |
Average method complexity | 3.61 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 29.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 16 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 16 | 100.00% |
▷ Final classes | 0 | 0.00% |
Methods | 76 | |
▷ Static methods | 3 | 3.95% |
▷ Public methods | 71 | 93.42% |
▷ Protected methods | 0 | 0.00% |
▷ Private methods | 5 | 6.58% |
Functions | 32 | |
▷ Named functions | 28 | 87.50% |
▷ Anonymous functions | 4 | 12.50% |
Constants | 4 | |
▷ Global constants | 4 | 100.00% |
▷ Class constants | 0 | 0.00% |
▷ Public constants | 0 | 0.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
PNG files should be compressed to save space and minimize bandwidth usage
2 PNG files occupy 0.02MB with 0.01MB in potential savings
Potential savings
Compression of 2 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
admin/images/premium-plugin-246x116.png | 9.01KB | 4.16KB | ▼ 53.83% |
admin/images/free-plugin-246x116.png | 8.01KB | 3.81KB | ▼ 52.42% |