Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
Installer ran successfully
Server metrics [RAM: ▲2.19MB] [CPU: ▲17.41ms] Passed 4 tests
An overview of server-side resources used by Events, Calendars & Tickets - Event Kikfyre
This plugin has minimal impact on server resources
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 5.60 ▲2.14 | 63.57 ▲19.69 |
Dashboard /wp-admin | 5.51 ▲2.20 | 74.14 ▲26.47 |
Posts /wp-admin/edit.php | 5.62 ▲2.26 | 72.77 ▲24.39 |
Add New Post /wp-admin/post-new.php | 8.10 ▲2.21 | 107.72 ▼0.92 |
Media Library /wp-admin/upload.php | 5.43 ▲2.20 | 67.06 ▲30.53 |
Frontend /wp-admin/admin.php?page=em_frontend | 5.40 | 55.01 |
Add Performer /wp-admin/admin.php?page=em_performer_add | 5.46 | 59.45 |
Add Event /wp-admin/admin.php?page=em_add | 5.50 | 65.52 |
Analytics /wp-admin/admin.php?page=em_analytics | 5.40 | 55.27 |
Extensions /wp-admin/admin.php?page=em_extensions | 5.40 | 59.30 |
Settings /wp-admin/admin.php?page=em_global_settings | 5.54 | 62.34 |
All Events /wp-admin/admin.php?page=event_magic | 5.42 | 58.72 |
Performers /wp-admin/admin.php?page=em_performers | 5.41 | 54.90 |
Ticket Manager /wp-admin/admin.php?page=em_ticket_template_add | 5.43 | 57.62 |
Add Venue /wp-admin/admin.php?page=em_venue_add | 5.48 | 61.45 |
Server storage [IO: ▲8.30MB] [DB: ▲0.37MB] Passed 3 tests
Analyzing filesystem and database footprints of this plugin
There were no storage issued detected upon installing this plugin
Filesystem: 305 new files
Database: no new tables, 15 new options
New WordPress options |
---|
em_venue_children |
widget_eventm_calendar |
emagic_db_version |
em_event_type_children |
can_compress_scripts |
widget_recent-posts |
widget_recent-comments |
em_global_settings |
widget_theysaidso_widget |
widget_eventm_venue_map |
... |
Browser metrics Passed 4 tests
Checking browser requirements for Events, Calendars & Tickets - Event Kikfyre
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,291 ▲556 | 15.38 ▲0.57 | 14.56 ▲12.73 | 42.71 ▼6.23 |
Dashboard /wp-admin | 2,321 ▲130 | 5.58 ▲0.67 | 125.62 ▲20.85 | 65.01 ▲23.80 |
Posts /wp-admin/edit.php | 2,214 ▲122 | 2.63 ▲0.61 | 46.28 ▲6.33 | 58.24 ▲22.74 |
Add New Post /wp-admin/post-new.php | 1,603 ▲83 | 23.45 ▲0.18 | 667.85 ▲54.83 | 41.84 ▼5.87 |
Media Library /wp-admin/upload.php | 1,886 ▲498 | 5.51 ▲1.34 | 117.38 ▲21.68 | 56.98 ▲15.11 |
Frontend /wp-admin/admin.php?page=em_frontend | 1,208 | 2.43 | 33.39 | 100.71 |
Add Performer /wp-admin/admin.php?page=em_performer_add | 1,954 | 8.58 | 192.98 | 102.48 |
Add Event /wp-admin/admin.php?page=em_add | 4,596 | 9.60 | 290.45 | 120.25 |
Analytics /wp-admin/admin.php?page=em_analytics | 1,204 | 4.77 | 89.93 | 55.16 |
Extensions /wp-admin/admin.php?page=em_extensions | 1,031 | 2.45 | 33.94 | 85.97 |
Settings /wp-admin/admin.php?page=em_global_settings | 4,534 | 12.13 | 375.95 | 138.20 |
All Events /wp-admin/admin.php?page=event_magic | 1,919 | 3.99 | 102.66 | 79.09 |
Performers /wp-admin/admin.php?page=em_performers | 1,163 | 3.43 | 73.51 | 61.80 |
Ticket Manager /wp-admin/admin.php?page=em_ticket_template_add | 1,659 | 5.04 | 90.40 | 83.87 |
Add Venue /wp-admin/admin.php?page=em_venue_add | 2,567 | 8.73 | 189.34 | 65.10 |
Uninstaller [IO: ▲4.84MB] [DB: ▲0.37MB] 75% 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
- The uninstall procedure has failed, leaving 15 options in the database
- em_event_type_children
- emagic_db_version
- widget_recent-comments
- db_upgraded
- widget_theysaidso_widget
- em_venue_children
- widget_eventm_event_countdown
- widget_eventm_slider
- widget_eventm_calendar
- widget_recent-posts
- ...
Smoke tests 0% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | This is a shallow check for server-side errors
These errors were triggered by the plugin
- 6 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=em_frontend
- > Notice in wp-content/plugins/kikfyre-events-calendar-tickets/includes/admin/template/frontend.php+8
Undefined variable: global_options
- 6 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=em_frontend
- > Notice in wp-content/plugins/kikfyre-events-calendar-tickets/includes/admin/template/frontend.php+8
Trying to access array offset on value of type null
- 3 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=em_ticket_template_add
- > POST request to /wp-admin/admin-ajax.php?action=em_load_strings
- > Warning in wp-content/plugins/kikfyre-events-calendar-tickets/includes/service/class-em-ticket.php+36
Creating default object from empty value
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=em_analytics
- > POST request to /wp-admin/admin-ajax.php?action=em_load_strings
- > Warning in wp-content/plugins/kikfyre-events-calendar-tickets/includes/service/class-em-analytics.php+46
Use of undefined constant id - assumed 'id' (this will throw an Error in a future version of PHP)
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=em_analytics
- > POST request to /wp-admin/admin-ajax.php?action=em_load_strings
- > Warning in wp-content/plugins/kikfyre-events-calendar-tickets/includes/service/class-em-analytics.php+46
Use of undefined constant name - assumed 'name' (this will throw an Error in a future version of PHP)
- > GET request to /wp-admin/admin.php?page=em_analytics
- > POST request to /wp-admin/admin-ajax.php?action=em_load_strings
- > Warning in wp-content/plugins/kikfyre-events-calendar-tickets/includes/service/class-em-analytics.php+45
Attempt to assign property 'events' of non-object
- > GET request to /wp-admin/admin.php?page=em_analytics
- > POST request to /wp-admin/admin-ajax.php?action=em_load_strings
- > Warning in wp-content/plugins/kikfyre-events-calendar-tickets/includes/service/class-em-analytics.php+46
Attempt to modify property 'events' of non-object
- > GET request to /wp-admin/admin.php?page=em_analytics
- > POST request to /wp-admin/admin-ajax.php?action=em_load_strings
- > Warning in wp-content/plugins/kikfyre-events-calendar-tickets/includes/service/class-em-analytics.php+47
Attempt to assign property 'event' of non-object
- > GET request to /wp-admin/admin.php?page=em_performers
- > POST request to /wp-admin/admin-ajax.php?action=em_load_strings
- > Notice in wp-content/plugins/kikfyre-events-calendar-tickets/includes/core/class-em-utility.php+170
Undefined property: stdClass::$em_pending
- > GET request to /wp-admin/admin.php?page=em_performers
- > POST request to /wp-admin/admin-ajax.php?action=em_load_strings
- > Notice in wp-content/plugins/kikfyre-events-calendar-tickets/includes/core/class-em-utility.php+170
Undefined property: stdClass::$em_expired
- > GET request to /wp-admin/admin.php?page=em_performers
- > POST request to /wp-admin/admin-ajax.php?action=em_load_strings
- > Notice in wp-content/plugins/kikfyre-events-calendar-tickets/includes/core/class-em-utility.php+170
Undefined property: stdClass::$em_cancelled
- > GET request to /wp-admin/admin.php?page=em_venue_add
- > POST request to /wp-admin/admin-ajax.php?action=em_load_strings
- > Notice in wp-content/plugins/kikfyre-events-calendar-tickets/includes/dao/class-em-venue.php+95
Undefined property: WP_Error::$name
- > GET request to /wp-admin/admin.php?page=em_venue_add
- > POST request to /wp-admin/admin-ajax.php?action=em_load_strings
- > Notice in wp-content/plugins/kikfyre-events-calendar-tickets/includes/dao/class-em-venue.php+96
Undefined property: WP_Error::$slug
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
- 9× PHP files perform the task of outputting text when accessed with GET requests:
- > /wp-content/plugins/kikfyre-events-calendar-tickets/includes/admin/template/analytics.php
- > /wp-content/plugins/kikfyre-events-calendar-tickets/includes/admin/template/event_ticket_templates.php
- > /wp-content/plugins/kikfyre-events-calendar-tickets/includes/lib/tcpdf_min/tools/tcpdf_addfont.php
- > /wp-content/plugins/kikfyre-events-calendar-tickets/includes/admin/template/performer_add.php
- > /wp-content/plugins/kikfyre-events-calendar-tickets/includes/templates/booking_details.php
- > /wp-content/plugins/kikfyre-events-calendar-tickets/includes/admin/template/frontend.php
- > /wp-content/plugins/kikfyre-events-calendar-tickets/includes/admin/template/event_types.php
- > /wp-content/plugins/kikfyre-events-calendar-tickets/includes/admin/template/event_ticket_add.php
- > /wp-content/plugins/kikfyre-events-calendar-tickets/includes/admin/template/performers.php
- 49× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Notice
Undefined variable: global_options in wp-content/plugins/kikfyre-events-calendar-tickets/includes/admin/template/frontend.php on line 7
- > PHP Fatal error
Uncaught Error: Class 'EventM_Array_Model' not found in wp-content/plugins/kikfyre-events-calendar-tickets/includes/models/class-em-event.php:10
- > PHP Notice
Undefined variable: global_options in wp-content/plugins/kikfyre-events-calendar-tickets/includes/admin/template/frontend.php on line 5
- > PHP Notice
Trying to access array offset on value of type null in wp-content/plugins/kikfyre-events-calendar-tickets/includes/admin/template/frontend.php on line 5
- > PHP Fatal error
Uncaught Error: Class 'EventM_UI_Strings' not found in wp-content/plugins/kikfyre-events-calendar-tickets/includes/admin/template/bookings.php:40
- > PHP Fatal error
Uncaught Error: Call to undefined function add_thickbox() in wp-content/plugins/kikfyre-events-calendar-tickets/includes/admin/template/global_settings.php:1
- > PHP Fatal error
Uncaught Error: Call to undefined function event_m_get_param() in wp-content/plugins/kikfyre-events-calendar-tickets/includes/admin/template/child_event.php:35
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/kikfyre-events-calendar-tickets/includes/templates/single-em_event.php:2
- > PHP Notice
Trying to access array offset on value of type null in wp-content/plugins/kikfyre-events-calendar-tickets/includes/admin/template/frontend.php on line 8
- > PHP Fatal error
Uncaught Error: Class 'EventM_Model' not found in wp-content/plugins/kikfyre-events-calendar-tickets/includes/models/class-em-booking.php:3
- > PHP Notice
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
Please take a look at the following user-side issues
- > GET request to /wp-admin/admin.php?page=em_global_settings
- > Network (severe)
wp-admin/%7B%7Bdata.base_path%7D%7Dimages/payment-paypal.png - Failed to load resource: the server responded with a status of 404 (Not Found)
Optimizations
Plugin configuration 93% 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: event registration, event, event widget, events, event calendar
kikfyre-events-calendar-tickets/event-magic.php 85% from 13 tests
The main file in "Events, Calendars & Tickets - Event Kikfyre" v. 2.1.8 serves as a complement to information provided in readme.txt and as the entry point to the plugin
You should first fix the following items:
- Requires at least: The required version number must match the one declared in readme.txt ("3.5" instead of "4.1")
- Main file name: Name the main plugin file the same as the plugin slug ("kikfyre-events-calendar-tickets.php" instead of "event-magic.php")
Code Analysis 95% from 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
Success! There were no dangerous files found in this plugin87,052 lines of code in 187 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 134 | 5,455 | 12,727 | 61,679 |
JSON | 2 | 4 | 0 | 12,201 |
JavaScript | 29 | 1,939 | 1,846 | 8,722 |
CSS | 7 | 594 | 208 | 3,560 |
HTML | 14 | 41 | 43 | 881 |
XML | 1 | 0 | 0 | 9 |
PHP code 0% from 2 tests
Analyzing cyclomatic complexity and code structure
It is recommended to fix the following
- Cyclomatic complexity of classes has to be reduced to less than 1000 (currently 4,349)
- Method cyclomatic complexity has to be reduced to less than 100 (currently 499)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.41 |
Average class complexity | 98.03 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 4,349.00 |
Average method complexity | 6.47 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 499.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 2 | |
Traits | 0 | |
Classes | 77 | |
▷ Abstract classes | 5 | 6.49% |
▷ Concrete classes | 72 | 93.51% |
▷ Final classes | 1 | 1.39% |
Methods | 1,410 | |
▷ Static methods | 154 | 10.92% |
▷ Public methods | 1,092 | 77.45% |
▷ Protected methods | 283 | 20.07% |
▷ Private methods | 35 | 2.48% |
Functions | 55 | |
▷ Named functions | 55 | 100.00% |
▷ Anonymous functions | 0 | 0.00% |
Constants | 128 | |
▷ Global constants | 128 | 100.00% |
▷ Class constants | 0 | 0.00% |
▷ Public constants | 0 | 0.00% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
PNG files should be compressed to save space and minimize bandwidth usage
81 PNG files occupy 1.17MB with 0.52MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
includes/admin/sample/images/sponser-1.png | 136.31KB | 37.73KB | ▼ 72.32% |
includes/admin/sample/images/sponser-2.png | 76.34KB | 23.56KB | ▼ 69.14% |
includes/templates/css/images/loading_background.png | 0.13KB | 0.15KB | 0.00% |
includes/templates/css/images/building_active.png | 0.50KB | 0.50KB | 0.00% |
includes/admin/template/images/next.png | 1.41KB | 0.28KB | ▼ 80.00% |