Benchmarks
Plugin footprint 64% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
Install script ran successfully
Server metrics [RAM: ▲9.69MB] [CPU: ▲57.59ms] 50% from 4 tests
This is a short check of server-side resources used by Pinpoint Booking System - #1 WordPress Booking Plugin
Please have a look at the following items
- RAM: The total memory usage must be kept under 10MB (currently 14.27MB on /wp-admin/admin.php?page=dopbsp-fees)
- Extra RAM: The extra memory usage should kept under 5MB (currently 9.69MB on /wp-admin/admin.php?page=dopbsp-fees)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 12.19 ▲8.73 | 94.67 ▲53.75 |
Dashboard /wp-admin | 13.73 ▲10.39 | 111.46 ▲50.31 |
Posts /wp-admin/edit.php | 13.73 ▲10.37 | 113.12 ▲65.09 |
Add New Post /wp-admin/post-new.php | 15.16 ▲9.27 | 160.49 ▲65.92 |
Media Library /wp-admin/upload.php | 13.73 ▲10.50 | 96.14 ▲61.20 |
Discounts /wp-admin/admin.php?page=dopbsp-discounts | 14.26 | 116.08 |
Locations /wp-admin/admin.php?page=dopbsp-locations | 14.26 | 108.08 |
Email templates /wp-admin/admin.php?page=dopbsp-emails | 14.26 | 108.13 |
Translation /wp-admin/admin.php?page=dopbsp-translation | 14.26 | 111.18 |
Extras /wp-admin/admin.php?page=dopbsp-extras | 14.26 | 119.11 |
Search only in PRO /wp-admin/admin.php?page=dopbsp-pro | 14.26 | 99.44 |
Rules /wp-admin/admin.php?page=dopbsp-rules | 14.26 | 116.89 |
Reservations /wp-admin/admin.php?page=dopbsp-reservations | 14.26 | 118.03 |
SMS templates /wp-admin/admin.php?page=dopbsp-smses | 14.27 | 108.08 |
Taxes & fees /wp-admin/admin.php?page=dopbsp-fees | 14.27 | 110.22 |
Server storage [IO: ▲9.24MB] [DB: ▲0.31MB] Passed 3 tests
How much does this plugin use your filesystem and database?
The plugin installed successfully
Filesystem: 894 new files
Database: 33 new tables, 42 new options
New tables |
---|
wp_dopbsp_availability |
wp_dopbsp_forms_fields |
wp_dopbsp_settings_calendar |
wp_dopbsp_reservations |
wp_dopbsp_extras_groups |
wp_dopbsp_days |
wp_dopbsp_forms |
wp_dopbsp_fees |
wp_dopbsp_discounts_items_rules |
wp_dopbsp_settings_search |
... |
New WordPress options |
---|
DOPBSP_db_version_extras_groups_items |
DOPBSP_db_version_availability_price |
DOPBSP_db_version_emails |
DOPBSP_db_version_extras |
DOPBSP_db_version_calendars |
widget_recent-comments |
DOPBSP_db_version_smses |
DOPBSP_db_version_searches |
DOPBSP_db_version_smses_translation |
DOPBSP_request_rating |
... |
Browser metrics 75% from 4 tests
An overview of browser requirements for Pinpoint Booking System - #1 WordPress Booking Plugin
Having an awesome user experience is important, so please improve the following
- Nodes: Limit the number of DOM nodes under 25,000 (currently 37,769 on /wp-admin/admin.php?page=dopbsp-translation)
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,032 ▲281 | 13.49 ▼1.27 | 13.47 ▲11.77 | 37.73 ▼7.69 |
Dashboard /wp-admin | 2,287 ▲109 | 5.64 ▼0.07 | 94.68 ▼21.85 | 43.24 ▼1.50 |
Posts /wp-admin/edit.php | 2,192 ▲92 | 1.99 ▼0.03 | 39.64 ▲1.95 | 34.15 ▼2.69 |
Add New Post /wp-admin/post-new.php | 1,600 ▲74 | 21.14 ▼1.87 | 648.92 ▼33.33 | 47.24 ▼11.22 |
Media Library /wp-admin/upload.php | 1,489 ▲92 | 4.24 ▲0.04 | 94.30 ▼4.89 | 43.66 ▼0.30 |
Discounts /wp-admin/admin.php?page=dopbsp-discounts | 1,352 | 3.60 | 105.05 | 79.69 |
Locations /wp-admin/admin.php?page=dopbsp-locations | 1,384 | 4.04 | 115.64 | 43.67 |
Email templates /wp-admin/admin.php?page=dopbsp-emails | 1,362 | 3.48 | 60.64 | 44.12 |
Translation /wp-admin/admin.php?page=dopbsp-translation | 37,769 | 2.84 | 105.50 | 273.41 |
Extras /wp-admin/admin.php?page=dopbsp-extras | 1,362 | 3.73 | 57.63 | 41.42 |
Search only in PRO /wp-admin/admin.php?page=dopbsp-pro | 2,180 | 3.87 | 55.41 | 80.10 |
Rules /wp-admin/admin.php?page=dopbsp-rules | 1,343 | 3.39 | 62.72 | 46.84 |
Reservations /wp-admin/admin.php?page=dopbsp-reservations | 2,572 | 3.82 | 79.92 | 54.35 |
SMS templates /wp-admin/admin.php?page=dopbsp-smses | 1,356 | 3.40 | 63.89 | 43.39 |
Taxes & fees /wp-admin/admin.php?page=dopbsp-fees | 1,344 | 3.60 | 63.90 | 47.84 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.31MB] 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 were found after uninstall: 33 tables
- wp_dopbsp_settings_calendar
- wp_dopbsp_emails
- wp_dopbsp_searches
- wp_dopbsp_availability
- wp_dopbsp_availability_no
- wp_dopbsp_coupons
- wp_dopbsp_api_keys
- wp_dopbsp_settings_search
- wp_dopbsp_models
- wp_dopbsp_fees
- ...
- This plugin does not fully uninstall, leaving 42 options in the database
- DOPBSP_db_version_emails_translation
- DOPBSP_db_version
- DOPBSP_db_version_smses_translation
- DOPBSP_db_version_rules
- DOPBSP_request_rating
- DOPBSP_db_version_calendars
- DOPBSP_db_version_forms_fields
- DOPBSP_db_version_settings_search
- DOPBSP_db_version_fees
- DOPBSP_db_version_availability_no
- ...
Smoke tests 75% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
Good news, no errors were detected
SRP 50% 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
The following issues need your attention
- 371× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'DOPBSPBackEndLanguages' not found in wp-content/plugins/booking-system/includes/languages/class-backend-language.php:16
- > PHP Fatal error
Uncaught Error: Interface 'Monolog\\Formatter\\FormatterInterface' not found in wp-content/plugins/booking-system/application/libraries/google/vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php:19
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Handler\\AbstractProcessingHandler' not found in wp-content/plugins/booking-system/application/libraries/google/vendor/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php:22
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Handler\\AbstractSyslogHandler' not found in wp-content/plugins/booking-system/application/libraries/google/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php:29
- > PHP Fatal error
Uncaught Error: Class 'Google_Model' not found in wp-content/plugins/booking-system/application/libraries/google/vendor/google/apiclient-services/src/Google/Service/Calendar/EventAttachment.php:18
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Handler\\AbstractProcessingHandler' not found in wp-content/plugins/booking-system/application/libraries/google/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:24
- > PHP Fatal error
Uncaught Error: Interface 'Monolog\\Processor\\ProcessorInterface' not found in wp-content/plugins/booking-system/application/libraries/google/vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php:27
- > PHP Fatal error
Uncaught Error: Interface 'Monolog\\Processor\\ProcessorInterface' not found in wp-content/plugins/booking-system/application/libraries/google/vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.php:19
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Handler\\AbstractProcessingHandler' not found in wp-content/plugins/booking-system/application/libraries/google/vendor/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php:27
- > PHP Fatal error
Uncaught Error: Class 'GuzzleHttp\\Exception\\TransferException' not found in wp-content/plugins/booking-system/application/libraries/google/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:12
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
There were no browser issues found
Optimizations
Plugin configuration 93% from 29 tests
readme.txt Passed 16 tests
The readme.txt file is important because it is parsed by WordPress.org for the public listing of your plugin
5 plugin tags: availability calendar, appointments, reservations, booking system, booking calendar
booking-system/dopbs.php 85% from 13 tests
The entry point to "Pinpoint Booking System - #1 WordPress Booking Plugin" version 2.9.9.4.3 is a PHP file that has certain tags in its header comment area
You should first fix the following items:
- Main file name: Name the main plugin file the same as the plugin slug ("booking-system.php" instead of "dopbs.php")
- Description: Please don't use more than 140 characters for the plugin description (currently 390 characters long)
Code Analysis 97% 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
Everything looks great! No dangerous files found in this plugin135,575 lines of code in 831 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 663 | 15,738 | 58,742 | 95,323 |
JavaScript | 88 | 3,984 | 8,587 | 22,538 |
CSS | 27 | 1,995 | 1,828 | 11,585 |
Markdown | 31 | 1,440 | 0 | 4,447 |
JSON | 16 | 0 | 0 | 1,544 |
SVG | 1 | 0 | 0 | 65 |
YAML | 2 | 6 | 0 | 43 |
XML | 1 | 0 | 0 | 11 |
Dockerfile | 1 | 8 | 0 | 10 |
make | 1 | 4 | 0 | 9 |
PHP code 50% from 2 tests
An short overview of logical lines of code, cyclomatic complexity, and other code metrics
Please fix the following
- Method cyclomatic complexity has to be reduced to less than 100 (currently 119)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.33 |
Average class complexity | 18.17 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 632.00 |
Average method complexity | 3.52 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 119.00 |
Code structure | ||
---|---|---|
Namespaces | 39 | |
Interfaces | 33 | |
Traits | 9 | |
Classes | 566 | |
▷ Abstract classes | 10 | 1.77% |
▷ Concrete classes | 556 | 98.23% |
▷ Final classes | 17 | 3.06% |
Methods | 4,212 | |
▷ Static methods | 236 | 5.60% |
▷ Public methods | 3,717 | 88.25% |
▷ Protected methods | 210 | 4.99% |
▷ Private methods | 285 | 6.77% |
Functions | 233 | |
▷ Named functions | 110 | 47.21% |
▷ Anonymous functions | 123 | 52.79% |
Constants | 520 | |
▷ Global constants | 134 | 25.77% |
▷ Class constants | 386 | 74.23% |
▷ Public constants | 366 | 94.82% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Using a strong compression for your PNG files is a great way to speed-up your plugin
32 PNG files occupy 0.18MB with 0.13MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/gui/images/marker.png | 2.32KB | 1.35KB | ▼ 42.02% |
templates/default/images/sprite.png | 7.09KB | 3.13KB | ▼ 55.83% |
assets/gui/images/line-green-middle-retina.png | 1.91KB | 0.41KB | ▼ 78.62% |
assets/gui/images/line-blue-top.png | 3.24KB | 0.42KB | ▼ 87.14% |
assets/gui/images/line-green-middle.png | 3.01KB | 0.20KB | ▼ 93.42% |