Benchmarks
Plugin footprint 39% from 16 tests
Installer 0% from 1 test
🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
You still need to fix the following installer errors
- This plugin did not install gracefully
- > Notice in wp-content/plugins/mobile-dj-manager/includes/install.php+683
Undefined index: type
Server metrics [RAM: ▲7.99MB] [CPU: ▲64.02ms] 25% from 4 tests
Analyzing server-side resources used by MDJM Event Management
The following require your attention
- RAM: Try to keep total memory usage under 10MB (currently 11.97MB on /wp-admin/post-new.php?post_type=mdjm-event)
- CPU: Try to keep total CPU usage under 500.00ms (currently 2,975.64ms on /wp-admin/edit.php?post_type=mdjm-event&page=mdjm-addons)
- Extra RAM: Extra memory usage should kept under 5MB (currently 7.99MB on /wp-admin/post-new.php?post_type=mdjm-event)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 9.54 ▲6.08 | 86.85 ▲49.83 |
Dashboard /wp-admin | 11.97 ▲8.67 | 200.03 ▲151.35 |
Posts /wp-admin/edit.php | 12.06 ▲8.70 | 127.49 ▲76.83 |
Add New Post /wp-admin/post-new.php | 14.52 ▲8.63 | 150.92 ▲57.13 |
Media Library /wp-admin/upload.php | 11.81 ▲8.58 | 106.22 ▲72.28 |
Enquiry Sources /wp-admin/edit-tags.php?taxonomy=enquiry-source&post_type=mdjm-event | 11.82 | 105.51 |
MDJM Upgrades /wp-admin/admin.php?page=mdjm-upgrades | 11.78 | 95.15 |
All Events /wp-admin/edit.php?post_type=mdjm-event | 11.97 | 101.74 |
All Transactions /wp-admin/edit.php?post_type=mdjm-transaction | 11.94 | 102.95 |
Automated Tasks /wp-admin/edit.php?post_type=mdjm-event&page=mdjm-tasks | 11.86 | 99.27 |
All Templates /wp-admin/edit.php?post_type=email_template | 12.04 | 108.63 |
Custom Client Fields /wp-admin/admin.php?page=mdjm-custom-client-fields | 11.78 | 90.04 |
Event Types /wp-admin/edit-tags.php?taxonomy=event-types&post_type=mdjm-event | 11.84 | 108.72 |
Extensions /wp-admin/edit.php?post_type=mdjm-event&page=mdjm-addons | 12.55 | 2,975.64 |
Create Event /wp-admin/post-new.php?post_type=mdjm-event | 11.97 | 129.95 |
Server storage [IO: ▲11.74MB] [DB: ▲0.15MB] Passed 3 tests
Input-output and database impact of this plugin
This plugin installed successfully
Filesystem: 731 new files
Database: 2 new tables, 18 new options
New tables |
---|
wp_mdjm_availabilitymeta |
wp_mdjm_availability |
New WordPress options |
---|
mdjm_settings |
transaction-types_children |
mdjm_client_fields |
widget_recent-posts |
event-types_children |
theysaidso_admin_options |
can_compress_scripts |
venue-details_children |
mdjm_version |
playlist-category_children |
... |
Browser metrics Passed 4 tests
Checking browser requirements for MDJM Event Management
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,747 ▲985 | 13.83 ▼0.54 | 10.29 ▲8.70 | 37.60 ▼4.06 |
Dashboard /wp-admin | 2,862 ▲682 | 5.85 ▲0.21 | 103.18 ▲7.75 | 88.42 ▲46.20 |
Posts /wp-admin/edit.php | 2,597 ▲497 | 2.50 ▲0.49 | 43.79 ▲2.25 | 36.59 ▲0.68 |
Add New Post /wp-admin/post-new.php | 1,694 ▲168 | 18.31 ▼5.40 | 623.05 ▲24.05 | 32.39 ▼20.93 |
Media Library /wp-admin/upload.php | 1,937 ▲540 | 4.45 ▲0.36 | 101.45 ▼0.31 | 90.30 ▲44.20 |
Enquiry Sources /wp-admin/edit-tags.php?taxonomy=enquiry-source&post_type=mdjm-event | 2,115 | 2.07 | 37.68 | 48.15 |
MDJM Upgrades /wp-admin/admin.php?page=mdjm-upgrades | 1,270 | 2.29 | 38.51 | 27.85 |
All Events /wp-admin/edit.php?post_type=mdjm-event | 1,661 | 2.47 | 38.62 | 32.62 |
All Transactions /wp-admin/edit.php?post_type=mdjm-transaction | 1,695 | 2.36 | 37.87 | 31.38 |
Automated Tasks /wp-admin/edit.php?post_type=mdjm-event&page=mdjm-tasks | 1,600 | 1.92 | 35.62 | 32.61 |
All Templates /wp-admin/edit.php?post_type=email_template | 2,644 | 2.54 | 46.86 | 35.88 |
Custom Client Fields /wp-admin/admin.php?page=mdjm-custom-client-fields | 1,645 | 2.39 | 39.65 | 29.54 |
Event Types /wp-admin/edit-tags.php?taxonomy=event-types&post_type=mdjm-event | 2,749 | 2.24 | 38.80 | 44.42 |
Extensions /wp-admin/edit.php?post_type=mdjm-event&page=mdjm-addons | 1,646 | 2.08 | 33.63 | 59.03 |
Create Event /wp-admin/post-new.php?post_type=mdjm-event | 4,246 | 3.10 | 78.25 | 78.10 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.15MB] 50% from 4 tests
🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
You still need to fix the following
- Zombie tables were found after uninstall: 2 tables
- wp_mdjm_availability
- wp_mdjm_availabilitymeta
- Zombie WordPress options were found after uninstall: 18 options
- widget_recent-comments
- can_compress_scripts
- db_upgraded
- widget_theysaidso_widget
- venue-details_children
- theysaidso_admin_options
- event-types_children
- playlist-category_children
- mdjm_schedules
- wp_mdjm_availability_db_version
- ...
Smoke tests 0% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
Smoke test failed, please fix the following
- 2 occurences, only the last one shown
- > GET request to /wp-admin/post-new.php?post_type=mdjm-event
- > Notice in wp-content/plugins/mobile-dj-manager/includes/travel-functions.php+290
Undefined variable: event
SRP 0% 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
- 14× GET requests to PHP files return non-empty strings (only 10 are shown):
- > /wp-content/plugins/mobile-dj-manager/includes/admin/users/class-mdjm-users.php
- > /wp-content/plugins/mobile-dj-manager/includes/admin/communications/comms.php
- > /wp-content/plugins/mobile-dj-manager/includes/admin/templates/contracts.php
- > /wp-content/plugins/mobile-dj-manager/includes/admin/users/class-mdjm-client-manager.php
- > /wp-content/plugins/mobile-dj-manager/includes/admin/events/quotes.php
- > /wp-content/plugins/mobile-dj-manager/includes/admin/roles/class-mdjm-permissions.php
- > /wp-content/plugins/mobile-dj-manager/includes/admin/users/class-mdjm-employee-manager.php
- > /wp-content/plugins/mobile-dj-manager/includes/admin/transactions/txns.php
- > /wp-content/plugins/mobile-dj-manager/assets/libs/phpqrcode/index.php
- > /wp-content/plugins/mobile-dj-manager/includes/admin/roles/class-mdjm-roles.php
- 28× PHP files trigger server errors when accessed directly (only 10 are shown):
- > PHP Warning
require_once(MDJM_PLUGIN_DIR/includes/admin/settings/register-settings.php): failed to open stream: No such file or directory in wp-content/plugins/mobile-dj-manager/templates/payments/payments-items.php on line 14
- > PHP Fatal error
Uncaught Error: Call to undefined function add_filter() in wp-content/plugins/mobile-dj-manager/includes/admin/transactions/taxonomies.php:32
- > PHP Warning
require(MDJM_PLUGIN_DIR/includes/venue-functions.php): failed to open stream: No such file or directory in wp-content/plugins/mobile-dj-manager/includes/travel-functions.php on line 11
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_html_e() in wp-content/plugins/mobile-dj-manager/templates/event/event-none.php:17
- > PHP Fatal error
Uncaught Error: Call to undefined function __() in wp-content/plugins/mobile-dj-manager/templates/playlist/playlist-noevent.php:14
- > PHP Fatal error
Uncaught Error: Call to undefined function is_user_logged_in() in wp-content/plugins/mobile-dj-manager/templates/login/login-form.php:15
- > PHP Fatal error
Uncaught Error: Call to undefined function __() in wp-content/plugins/mobile-dj-manager/templates/quote/quote-noevent.php:18
- > PHP Fatal error
Uncaught Error: Call to undefined function mdjm_get_option() in wp-content/plugins/mobile-dj-manager/templates/payments/payments-cc.php:15
- > PHP Fatal error
Uncaught Error: Call to undefined function do_action() in wp-content/plugins/mobile-dj-manager/templates/availability/availability-vertical.php:19
- > PHP Fatal error
Uncaught Error: Call to undefined function do_action() in wp-content/plugins/mobile-dj-manager/templates/event/event-loop.php:17
- > PHP Warning
User-side errors 0% from 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
There are user-side issues you should fix
- > GET request to /wp-admin/admin.php?page=mdjm-upgrades
- > Network (severe)
wp-admin/index.php?page=mdjm-about - Failed to load resource: the server responded with a status of 403 (Forbidden)
Optimizations
Plugin configuration 97% from 29 tests
readme.txt 94% from 16 tests
The readme.txt file is important because it is parsed by WordPress.org for the public listing of your plugin
These attributes need your attention:
- Tags: You are using too many tags: 26 tag instead of maximum 10
mobile-dj-manager/mobile-dj-manager.php Passed 13 tests
The main PHP script in "MDJM Event Management" version 1.7.2 is automatically included on every request by WordPress
72 characters long description:
The flexible event management solution for WordPress - not just for DJs!
Code Analysis 5% from 3 tests
File types 0% from 1 test
🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
Almost there! Just fix the following issues
- Even if your plugin relies on executable files (for example a companion app), never distribute executable files with your plugin
- .bat - Batch File in Windows
- ☣ wp-content/plugins/mobile-dj-manager/assets/libs/phpqrcode/tools/merge.bat
- .bat - Batch File in Windows
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 187 | 12,770 | 18,841 | 49,564 |
JavaScript | 29 | 2,759 | 4,021 | 46,514 |
CSS | 31 | 893 | 1,093 | 13,197 |
PO File | 2 | 4,304 | 5,588 | 11,412 |
SVG | 1 | 0 | 0 | 2,671 |
Markdown | 1 | 11 | 0 | 25 |
Bourne Shell | 1 | 0 | 0 | 2 |
DOS Batch | 1 | 0 | 0 | 2 |
PHP code Passed 2 tests
This is a very shot 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.37 |
Average class complexity | 32.78 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 292.00 |
Average method complexity | 3.94 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 46.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 95 | |
▷ Abstract classes | 1 | 1.05% |
▷ Concrete classes | 94 | 98.95% |
▷ Final classes | 0 | 0.00% |
Methods | 1,026 | |
▷ Static methods | 143 | 13.94% |
▷ Public methods | 875 | 85.28% |
▷ Protected methods | 107 | 10.43% |
▷ Private methods | 44 | 4.29% |
Functions | 1,044 | |
▷ Named functions | 1,038 | 99.43% |
▷ Anonymous functions | 6 | 0.57% |
Constants | 112 | |
▷ Global constants | 111 | 99.11% |
▷ Class constants | 1 | 0.89% |
▷ Public constants | 1 | 100.00% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
All PNG images should be compressed to minimize bandwidth usage for end users
81 PNG files occupy 1.53MB with 0.25MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/libs/phpqrcode/cache/frame_17.png | 0.21KB | 0.19KB | ▼ 6.64% |
assets/libs/phpqrcode/cache/frame_8.png | 0.20KB | 0.19KB | ▼ 2.45% |
assets/libs/phpqrcode/cache/frame_32.png | 0.26KB | 0.25KB | ▼ 4.20% |
assets/images/screenshots/13-employee-list.png | 38.81KB | 14.02KB | ▼ 63.87% |
assets/libs/phpqrcode/cache/frame_16.png | 0.21KB | 0.20KB | ▼ 4.74% |