Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
The plugin installed successfully, without throwing any errors or notices
Server metrics [RAM: ▲0.13MB] [CPU: ▲5.71ms] Passed 4 tests
Server-side resources used by Doctor Appointment Booking Plugin - EMSB
This plugin has minimal impact on server resources
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.57 ▲0.11 | 42.91 ▲1.99 |
Dashboard /wp-admin | 3.42 ▲0.12 | 55.57 ▲10.20 |
Posts /wp-admin/edit.php | 3.52 ▲0.16 | 53.86 ▲3.25 |
Add New Post /wp-admin/post-new.php | 6.09 ▲0.21 | 118.57 ▲32.94 |
Media Library /wp-admin/upload.php | 3.35 ▲0.12 | 42.37 ▲7.38 |
Settings /wp-admin/admin.php?page=emsb_admin_settings_page | 3.32 | 36.31 |
Dashboard /wp-admin/admin.php?page=emsb_admin_page | 3.32 | 36.12 |
All Bookings /wp-admin/admin.php?page=emsb_admin_bookings_page | 3.32 | 37.87 |
Add Service /wp-admin/post-new.php?post_type=emsb_service | 3.48 | 80.91 |
All Services /wp-admin/edit.php?post_type=emsb_service | 3.37 | 40.42 |
Server storage [IO: ▲4.91MB] [DB: ▲0.01MB] Passed 3 tests
How much does this plugin use your filesystem and database?
No storage issues were detected
Filesystem: 88 new files
Database: 2 new tables, 6 new options
New tables |
---|
wp_emsb_bookings |
wp_emsb_settings |
New WordPress options |
---|
theysaidso_admin_options |
db_upgraded |
widget_recent-posts |
widget_theysaidso_widget |
widget_recent-comments |
can_compress_scripts |
Browser metrics Passed 4 tests
A check of browser resources used by Doctor Appointment Booking Plugin - EMSB
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,853 ▲1,082 | 15.58 ▲0.83 | 13.78 ▲11.89 | 24.80 ▼20.62 |
Dashboard /wp-admin | 2,579 ▲394 | 5.79 ▼0.09 | 127.01 ▲23.75 | 47.43 ▲7.85 |
Posts /wp-admin/edit.php | 2,458 ▲369 | 2.68 ▲0.67 | 59.94 ▲20.08 | 42.43 ▲6.25 |
Add New Post /wp-admin/post-new.php | 2,021 ▲488 | 24.08 ▲0.85 | 697.31 ▲24.68 | 41.79 ▼8.72 |
Media Library /wp-admin/upload.php | 1,750 ▲365 | 5.11 ▲0.91 | 120.20 ▲18.87 | 59.39 ▲13.07 |
Settings /wp-admin/admin.php?page=emsb_admin_settings_page | 1,431 | 2.47 | 47.00 | 51.97 |
Dashboard /wp-admin/admin.php?page=emsb_admin_page | 1,276 | 2.43 | 49.20 | 42.67 |
All Bookings /wp-admin/admin.php?page=emsb_admin_bookings_page | 1,337 | 2.50 | 45.17 | 38.49 |
Add Service /wp-admin/post-new.php?post_type=emsb_service | 3,172 | 7.49 | 174.87 | 125.05 |
All Services /wp-admin/edit.php?post_type=emsb_service | 1,510 | 2.71 | 45.43 | 39.95 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.01MB] 50% from 4 tests
🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
It is recommended to fix the following
- This plugin does not fully uninstall, leaving 2 tables in the database
- wp_emsb_bookings
- wp_emsb_settings
- This plugin did not uninstall successfully, leaving 6 options in the database
- widget_recent-posts
- db_upgraded
- can_compress_scripts
- widget_recent-comments
- widget_theysaidso_widget
- theysaidso_admin_options
Smoke tests 75% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
Even though everything seems fine, this is not an exhaustive test
SRP 50% from 2 tests
🔹 Tests weight: 20 | A shallow check of the single-responsibility principle; PHP files should perform no action - including output of placeholder text - and trigger no errors when accessed directly
Please fix the following
- 4× PHP files trigger server errors when accessed directly:
- > PHP Fatal error
Uncaught Error: Call to undefined function get_header() in wp-content/plugins/emsb-service-booking/archive-emsb_service.php:2
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/emsb-service-booking/emsb-ajax-calls.php:3
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/emsb-service-booking/emsb-service-booking-admin.php:4
- > PHP Fatal error
Uncaught Error: Call to undefined function get_header() in wp-content/plugins/emsb-service-booking/single-emsb_service.php:2
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
No browser issues were found
Optimizations
Plugin configuration 93% from 29 tests
readme.txt 94% from 16 tests
The readme.txt file describes your plugin functionality and requirements and it is parsed to prepare the your plugin's listing
Please fix the following attributes:
- Tags: Too many tags (30 tag instead of maximum 10); only the first 5 tags are used in your directory listing
emsb-service-booking/emsb-service-booking.php 92% from 13 tests
The primary PHP file in "Doctor Appointment Booking Plugin - EMSB" version 1.2.2 is used by WordPress to initiate all plugin functionality
Please make the necessary changes and fix the following:
- Description: Please don't use more than 140 characters for the plugin description (currently 175 characters long)
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | Executable files are not allowed as they can serve as attack vectors
No dangerous file extensions were detected20,103 lines of code in 42 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
CSS | 11 | 462 | 104 | 6,962 |
SVG | 8 | 0 | 0 | 3,277 |
Stylus | 2 | 7 | 1 | 2,937 |
JavaScript | 8 | 386 | 208 | 2,577 |
PHP | 6 | 439 | 85 | 2,218 |
Sass | 5 | 192 | 0 | 1,811 |
PO File | 1 | 134 | 149 | 320 |
JSON | 1 | 0 | 0 | 1 |
PHP code Passed 2 tests
An overview of cyclomatic complexity and code structure
This plugin has no cyclomatic complexity issues
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.19 |
Average class complexity | 17.20 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 54.00 |
Average method complexity | 3.61 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 29.00 |
Code structure | ||
---|---|---|
Namespaces | 1 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 5 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 5 | 100.00% |
▷ Final classes | 0 | 0.00% |
Methods | 31 | |
▷ Static methods | 12 | 38.71% |
▷ Public methods | 29 | 93.55% |
▷ Protected methods | 2 | 6.45% |
▷ Private methods | 0 | 0.00% |
Functions | 5 | |
▷ Named functions | 5 | 100.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
6 PNG files occupy 0.06MB with 0.02MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/img/service-booking-blue.png | 35.51KB | 13.44KB | ▼ 62.14% |
assets/public/css/chosen-sprite@2x.png.png | 0.50KB | 0.42KB | ▼ 15.37% |
assets/css/chosen-sprite.png | 0.50KB | 0.42KB | ▼ 15.37% |
assets/img/service-booking.png | 27.65KB | 13.37KB | ▼ 51.64% |
assets/public/css/chosen-sprite.png | 0.50KB | 0.42KB | ▼ 15.37% |