Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
Install script ran successfully
Server metrics [RAM: ▲1.82MB] [CPU: ▲20.17ms] Passed 4 tests
A check of server-side resources used by Booking for Appointments and Events Calendar - Amelia
This plugin has minimal impact on server resources
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 5.26 ▲1.80 | 69.68 ▲24.59 |
Dashboard /wp-admin | 5.19 ▲1.89 | 64.85 ▲16.23 |
Posts /wp-admin/edit.php | 5.19 ▲1.84 | 62.94 ▲19.47 |
Add New Post /wp-admin/post-new.php | 12.48 ▲6.60 | 168.95 ▲71.97 |
Media Library /wp-admin/upload.php | 4.99 ▲1.76 | 54.81 ▲20.39 |
Custom Fields /wp-admin/admin.php?page=wpamelia-cf | 5.23 | 375.21 |
Notifications /wp-admin/admin.php?page=wpamelia-notifications | 5.23 | 298.95 |
Appointments /wp-admin/admin.php?page=wpamelia-appointments | 5.24 | 297.55 |
Customers /wp-admin/admin.php?page=wpamelia-customers | 5.22 | 287.94 |
Dashboard /wp-admin/admin.php?page=wpamelia-dashboard | 5.24 | 312.11 |
Locations /wp-admin/admin.php?page=wpamelia-locations | 5.21 | 309.37 |
Events /wp-admin/admin.php?page=wpamelia-events | 5.27 | 308.58 |
Calendar /wp-admin/admin.php?page=wpamelia-calendar | 5.23 | 482.13 |
Finance /wp-admin/admin.php?page=wpamelia-finance | 5.22 | 287.12 |
Services /wp-admin/admin.php?page=wpamelia-services | 5.27 | 291.23 |
Server storage [IO: ▲182.13MB] [DB: ▲0.10MB] 67% from 3 tests
Analyzing filesystem and database footprints of this plugin
It is recommended to fix the following issues
- The filesystem usage should be lower than 25MB (currently using 182.13MB)
Filesystem: 6,410 new files
Database: 55 new tables, 7 new options
New tables |
---|
wp_amelia_services_views |
wp_amelia_packages |
wp_amelia_providers_to_google_calendar |
wp_amelia_customer_bookings_to_events_periods |
wp_amelia_providers_to_locations |
wp_amelia_events_tags |
wp_amelia_appointments |
wp_amelia_providers_views |
wp_amelia_providers_to_periods |
wp_amelia_coupons_to_events |
... |
New WordPress options |
---|
theysaidso_admin_options |
widget_theysaidso_widget |
can_compress_scripts |
widget_recent-posts |
widget_recent-comments |
db_upgraded |
amelia_settings |
Browser metrics Passed 4 tests
This is an overview of browser requirements for Booking for Appointments and Events Calendar - Amelia
This plugin renders optimally with no browser resource issues detected
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,924 ▲162 | 14.46 ▲0.09 | 1.81 ▼0.00 | 27.68 ▼16.50 |
Dashboard /wp-admin | 2,311 ▲134 | 5.55 ▼0.07 | 94.37 ▲4.51 | 79.36 ▲39.92 |
Posts /wp-admin/edit.php | 2,219 ▲116 | 2.01 ▲0.06 | 44.68 ▲8.69 | 38.45 ▲0.39 |
Add New Post /wp-admin/post-new.php | 6,315 ▲4,778 | 18.96 ▼4.51 | 1,097.79 ▲393.51 | 40.84 ▼13.11 |
Media Library /wp-admin/upload.php | 1,519 ▲122 | 4.23 ▲0.08 | 95.19 ▼8.46 | 81.97 ▲38.00 |
Custom Fields /wp-admin/admin.php?page=wpamelia-cf | 1,729 | 9.44 | 195.11 | 87.10 |
Notifications /wp-admin/admin.php?page=wpamelia-notifications | 3,147 | 11.70 | 175.97 | 119.08 |
Appointments /wp-admin/admin.php?page=wpamelia-appointments | 1,622 | 8.03 | 100.42 | 86.85 |
Customers /wp-admin/admin.php?page=wpamelia-customers | 1,999 | 9.18 | 94.01 | 44.15 |
Dashboard /wp-admin/admin.php?page=wpamelia-dashboard | 2,042 | 10.41 | 154.59 | 68.01 |
Locations /wp-admin/admin.php?page=wpamelia-locations | 1,947 | 9.22 | 85.46 | 57.14 |
Events /wp-admin/admin.php?page=wpamelia-events | 1,702 | 10.43 | 88.01 | 43.85 |
Calendar /wp-admin/admin.php?page=wpamelia-calendar | 2,759 | 18.66 | 91.66 | 88.66 |
Finance /wp-admin/admin.php?page=wpamelia-finance | 2,011 | 8.69 | 91.97 | 50.25 |
Services /wp-admin/admin.php?page=wpamelia-services | 1,731 | 10.09 | 91.90 | 44.25 |
Uninstaller [IO: ▲1.77MB] [DB: ▲0.10MB] 50% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
These items require your attention
- This plugin does not fully uninstall, leaving 55 tables in the database
- wp_amelia_providers_to_timeouts
- wp_amelia_notifications_to_entities
- wp_amelia_providers_to_specialdays_periods_location
- wp_amelia_customer_bookings_to_extras
- wp_amelia_custom_fields_events
- wp_amelia_services_views
- wp_amelia_customer_bookings
- wp_amelia_providers_to_daysoff
- wp_amelia_categories
- wp_amelia_appointments
- ...
- The uninstall procedure has failed, leaving 7 options in the database
- widget_theysaidso_widget
- widget_recent-comments
- amelia_settings
- db_upgraded
- widget_recent-posts
- theysaidso_admin_options
- can_compress_scripts
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)
These errors were triggered by the plugin
- > GET request to /wp-admin/admin.php?page=wpamelia-services
- > POST request to /wp-admin/admin-ajax.php?action=wpamelia_api&call=/users/providers&ameliaNonce=65d208e7af
- > Notice in wp-content/plugins/ameliabooking/src/Application/Services/User/ProviderApplicationService.php+322
Undefined index: externalId
SRP 0% from 2 tests
🔹 Tests weight: 20 | SRP (Single-Responsibility Principle) - PHP files must act as libraries and never output text or perform any action when accessed directly in a browser
Please fix the following items
- 30× PHP files output text when accessed directly (only 10 are shown):
- > /wp-content/plugins/ameliabooking/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/with_cookie_and_session.php
- > /wp-content/plugins/ameliabooking/src/Infrastructure/ContainerConfig/application.services.php
- > /wp-content/plugins/ameliabooking/src/Infrastructure/ContainerConfig/infrastructure.user.php
- > /wp-content/plugins/ameliabooking/vendor/stripe/stripe-php/build.php
- > /wp-content/plugins/ameliabooking/src/Infrastructure/ContainerConfig/command.bus.php
- > /wp-content/plugins/ameliabooking/view/backend/view.php
- > /wp-content/plugins/ameliabooking/vendor/symfony/http-foundation/Tests/Fixtures/response-functional/invalid_cookie_name.php
- > /wp-content/plugins/ameliabooking/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/storage.php
- > /wp-content/plugins/ameliabooking/vendor/symfony/http-foundation/Tests/Fixtures/response-functional/cookie_samesite_strict.php
- > /wp-content/plugins/ameliabooking/src/Infrastructure/ContainerConfig/domain.event.bus.php
- 2610× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Microsoft\\Graph\\Core\\Enum' not found in wp-content/plugins/ameliabooking/vendor/microsoft/microsoft-graph/src/Model/DeviceManagementExchangeAccessStateReason.php:29
- > PHP Fatal error
Uncaught Error: Class 'Microsoft\\Graph\\Core\\Enum' not found in wp-content/plugins/ameliabooking/vendor/microsoft/microsoft-graph/src/Model/RatingCanadaMoviesType.php:29
- > PHP Fatal error
Uncaught Error: Class 'AmeliaStripe\\Service\\AbstractService' not found in wp-content/plugins/ameliabooking/vendor/stripe/stripe-php/lib/Service/FileService.php:7
- > PHP Fatal error
Uncaught Error: Class 'Microsoft\\Graph\\Model\\Entity' not found in wp-content/plugins/ameliabooking/vendor/microsoft/microsoft-graph/src/Model/EducationClass.php:27
- > PHP Fatal error
Uncaught Error: Class 'AmeliaStripe\\Service\\AbstractService' not found in wp-content/plugins/ameliabooking/vendor/stripe/stripe-php/lib/Service/PaymentIntentService.php:7
- > PHP Fatal error
Uncaught Error: Class 'Omnipay\\PayPal\\Message\\RestResponse' not found in wp-content/plugins/ameliabooking/vendor/omnipay/paypal/src/Message/RestAuthorizeResponse.php:13
- > PHP Fatal error
Uncaught Error: Class 'PHPUnit\\Framework\\TestCase' not found in wp-content/plugins/ameliabooking/vendor/microsoft/microsoft-graph/tests/Functional/WebhooksTest.php:6
- > PHP Fatal error
Uncaught Error: Class 'AmeliaBooking\\Infrastructure\\Repository\\AbstractRepository' not found in wp-content/plugins/ameliabooking/src/Infrastructure/Repository/Bookable/Service/PackageCustomerServiceRepository.php:22
- > PHP Fatal error
Uncaught Error: Class 'Microsoft\\Graph\\Core\\Enum' not found in wp-content/plugins/ameliabooking/vendor/microsoft/microsoft-graph/src/Model/MobileAppContentFileUploadState.php:29
- > PHP Fatal error
Uncaught Error: Class 'Omnipay\\Mollie\\Message\\Response\\AbstractMollieResponse' not found in wp-content/plugins/ameliabooking/vendor/omnipay/mollie/src/Message/Response/RevokeCustomerMandateResponse.php:8
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
There are user-side issues you should fix
- 3 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=wpamelia-services
- > Console-api (warning) in wp-content/plugins/ameliabooking/public/js/chunks/amelia-booking-services-c2f27f531c55883118ec.js+0:338566
Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props
- > GET request to /wp-admin/admin.php?page=wpamelia-notifications
- > Deprecation (warning) in unknown
/wp-content/plugins/ameliabooking/public/js/chunks/amelia-booking-notifications-c2f27f531c55883118ec.js 0 Listener added for a synchronous 'DOMNodeInserted' DOM Mutation Event. This event type is deprecated (https://w3c.github.io/uievents/#legacy-event-types) and work is underway to remove it from this browser. Usage of this event listener will cause performance issues today, and represents a risk of future incompatibility. Consider using MutationObserver instead.
- > GET request to /wp-admin/admin.php?page=wpamelia-dashboard
- > Console-api (warning) in wp-content/plugins/ameliabooking/public/js/chunks/amelia-booking-dashboard-c2f27f531c55883118ec.js+0:385408
bar chart: \"scales.[x/y]Axes.barThickness\" is deprecated. Please use \"dataset.barThickness\" instead
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=wpamelia-dashboard
- > Console-api (warning) in wp-content/plugins/ameliabooking/public/js/chunks/amelia-booking-dashboard-c2f27f531c55883118ec.js+0:385408
bar chart: \"scales.[x/y]Axes.barPercentage\" is deprecated. Please use \"dataset.barPercentage\" instead
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=wpamelia-dashboard
- > Console-api (warning) in wp-content/plugins/ameliabooking/public/js/chunks/amelia-booking-dashboard-c2f27f531c55883118ec.js+0:385408
bar chart: \"scales.[x/y]Axes.categoryPercentage\" is deprecated. Please use \"dataset.categoryPercentage\" instead
Optimizations
Plugin configuration 93% from 29 tests
readme.txt 94% from 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
These attributes need to be fixed:
- Tags: Too many tags (13 tag instead of maximum 10); only the first 5 tags are used in your directory listing
ameliabooking/ameliabooking.php 92% from 13 tests
"Booking for Appointments and Events Calendar - Amelia" version 1.0.91's primary PHP file adds more information about the plugin and serves as the entry point for WordPress
It is important to fix the following:
- Description: Keep the plugin description shorter than 140 characters (currently 157 characters long)
Code Analysis 3% from 3 tests
File types 0% from 1 test
🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
Please fix the following items
- Do not distribute dangerous files with your plugin
- .crt - Security Certificate in Firefox, IE, Chrome, Safari
- ☣ wp-content/plugins/ameliabooking/vendor/stripe/stripe-php/data/ca-certificates.crt
- .xlsm - Excel Macro-Enabled Workbook in Microsoft Excel
- ☣ wp-content/plugins/ameliabooking/vendor/symfony/http-foundation/Tests/File/Fixtures/case-sensitive-mime-type.xlsm
- .crt - Security Certificate in Firefox, IE, Chrome, Safari
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 3,461 | 52,428 | 174,496 | 263,960 |
Vuejs Component | 412 | 15,750 | 6,132 | 112,618 |
PO File | 33 | 63,865 | 110,736 | 86,755 |
JavaScript | 393 | 8,068 | 678 | 46,392 |
LESS | 47 | 6,409 | 771 | 32,087 |
JSON | 61 | 1 | 0 | 31,195 |
Markdown | 107 | 5,613 | 0 | 18,252 |
Sass | 14 | 267 | 31 | 7,559 |
CSS | 51 | 101 | 791 | 5,845 |
SVG | 252 | 2 | 62 | 4,175 |
XML | 17 | 65 | 50 | 2,727 |
C | 1 | 188 | 47 | 879 |
YAML | 23 | 90 | 19 | 538 |
C/C++ Header | 2 | 40 | 46 | 132 |
reStructuredText | 1 | 94 | 135 | 97 |
Bourne Shell | 1 | 20 | 34 | 92 |
Pascal | 2 | 41 | 74 | 79 |
m4 | 1 | 11 | 11 | 41 |
make | 2 | 14 | 0 | 38 |
HTML | 1 | 0 | 0 | 14 |
Dockerfile | 1 | 8 | 0 | 10 |
INI | 1 | 0 | 1 | 6 |
PHP code 50% from 2 tests
Cyclomatic complexity and code structure are the fingerprint of this plugin
Please tend to the following items
- Cyclomatic complexity of methods has to be reduced to less than 100 (currently 191)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.32 |
Average class complexity | 8.36 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 515.00 |
Average method complexity | 2.21 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 191.00 |
Code structure | ||
---|---|---|
Namespaces | 441 | |
Interfaces | 157 | |
Traits | 33 | |
Classes | 3,170 | |
▷ Abstract classes | 70 | 2.21% |
▷ Concrete classes | 3,100 | 97.79% |
▷ Final classes | 347 | 11.19% |
Methods | 20,570 | |
▷ Static methods | 1,587 | 7.72% |
▷ Public methods | 18,937 | 92.06% |
▷ Protected methods | 915 | 4.45% |
▷ Private methods | 718 | 3.49% |
Functions | 717 | |
▷ Named functions | 148 | 20.64% |
▷ Anonymous functions | 569 | 79.36% |
Constants | 3,266 | |
▷ Global constants | 91 | 2.79% |
▷ Class constants | 3,175 | 97.21% |
▷ Public constants | 3,175 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
All PNG images should be compressed to minimize bandwidth usage for end users
990 compressed PNG files occupy 4.44MB
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
public/img/flags/pe.png | 0.54KB | 0.73KB | 0.00% |
v3/src/assets/img/flags/sc.png | 0.88KB | 1.17KB | 0.00% |
public/img/flags/cu.png | 0.83KB | 0.98KB | 0.00% |
assets/img/flags/cd.png | 0.95KB | 1.16KB | 0.00% |
public/img/flags/mq.png | 0.87KB | 1.09KB | 0.00% |