Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
Installer ran successfully
Server metrics [RAM: ▲0.51MB] [CPU: ▲3.79ms] Passed 4 tests
A check of server-side resources used by Qibla Events
Server-side resource usage in normal parameters
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.07 ▲0.61 | 51.46 ▲11.29 |
Dashboard /wp-admin | 3.76 ▲0.42 | 50.15 ▼5.97 |
Posts /wp-admin/edit.php | 3.89 ▲0.54 | 52.76 ▲6.34 |
Add New Post /wp-admin/post-new.php | 6.70 ▲0.82 | 107.61 ▲3.51 |
Media Library /wp-admin/upload.php | 3.69 ▲0.46 | 44.37 ▲11.63 |
Tags /wp-admin/edit-tags.php?taxonomy=tags&post_type=events | 4.68 | 90.96 |
Categories /wp-admin/edit-tags.php?taxonomy=event_categories&post_type=events | 4.69 | 87.18 |
Add Event /wp-admin/post-new.php?post_type=events | 4.20 | 70.03 |
Useful Links /wp-admin/admin.php?page=qb-useful-links | 3.70 | 43.40 |
Install Plugins /wp-admin/themes.php?page=qibla-events-install-plugins | 3.69 | 37.06 |
Qibla Events /wp-admin/admin.php?page=qibla-events-options | 3.71 | 43.17 |
Plugin Options /wp-admin/admin.php?page=?page=qibla-events-options | 3.45 | 26.92 |
Locations /wp-admin/edit-tags.php?taxonomy=locations&post_type=events | 4.23 | 59.49 |
Events /wp-admin/edit.php?post_type=events | 3.74 | 41.36 |
Server storage [IO: ▲8.25MB] [DB: ▲0.01MB] Passed 3 tests
How much does this plugin use your filesystem and database?
This plugin was installed successfully
Filesystem: 1,069 new files
Database: no new tables, 6 new options
New WordPress options |
---|
db_upgraded |
widget_recent-comments |
theysaidso_admin_options |
can_compress_scripts |
widget_recent-posts |
widget_theysaidso_widget |
Browser metrics Passed 4 tests
Qibla Events: an overview of browser usage
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,196 ▲450 | 14.11 ▼0.47 | 8.33 ▲6.38 | 36.02 ▼4.00 |
Dashboard /wp-admin | 2,330 ▲144 | 5.15 ▲0.20 | 105.68 ▼1.33 | 85.51 ▲44.17 |
Posts /wp-admin/edit.php | 2,238 ▲149 | 2.47 ▲0.42 | 35.78 ▲2.01 | 57.22 ▲21.32 |
Add New Post /wp-admin/post-new.php | 1,796 ▲277 | 23.14 ▼0.17 | 730.96 ▲101.49 | 31.55 ▼21.64 |
Media Library /wp-admin/upload.php | 1,529 ▲141 | 4.62 ▲0.33 | 99.43 ▲2.23 | 76.71 ▲33.59 |
Tags /wp-admin/edit-tags.php?taxonomy=tags&post_type=events | 11,545 | 2.18 | 40.30 | 108.26 |
Categories /wp-admin/edit-tags.php?taxonomy=event_categories&post_type=events | 11,672 | 2.61 | 58.80 | 73.36 |
Add Event /wp-admin/post-new.php?post_type=events | 3,861 | 12.09 | 355.73 | 294.21 |
Useful Links /wp-admin/admin.php?page=qb-useful-links | 1,052 | 2.25 | 31.14 | 47.89 |
Install Plugins /wp-admin/themes.php?page=qibla-events-install-plugins | 1,122 | 2.13 | 26.65 | 34.20 |
Qibla Events /wp-admin/admin.php?page=qibla-events-options | 1,062 | 2.12 | 27.80 | 44.53 |
Plugin Options /wp-admin/admin.php?page=?page=qibla-events-options | 28 | 0.44 | 0.06 | 3.76 |
Locations /wp-admin/edit-tags.php?taxonomy=locations&post_type=events | 1,413 | 2.32 | 34.58 | 36.34 |
Events /wp-admin/edit.php?post_type=events | 1,287 | 2.40 | 34.68 | 74.50 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
You still need to fix the following
- This plugin does not fully uninstall, leaving 6 options in the database
- widget_recent-posts
- db_upgraded
- widget_theysaidso_widget
- can_compress_scripts
- widget_recent-comments
- theysaidso_admin_options
Smoke tests 25% 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)
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: PHP files have to remain inert when accessed directly, throwing no errors and performing no actions
The following issues need your attention
- 14× PHP files output text when accessed directly (only 10 are shown):
- > /wp-content/plugins/qibla-events/views/map/googleMap.php
- > /wp-content/plugins/qibla-events/views/shortcodes/maps.php
- > /wp-content/plugins/qibla-events/views/map/infoWindow.php
- > /wp-content/plugins/qibla-events/views/termsList.php
- > /wp-content/plugins/qibla-events/views/socialsLinks.php
- > /wp-content/plugins/qibla-events/views/map/markerClusterer.php
- > /wp-content/plugins/qibla-events/views/template/searchNavigation.php
- > /wp-content/plugins/qibla-events/views/map/marker.php
- > /wp-content/plugins/qibla-events/views/events/eventCalendar.php
- > /wp-content/plugins/qibla-events/views/customFields/listings/listingsLocation.php
- 303× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'QiblaEvents\\Form\\Forms\\BaseForm' not found in wp-content/plugins/qibla-events/src/Front/ContactForm/ContactForm.php:38
- > PHP Fatal error
Uncaught Error: Interface 'QiblaEvents\\Template\\TemplateInterface' not found in wp-content/plugins/qibla-events/src/Template/ShareAndWish.php:38
- > PHP Fatal error
Uncaught Error: Interface 'QiblaEvents\\Listings\\ListingsPostInterface' not found in wp-content/plugins/qibla-events/src/Listings/ListingsPost.php:39
- > PHP Fatal error
Uncaught Error: Class 'QiblaEvents\\Form\\Factories\\FieldFactory' not found in wp-content/plugins/qibla-events/inc/metaboxFields/relatedPostsFields.php:28
- > PHP Fatal error
Uncaught Error: Interface 'QiblaEvents\\TemplateEngine\\TemplateInterface' not found in wp-content/plugins/qibla-events/src/Template/AmenitiesTemplate.php:41
- > PHP Fatal error
Uncaught Error: Class 'QiblaEvents\\Admin\\Termbox\\AbstractTermboxForm' not found in wp-content/plugins/qibla-events/src/Admin/Termbox/Icon.php:38
- > PHP Fatal error
Uncaught Error: Call to undefined function QiblaEvents\\Functions\\scopeClass() in wp-content/plugins/qibla-events/views/form/loginForm.php:30
- > PHP Fatal error
Uncaught Error: Interface 'QiblaEvents\\Template\\TemplateInterface' not found in wp-content/plugins/qibla-events/src/Template/ListingsArchiveFooter.php:38
- > PHP Fatal error
Uncaught Error: Class 'QiblaEvents\\Request\\AbstractRequestAjax' not found in wp-content/plugins/qibla-events/src/Filter/Request/RequestFilterAjax.php:40
- > PHP Fatal error
Uncaught Error: Interface 'QiblaEvents\\Form\\Interfaces\\Validators' not found in wp-content/plugins/qibla-events/src/Form/Abstracts/Validator.php:38
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
Please take a look at the following user-side issues
- > GET request to /wp-admin/post-new.php?post_type=events
- > Console-api (warning) in unknown
http://maps.googleapis.com/maps/api/js?v=3.29&key&libraries=places&geocoding&ver=3.28 234:51 "Google Maps JavaScript API has been loaded directly without a callback. This is not supported and can lead to race conditions and suboptimal performance. For supported loading patterns please see https://goo.gle/js-api-loading"
- > GET request to /wp-admin/post-new.php?post_type=events
- > Console-api (severe) in unknown
http://maps.googleapis.com/maps/api/js?v=3.29&key&libraries=places&geocoding&ver=3.28 152:248 "You are using this API without a key. See https://developers.google.com/maps/documentation/javascript/error-messages?utm_source=maps_js&utm_medium=degraded&utm_campaign=billing#api-key-and-billing-errors"
- > GET request to /wp-admin/admin.php?page=?page=qibla-events-options
- > Network (severe)
wp-admin/admin.php?page=?page=qibla-events-options - Failed to load resource: the server responded with a status of 500 (Internal Server Error)
Optimizations
Plugin configuration 79% from 29 tests
readme.txt 75% 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
Please fix the following attributes:
- Requires at least: Invalid version format
- Requires php: Invalid version format
- Screenshots: These screenshots have no corresponding images in /assets: #1 (Shortcode page), #2 (Single listing page), #3 (Archive listing page)
- Tags: Please delete some tags, you are using 13 tag instead of maximum 10
qibla-events/index.php 85% from 13 tests
The main file in "Qibla Events" v. 1.0.2 serves as a complement to information provided in readme.txt and as the entry point to the plugin
It is important to fix the following:
- Description: Please don't use more than 140 characters for the plugin description (currently 164 characters long)
- Main file name: Please rename the main PHP file in this plugin to the plugin slug ("qibla-events.php" instead of "index.php")
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short glimpse at programming languages used with this plugin and a check that no dangerous files are present
Everything looks great! No dangerous files found in this plugin65,829 lines of code in 888 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 452 | 4,960 | 29,109 | 23,615 |
Sass | 213 | 2,620 | 3,827 | 12,847 |
JavaScript | 166 | 2,504 | 5,870 | 12,644 |
PO File | 18 | 1,892 | 2,508 | 5,989 |
SVG | 6 | 0 | 3 | 5,493 |
CSS | 24 | 937 | 265 | 3,692 |
JSON | 6 | 0 | 0 | 1,304 |
YAML | 1 | 63 | 3 | 186 |
Markdown | 1 | 19 | 0 | 50 |
XML | 1 | 0 | 0 | 9 |
PHP code Passed 2 tests
Cyclomatic complexity and code structure are the fingerprint of this plugin
All good! No complexity issues found
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.37 |
Average class complexity | 5.57 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 206.00 |
Average method complexity | 2.35 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 35.00 |
Code structure | ||
---|---|---|
Namespaces | 64 | |
Interfaces | 39 | |
Traits | 0 | |
Classes | 282 | |
▷ Abstract classes | 32 | 11.35% |
▷ Concrete classes | 250 | 88.65% |
▷ Final classes | 13 | 5.20% |
Methods | 1,140 | |
▷ Static methods | 84 | 7.37% |
▷ Public methods | 987 | 86.58% |
▷ Protected methods | 98 | 8.60% |
▷ Private methods | 55 | 4.82% |
Functions | 231 | |
▷ Named functions | 132 | 57.14% |
▷ Anonymous functions | 99 | 42.86% |
Constants | 42 | |
▷ Global constants | 4 | 9.52% |
▷ Class constants | 38 | 90.48% |
▷ Public constants | 38 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
PNG files should be compressed to save space and minimize bandwidth usage
4 PNG files occupy 0.12MB with 0.04MB in potential savings
Potential savings
Compression of 4 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/imgs/qibla-mark-16x16.png | 0.76KB | 0.97KB | 0.00% |
assets/imgs/banner-premium.png | 122.93KB | 39.40KB | ▼ 67.95% |
assets/imgs/vc-sc-icon.png | 1.95KB | 0.83KB | ▼ 57.46% |
assets/vendor/photoswipe/default-skin.png | 0.53KB | 0.72KB | 0.00% |