Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
Install script ran successfully
Server metrics [RAM: ▲1.72MB] [CPU: ▲13.68ms] Passed 4 tests
Analyzing server-side resources used by Qibla Directory
Server-side resource usage in normal parameters
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 5.28 ▲1.82 | 55.88 ▲13.90 |
Dashboard /wp-admin | 4.96 ▲1.66 | 63.54 ▲12.35 |
Posts /wp-admin/edit.php | 5.09 ▲1.73 | 73.06 ▲25.77 |
Add New Post /wp-admin/post-new.php | 8.08 ▲2.19 | 103.81 ▲6.69 |
Media Library /wp-admin/upload.php | 4.88 ▲1.65 | 56.51 ▲21.77 |
Install Plugins /wp-admin/themes.php?page=qibla-directory-install-plugins | 4.89 | 48.55 |
Categories /wp-admin/edit-tags.php?taxonomy=listing_categories&post_type=listings | 6.40 | 99.94 |
Add Listing /wp-admin/post-new.php?post_type=listings | 5.57 | 88.16 |
Qibla Directory /wp-admin/admin.php?page=qibla-directory-options | 5.04 | 59.86 |
Plugin Options /wp-admin/admin.php?page=?page=qibla-directory-options | 4.62 | 41.39 |
Amenities /wp-admin/edit-tags.php?taxonomy=amenities&post_type=listings | 6.38 | 101.63 |
Useful Links /wp-admin/admin.php?page=qb-useful-links | 4.87 | 48.92 |
Listings /wp-admin/edit.php?post_type=listings | 4.95 | 54.53 |
Locations /wp-admin/edit-tags.php?taxonomy=locations&post_type=listings | 5.99 | 68.03 |
Server storage [IO: ▲7.35MB] [DB: ▲0.01MB] Passed 3 tests
Filesystem and database footprint
The plugin installed successfully
Filesystem: 939 new files
Database: no new tables, 6 new options
New WordPress options |
---|
widget_recent-posts |
db_upgraded |
can_compress_scripts |
theysaidso_admin_options |
widget_theysaidso_widget |
widget_recent-comments |
Browser metrics Passed 4 tests
An overview of browser requirements for Qibla Directory
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,180 ▲419 | 13.91 ▼0.74 | 11.51 ▲9.82 | 37.95 ▼3.84 |
Dashboard /wp-admin | 2,319 ▲139 | 5.95 ▲0.20 | 92.22 ▲2.21 | 76.45 ▲31.57 |
Posts /wp-admin/edit.php | 2,251 ▲151 | 2.45 ▲0.41 | 39.82 ▲1.77 | 41.63 ▲2.30 |
Add New Post /wp-admin/post-new.php | 1,807 ▲281 | 23.20 ▲5.77 | 691.21 ▲7.15 | 33.05 ▼18.91 |
Media Library /wp-admin/upload.php | 1,535 ▲138 | 4.53 ▲0.32 | 107.25 ▼6.31 | 82.86 ▲35.51 |
Install Plugins /wp-admin/themes.php?page=qibla-directory-install-plugins | 1,129 | 2.12 | 26.88 | 36.74 |
Categories /wp-admin/edit-tags.php?taxonomy=listing_categories&post_type=listings | 11,678 | 2.60 | 52.08 | 91.92 |
Add Listing /wp-admin/post-new.php?post_type=listings | 4,107 | 14.36 | 319.85 | 274.17 |
Qibla Directory /wp-admin/admin.php?page=qibla-directory-options | 1,071 | 2.10 | 32.89 | 48.58 |
Plugin Options /wp-admin/admin.php?page=?page=qibla-directory-options | 28 | 0.44 | 0.07 | 4.05 |
Amenities /wp-admin/edit-tags.php?taxonomy=amenities&post_type=listings | 11,554 | 2.42 | 35.97 | 67.60 |
Useful Links /wp-admin/admin.php?page=qb-useful-links | 1,061 | 2.25 | 29.19 | 47.02 |
Listings /wp-admin/edit.php?post_type=listings | 1,303 | 2.47 | 34.69 | 76.43 |
Locations /wp-admin/edit-tags.php?taxonomy=locations&post_type=listings | 1,419 | 2.48 | 32.15 | 41.84 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
These items require your attention
- This plugin did not uninstall successfully, leaving 6 options in the database
- widget_recent-comments
- db_upgraded
- theysaidso_admin_options
- widget_theysaidso_widget
- can_compress_scripts
- widget_recent-posts
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 | It is important to ensure that your PHP files perform no action when accessed directly, respecting the single-responsibility principle
Please fix the following
- 13× PHP files output text when accessed directly (only 10 are shown):
- > /wp-content/plugins/qibla-directory/views/map/markerClusterer.php
- > /wp-content/plugins/qibla-directory/views/template/alert.php
- > /wp-content/plugins/qibla-directory/views/relatedPosts.php
- > /wp-content/plugins/qibla-directory/views/share/shareAndWish.php
- > /wp-content/plugins/qibla-directory/views/shortcodes/maps.php
- > /wp-content/plugins/qibla-directory/views/socialsLinks.php
- > /wp-content/plugins/qibla-directory/views/termsList.php
- > /wp-content/plugins/qibla-directory/views/map/googleMap.php
- > /wp-content/plugins/qibla-directory/views/map/infoWindow.php
- > /wp-content/plugins/qibla-directory/views/map/marker.php
- 282× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'QiblaDirectory\\Form\\Factories\\FieldFactory' not found in wp-content/plugins/qibla-directory/inc/settingFields/googleMapFields.php:28
- > PHP Fatal error
Uncaught Error: Class 'QiblaDirectory\\Form\\Abstracts\\Type' not found in wp-content/plugins/qibla-directory/src/Form/Types/Typography.php:40
- > PHP Fatal error
Uncaught Error: Interface 'QiblaDirectory\\Request\\DirectorRequestInterface' not found in wp-content/plugins/qibla-directory/src/Request/AbstractDirectorRequest.php:35
- > PHP Fatal error
Uncaught Error: Class 'QiblaDirectory\\Form\\Factories\\FieldFactory' not found in wp-content/plugins/qibla-directory/inc/listingFormFields/taxTermsFields.php:29
- > PHP Fatal error
Uncaught Error: Call to undefined function apply_filters() in wp-content/plugins/qibla-directory/inc/listingsFiltersFields.php:26
- > PHP Fatal error
Uncaught Error: Class 'QiblaDirectory\\Plugin' not found in wp-content/plugins/qibla-directory/requires.php:29
- > PHP Fatal error
Uncaught Error: Class 'QiblaDirectory\\Admin\\Settings\\AbstractSettingsForm' not found in wp-content/plugins/qibla-directory/src/Admin/Settings/GoogleMap.php:38
- > PHP Fatal error
Uncaught Error: Interface 'QiblaDirectory\\Admin\\Termbox\\TermboxInterface' not found in wp-content/plugins/qibla-directory/src/Admin/Termbox/AbstractTermbox.php:38
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/qibla-directory/views/search/form.php:28
- > PHP Notice
Undefined variable: data in wp-content/plugins/qibla-directory/views/customFields/listings/listingsLocation.php on line 26
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
Please take a look at the following user-side issues
- > GET request to /wp-admin/post-new.php?post_type=listings
- > Console-api (warning) in unknown
http://maps.googleapis.com/maps/api/js?v=3.29&key&libraries=places&geocoding&ver=3.28 235: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=listings
- > Console-api (severe) in unknown
http://maps.googleapis.com/maps/api/js?v=3.29&key&libraries=places&geocoding&ver=3.28 153: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-directory-options
- > Network (severe)
wp-admin/admin.php?page=?page=qibla-directory-options - Failed to load resource: the server responded with a status of 500 (Internal Server Error)
Optimizations
Plugin configuration 86% from 29 tests
readme.txt 81% from 16 tests
Don't ignore readme.txt as it is the file that instructs WordPress.org on how to present your plugin to the world
These attributes need your attention:
- Requires at least: Invalid plugin version format
- Requires php: Invalid plugin version format
- Tags: There are too many tags (14 tag instead of maximum 10)
qibla-directory/index.php 92% from 13 tests
The main file in "Qibla Directory" v. 1.2.2 serves as a complement to information provided in readme.txt and as the entry point to the plugin
The following require your attention:
- Main file name: Name the main plugin file the same as the plugin slug ("qibla-directory.php" instead of "index.php")
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | Executable files are considered dangerous and should not be included with any WordPress plugin
Success! There were no dangerous files found in this plugin59,176 lines of code in 763 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 429 | 4,695 | 27,879 | 22,147 |
Sass | 202 | 2,486 | 3,676 | 11,963 |
JavaScript | 78 | 1,783 | 5,220 | 8,519 |
PO File | 18 | 1,877 | 2,500 | 5,973 |
SVG | 6 | 0 | 3 | 5,493 |
CSS | 21 | 895 | 264 | 3,482 |
JSON | 6 | 0 | 0 | 1,304 |
YAML | 1 | 63 | 3 | 186 |
Markdown | 1 | 35 | 0 | 97 |
XML | 1 | 0 | 0 | 12 |
PHP code Passed 2 tests
This is a short overview of cyclomatic complexity and code structure for this plugin
Everything seems fine, there were no complexity issues found
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.36 |
Average class complexity | 5.46 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 206.00 |
Average method complexity | 2.32 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 34.00 |
Code structure | ||
---|---|---|
Namespaces | 64 | |
Interfaces | 38 | |
Traits | 0 | |
Classes | 273 | |
▷ Abstract classes | 32 | 11.72% |
▷ Concrete classes | 241 | 88.28% |
▷ Final classes | 13 | 5.39% |
Methods | 1,103 | |
▷ Static methods | 80 | 7.25% |
▷ Public methods | 952 | 86.31% |
▷ Protected methods | 99 | 8.98% |
▷ Private methods | 52 | 4.71% |
Functions | 203 | |
▷ Named functions | 126 | 62.07% |
▷ Anonymous functions | 77 | 37.93% |
Constants | 39 | |
▷ Global constants | 4 | 10.26% |
▷ Class constants | 35 | 89.74% |
▷ Public constants | 35 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
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/vendor/photoswipe/default-skin.png | 0.53KB | 0.72KB | 0.00% |
assets/imgs/vc-sc-icon.png | 1.95KB | 0.83KB | ▼ 57.46% |