Benchmarks
Plugin footprint 40% from 16 tests
Installer 0% from 1 test
🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
These installer errors require your attention
- Install procedure validation failed for this plugin
- > Deprecated in wp-content/plugins/eventify/eventify.php+39
Methods with the same name as their class will not be constructors in a future version of PHP; EventifyLoader has a deprecated constructor
Server metrics [RAM: ▼2.48MB] [CPU: ▼354.98ms] Passed 4 tests
Server-side resources used by Eventify™ - Simple Events
Server-side resource usage in normal parameters
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 1.89 ▼1.63 | 5.21 ▼46.92 |
Dashboard /wp-admin | 1.91 ▼1.50 | 3.38 ▼31.48 |
Posts /wp-admin/edit.php | 1.91 ▼1.73 | 5.68 ▼70.49 |
Add New Post /wp-admin/post-new.php | 1.91 ▼5.06 | 11.47 ▼1,271.01 |
Media Library /wp-admin/upload.php | 1.91 ▼1.39 | 3.48 ▼20.68 |
Eventify /wp-admin/options-general.php?page=eventify/php/eventify.class.php | 1.91 | 5.02 |
Server storage [IO: ▲0.98MB] [DB: ▲0.00MB] Passed 3 tests
Filesystem and database footprint
No storage issues were detected
Filesystem: 39 new files
Database: 1 new table, 3 new options
New tables |
---|
wp_em_main |
New WordPress options |
---|
widget_eventify-addevent-widget |
widget_eventify-widget |
category_children |
Browser metrics Passed 4 tests
An overview of browser requirements for Eventify™ - Simple Events
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,939 ▲195 | 16.81 ▲1.13 | 13.02 ▲7.10 | 2.33 ▲0.05 |
Dashboard /wp-admin | 2,899 ▲48 | 6.12 ▼0.03 | 120.54 ▼15.18 | 183.46 ▲17.92 |
Posts /wp-admin/edit.php | 2,712 ▲21 | 3.36 ▼0.00 | 62.51 ▼3.61 | 147.83 ▲2.80 |
Add New Post /wp-admin/post-new.php | 1,759 ▲124 | 21.93 ▲5.67 | 446.54 ▼31.64 | 174.79 ▲21.30 |
Media Library /wp-admin/upload.php | 1,706 ▲5 | 5.53 ▼0.01 | 151.60 ▲3.48 | 212.45 ▲25.57 |
Eventify /wp-admin/options-general.php?page=eventify/php/eventify.class.php | 4,331 | 3.45 | 64.68 | 208.95 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 50% from 4 tests
🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
Please fix the following items
- Uninstall procedure had uncaught errors
- > Deprecated in wp-content/plugins/eventify/eventify.php+39
Methods with the same name as their class will not be constructors in a future version of PHP; EventifyLoader has a deprecated constructor
- Zombie WordPress options detected upon uninstall: 3 options
- category_children
- widget_eventify-widget
- widget_eventify-addevent-widget
Smoke tests 0% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | A smoke test targeting server-side errors
Almost there, just fix the following server-side errors
- > GET request to /wp-admin/options-general.php?page=eventify/php/eventify.class.php
- > Deprecated in wp-content/plugins/eventify/eventify.php+39
Methods with the same name as their class will not be constructors in a future version of PHP; EventifyLoader has a deprecated constructor
- > GET request to /wp-admin/options-general.php?page=eventify/php/eventify.class.php
- > Deprecated in wp-content/plugins/eventify/php/eventify.class.php+6
Methods with the same name as their class will not be constructors in a future version of PHP; eventify has a deprecated constructor
- > GET request to /wp-admin/options-general.php?page=eventify/php/eventify.class.php
- > Deprecated in wp-content/plugins/eventify/php/eventify.widget.php+3
Methods with the same name as their class will not be constructors in a future version of PHP; eventifywidget has a deprecated constructor
- > GET request to /wp-admin/options-general.php?page=eventify/php/eventify.class.php
- > Deprecated in wp-content/plugins/eventify/php/eventify.addevent.widget.php+3
Methods with the same name as their class will not be constructors in a future version of PHP; eventifyaddeventwidget has a deprecated constructor
- 2 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=eventify/php/eventify.class.php
- > User deprecated in wp-includes/functions.php+5409
The called constructor method for WP_Widget in eventifywidget is deprecated since version 4.3.0! Use __construct() instead.
- 2 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=eventify/php/eventify.class.php
- > User deprecated in wp-includes/functions.php+5409
The called constructor method for WP_Widget in eventifyaddeventwidget is deprecated since version 4.3.0! Use __construct() instead.
- 2 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=eventify/php/eventify.class.php
- > User deprecated in wp-includes/functions.php+5600
has_cap was called with an argument that is deprecated since version 2.0.0! Usage of user levels is deprecated. Use capabilities instead.
SRP 0% 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
The following issues need your attention
- 2× PHP files perform the task of outputting text when accessed with GET requests:
- > /wp-content/plugins/eventify/php/ajax/fetcheventdetails.php
- > /wp-content/plugins/eventify/php/emfetch.php
- 5× PHP files trigger errors when accessed directly with GET requests:
- > PHP Warning
require_once(WP_PLUGIN_DIR/eventify/php/eventify.class.php): failed to open stream: No such file or directory in wp-content/plugins/eventify/eventify.php on line 35
- > PHP Fatal error
Uncaught Error: Class 'WP_Widget' not found in wp-content/plugins/eventify/php/eventify.addevent.widget.php:3
- > PHP Fatal error
require_once(): Failed opening required 'WP_PLUGIN_DIR/eventify/php/eventify.class.php' (include_path='.:/usr/share/php') in wp-content/plugins/eventify/eventify.php on line 35
- > 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/eventify/eventify.php on line 35
- > PHP Fatal error
Uncaught Error: Class 'WP_Widget' not found in wp-content/plugins/eventify/php/eventify.widget.php:3
- > PHP Warning
User-side errors 0% from 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
Please fix the following user-side errors
- > GET request to /wp-admin/options-general.php?page=eventify/php/eventify.class.php
- > Console-api (warning) in unknown
/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=5.9.2 1:31592 "jQuery.Deferred exception: Cannot read properties of undefined (reading 'opera')" "TypeError: Cannot read properties of undefined (reading 'opera')\n at new jQuery._timePicker (/wp-content/plugins/eventify/js/jquery.timepicker.js?ver=5.9.2:117:33)\n at Function.jQuery.timePicker (/wp-content/plugins/eventify/js/jquery.timepicker.js?ver=5.9.2:27:44)\n at HTMLInputElement.\u003Canonymous> (/wp-content/plugins/eventify/js/jquery.timepicker.js?ver=5.9.2:21:14)\n at Function.each (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=5.9.2:2:3003)\n at s.fn.init.each (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=5.9.2:2:1481)\n at s.fn.init.jQuery.fn.timePicker (/wp-content/plugins/eventify/js/jquery.timepicker.js?ver=5.9.2:20:17)\n at HTMLDocument.\u003Canonymous> (/wp-admin/options-general.php?page=eventify%2Fphp%2Feventify.class.php:215:28)\n at e (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=5.9.2:2:30038)\n at t (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=5.9.2:2:30340)" undefined
- > GET request to /wp-admin/options-general.php?page=eventify/php/eventify.class.php
- > Console-api (warning) in unknown
/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=5.9.2 1:31592 "jQuery.Deferred exception: Cannot read properties of undefined (reading 'msie')" "TypeError: Cannot read properties of undefined (reading 'msie')\n at HTMLUListElement.setup (eval at \u003Canonymous> (/wp-content/plugins/eventify/js/jquery.validate.pack.js?ver=5.9.2:15:1), \u003Canonymous>:1:20230)\n at Object.add (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=5.9.2:2:41478)\n at Object.s.event.add (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=5.9.2:5:7886)\n at HTMLUListElement.\u003Canonymous> (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=5.9.2:2:40109)\n at Function.each (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=5.9.2:2:3003)\n at s.fn.init.each (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=5.9.2:2:1481)\n at Ee (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=5.9.2:2:40085)\n at s.fn.init.on (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=5.9.2:2:46578)\n at HTMLDocument.\u003Canonymous> (/wp-admin/js/common.min.js?ver=5.9.2:2:12527)\n at e (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=5.9.2:2:30038)" undefined
- > GET request to /wp-admin/options-general.php?page=eventify/php/eventify.class.php
- > Javascript (severe) in unknown
/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=5.9.2 1:31702 Uncaught TypeError: Cannot read properties of undefined (reading 'opera')
- > GET request to /wp-admin/options-general.php?page=eventify/php/eventify.class.php
- > Javascript (severe) in unknown
/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=5.9.2 1:31702 Uncaught TypeError: Cannot read properties of undefined (reading 'msie')
Optimizations
Plugin configuration 90% from 29 tests
readme.txt 88% from 16 tests
The readme.txt file is important because it is parsed by WordPress.org for the public listing of your plugin
Please fix the following attributes:
- Tags: Please reduce the number of tags, currently 13 tag instead of maximum 10
- Screenshots: Screenshot #1 (screenshot-3.png) image required
eventify/eventify.php 92% from 13 tests
The principal PHP file in "Eventify™ - Simple Events" v. 2.1 is loaded by WordPress automatically on each request
Please take the time to fix the following:
- Description: If Twitter did it, so should we! Keep the description under 140 characters (currently 954 characters long)
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | Executable files are not allowed as they can serve as attack vectors
Everything looks great! No dangerous files found in this plugin5,707 lines of code in 18 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 7 | 512 | 389 | 3,360 |
JavaScript | 8 | 399 | 438 | 1,842 |
CSS | 3 | 156 | 53 | 505 |
PHP code 50% from 2 tests
This plugin's cyclomatic complexity and code structure detailed below
Please tend to the following items
- Cyclomatic complexity of methods has to be reduced to less than 100 (currently 467)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.83 |
Average class complexity | 250.40 |
▷ Minimum class complexity | 15.00 |
▷ Maximum class complexity | 540.00 |
Average method complexity | 29.33 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 467.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 | 44 | |
▷ Static methods | 0 | 0.00% |
▷ Public methods | 44 | 100.00% |
▷ Protected methods | 0 | 0.00% |
▷ Private methods | 0 | 0.00% |
Functions | 0 | |
▷ Named functions | 0 | 0.00% |
▷ Anonymous functions | 0 | 0.00% |
Constants | 0 | |
▷ Global constants | 0 | 0.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
17 PNG files occupy 0.43MB with 0.22MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
css/images/ui-bg_flat_0_aaaaaa_40x100.png | 0.18KB | 0.08KB | ▼ 51.67% |
screenshot-4.png | 75.19KB | 75.18KB | 0.01% |
screenshot-3.png | 146.13KB | 24.77KB | ▼ 83.05% |
css/images/ui-bg_flat_75_ffffff_40x100.png | 0.17KB | 0.08KB | ▼ 51.12% |
screenshot-1.png | 97.30KB | 30.84KB | ▼ 68.31% |