Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
Install script ran successfully
Server metrics [RAM: ▲4.11MB] [CPU: ▲40.40ms] Passed 4 tests
Analyzing server-side resources used by JoomSport - for Sports: Team & League, Football, Hockey & more
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 7.52 ▲4.06 | 80.57 ▲35.47 |
Dashboard /wp-admin | 7.45 ▲4.11 | 103.19 ▲28.08 |
Posts /wp-admin/edit.php | 7.52 ▲4.16 | 114.33 ▲62.49 |
Add New Post /wp-admin/post-new.php | 10.06 ▲4.17 | 132.84 ▲35.57 |
Media Library /wp-admin/upload.php | 7.34 ▲4.11 | 105.19 ▲64.34 |
Leagues /wp-admin/edit-tags.php?taxonomy=joomsport_tournament&post_type=joomsport_season | 7.37 | 91.34 |
Extra field New /wp-admin/options.php?page=joomsport-extrafields-form | 7.39 | 90.69 |
Event New /wp-admin/options.php?page=joomsport-events-form | 7.38 | 89.96 |
Venues /wp-admin/edit.php?post_type=joomsport_venue | 7.45 | 95.39 |
Matchdays /wp-admin/edit-tags.php?taxonomy=joomsport_matchday&post_type=joomsport_match | 7.36 | 89.81 |
Game stages /wp-admin/admin.php?page=joomsport-page-gamestages | 7.35 | 86.88 |
Game stages New /wp-admin/options.php?page=joomsport-gamestages-form | 7.39 | 90.86 |
Box score stats /wp-admin/admin.php?page=joomsport-page-boxfields | 7.35 | 86.65 |
Import /wp-admin/admin.php?page=joomsport_import | 7.34 | 88.28 |
Help /wp-admin/admin.php?page=joomsport_help | 7.35 | 86.65 |
Server storage [IO: ▲3.53MB] [DB: ▲0.03MB] 67% from 3 tests
Input-output and database impact of this plugin
These are issues you should consider
- There were 1 file (4.00KB) illegally modified outside of "wp-content/plugins/joomsport-sports-league-results-management/" and "wp-content/uploads/"
- (new file) wp-content/mgd_mirror/mgd_maximinodotpy-gitdown-test-repository
Filesystem: 314 new files
Database: 18 new tables, 12 new options
New tables |
---|
wp_joomsport_events_depending |
wp_joomsport_teamstats |
wp_joomsport_box_fields |
wp_joomsport_match_events |
wp_joomsport_maps |
wp_joomsport_seasons |
wp_joomsport_season_table |
wp_joomsport_match_statuses |
wp_joomsport_extra_fields |
wp_joomsport_squad |
... |
New WordPress options |
---|
db_upgraded |
joomsport_flush_rewrite_rules |
theysaidso_admin_options |
widget_wpb_joomsport_standings |
joomsport_recalc_seasons |
widget_recent-comments |
widget_recent-posts |
widget_wpb_joomsport_matches |
widget_wpb_jommsport_players |
can_compress_scripts |
... |
Browser metrics Passed 4 tests
This is an overview of browser requirements for JoomSport - for Sports: Team & League, Football, Hockey & more
Normal browser usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,268 ▲482 | 16.12 ▲1.44 | 5.10 ▲2.99 | 33.97 ▼10.10 |
Dashboard /wp-admin | 2,567 ▲364 | 6.47 ▲0.61 | 145.01 ▲25.02 | 83.98 ▲41.62 |
Posts /wp-admin/edit.php | 2,501 ▲401 | 4.18 ▲2.13 | 69.87 ▲33.31 | 86.60 ▲52.55 |
Add New Post /wp-admin/post-new.php | 1,874 ▲344 | 23.71 ▲2.73 | 704.78 ▲27.03 | 37.96 ▼10.70 |
Media Library /wp-admin/upload.php | 1,573 ▲176 | 5.13 ▲0.87 | 92.53 ▼32.86 | 95.10 ▲44.74 |
Leagues /wp-admin/edit-tags.php?taxonomy=joomsport_tournament&post_type=joomsport_season | 1,558 | 3.71 | 54.21 | 78.98 |
Extra field New /wp-admin/options.php?page=joomsport-extrafields-form | 1,547 | 3.61 | 56.33 | 72.80 |
Event New /wp-admin/options.php?page=joomsport-events-form | 1,374 | 3.83 | 58.75 | 80.05 |
Venues /wp-admin/edit.php?post_type=joomsport_venue | 1,411 | 3.84 | 60.04 | 62.37 |
Matchdays /wp-admin/edit-tags.php?taxonomy=joomsport_matchday&post_type=joomsport_match | 1,680 | 3.92 | 52.76 | 76.90 |
Game stages /wp-admin/admin.php?page=joomsport-page-gamestages | 1,340 | 3.62 | 65.98 | 73.71 |
Game stages New /wp-admin/options.php?page=joomsport-gamestages-form | 1,265 | 3.59 | 53.83 | 66.20 |
Box score stats /wp-admin/admin.php?page=joomsport-page-boxfields | 1,348 | 3.56 | 61.84 | 80.19 |
Import /wp-admin/admin.php?page=joomsport_import | 1,132 | 3.50 | 49.55 | 59.98 |
Help /wp-admin/admin.php?page=joomsport_help | 1,343 | 3.67 | 50.79 | 79.61 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.03MB] 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
- Zombie tables detected upon uninstall: 18 tables
- wp_joomsport_playerlist
- wp_joomsport_extra_fields
- wp_joomsport_season_table
- wp_joomsport_extra_select
- wp_joomsport_seasons
- wp_joomsport_matches
- wp_joomsport_events
- wp_joomsport_match_events
- wp_joomsport_groups
- wp_joomsport_box_match
- ...
- The uninstall procedure has failed, leaving 12 options in the database
- widget_recent-posts
- db_upgraded
- joomsport_recalc_seasons
- widget_recent-comments
- theysaidso_admin_options
- widget_theysaidso_widget
- widget_wpb_jommsport_teamstat
- widget_wpb_joomsport_standings
- joomsport_flush_rewrite_rules
- widget_wpb_joomsport_matches
- ...
Smoke tests 25% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
Even though no errors were found, this is by no means an exhaustive test
SRP 0% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
Please fix the following items
- 4× PHP files perform the action of outputting non-empty strings when accessed directly:
- > /wp-content/plugins/joomsport-sports-league-results-management/sportleague/views/default/widgets/teamstat.php
- > /wp-content/plugins/joomsport-sports-league-results-management/sportleague/views/default/widgets/players.php
- > /wp-content/plugins/joomsport-sports-league-results-management/sportleague/views/default/widgets/standings.php
- > /wp-content/plugins/joomsport-sports-league-results-management/joomsport.php
- 136× PHP files trigger server errors when accessed directly (only 10 are shown):
- > PHP Warning
Use of undefined constant JOOMSPORT_PATH_MODELS - assumed 'JOOMSPORT_PATH_MODELS' (this will throw an Error in a future version of PHP) in wp-content/plugins/joomsport-sports-league-results-management/sportleague/classes/objects/class-jsport-club.php on line 7
- > PHP Warning
Use of undefined constant JOOMSPORT_PATH_SL_HELPERS - assumed 'JOOMSPORT_PATH_SL_HELPERS' (this will throw an Error in a future version of PHP) in wp-content/plugins/joomsport-sports-league-results-management/sportleague/classes/h2h/class_jsport_h2h_all.php on line 3
- > PHP Fatal error
require_once(): Failed opening required 'JOOMSPORT_PATH_SL_HELPERSjs-helper-btw.php' (include_path='.:/usr/share/php') in wp-content/plugins/joomsport-sports-league-results-management/sportleague/classes/h2h/class_jsport_h2h_local.php on line 3
- > PHP Warning
require_once(JOOMSPORT_PATH_SL_HELPERSjs-helper-btw.php): failed to open stream: No such file or directory in wp-content/plugins/joomsport-sports-league-results-management/sportleague/classes/h2h/class_jsport_h2h_all.php on line 3
- > PHP Notice
Undefined variable: res in wp-content/plugins/joomsport-sports-league-results-management/sportleague/views/default/widgets/teamstat.php on line 12
- > PHP Notice
Trying to get property 'opposite' of non-object in wp-content/plugins/joomsport-sports-league-results-management/sportleague/views/default/elements/match_stat/last_matches_reverse.php on line 10
- > PHP Warning
require_once(JOOMSPORT_PATH_MODELSmodel-jsport-clublist.php): failed to open stream: No such file or directory in wp-content/plugins/joomsport-sports-league-results-management/sportleague/classes/objects/class-jsport-clublist.php on line 7
- > PHP Fatal error
require_once(): Failed opening required 'JOOMSPORT_PATH_INCLUDESmoderator/helpers/joomsport-moderate-helper.php' (include_path='.:/usr/share/php') in wp-content/plugins/joomsport-sports-league-results-management/includes/moderator/joomsport-moderate-acl.php on line 2
- > PHP Fatal error
Uncaught Error: Class 'JoomsportModerateHelper' not found in wp-content/plugins/joomsport-sports-league-results-management/sportleague/views/default/moder/team_list.php:3
- > PHP Fatal error
require_once(): Failed opening required 'ABSPATHwp-admin/includes/class-wp-list-table.php' (include_path='.:/usr/share/php') in wp-content/plugins/joomsport-sports-league-results-management/includes/pages/joomsport-page-events.php on line 8
- > PHP Warning
User-side errors 0% from 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
These are user-side errors you should fix
- 3 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=joomsport_help
- > Network (severe)
https://useresponse.com/404 - Failed to load resource: the server responded with a status of 404 ()
Optimizations
Plugin configuration 96% from 29 tests
readme.txt Passed 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
6 plugin tags: hockey, tournament, sports, sports team, league...
joomsport-sports-league-results-management/joomsport.php 92% from 13 tests
This is the main PHP file of "JoomSport - for Sports: Team & League, Football, Hockey & more" version 5.3.0, providing information about the plugin in the header fields and serving as the principal entry point to the plugin's functions
Please take the time to fix the following:
- Main file name: Please rename the main PHP file in this plugin to the plugin slug ("joomsport-sports-league-results-management.php" instead of "joomsport.php")
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is a short overview of programming languages used in this plugin, detecting executable files
Everything looks great! No dangerous files found in this plugin48,491 lines of code in 236 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 187 | 5,149 | 2,175 | 28,155 |
CSS | 22 | 172 | 247 | 14,778 |
JavaScript | 22 | 718 | 248 | 3,886 |
PO File | 1 | 395 | 715 | 834 |
SVG | 2 | 0 | 0 | 808 |
Markdown | 1 | 12 | 0 | 26 |
HTML | 1 | 0 | 0 | 4 |
PHP code Passed 2 tests
An short overview of logical lines of code, cyclomatic complexity, and other code metrics
No complexity issues detected
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.38 |
Average class complexity | 22.70 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 185.00 |
Average method complexity | 4.73 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 82.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 162 | |
▷ Abstract classes | 2 | 1.23% |
▷ Concrete classes | 160 | 98.77% |
▷ Final classes | 0 | 0.00% |
Methods | 952 | |
▷ Static methods | 474 | 49.79% |
▷ Public methods | 884 | 92.86% |
▷ Protected methods | 17 | 1.79% |
▷ Private methods | 51 | 5.36% |
Functions | 38 | |
▷ Named functions | 27 | 71.05% |
▷ Anonymous functions | 11 | 28.95% |
Constants | 45 | |
▷ Global constants | 40 | 88.89% |
▷ Class constants | 5 | 11.11% |
▷ Public constants | 5 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
54 PNG files occupy 0.22MB with 0.15MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/images/reverse_order.png | 3.30KB | 0.70KB | ▼ 78.85% |
sportleague/assets/images/photos_ico_active.png | 1.48KB | 0.75KB | ▼ 49.27% |
sportleague/assets/images/out-raw.png | 3.44KB | 0.87KB | ▼ 74.74% |
sportleague/assets/images/chart_ico_active.png | 1.43KB | 0.73KB | ▼ 49.01% |
sportleague/assets/images/box_inactive.png | 2.89KB | 0.15KB | ▼ 94.93% |