Benchmarks
Plugin footprint 64% 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.46MB] [CPU: ▲19.01ms] 75% from 4 tests
A check of server-side resources used by HivePress - Business Directory & Classified Ads WordPress Plugin
Please fix the following
- CPU: The total CPU usage must kept under 500.00ms (currently 1,001.48ms on /wp-admin/admin.php?page=hp_extensions)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 5.09 ▲1.63 | 92.22 ▲38.71 |
Dashboard /wp-admin | 4.70 ▲1.39 | 61.38 ▲13.55 |
Posts /wp-admin/edit.php | 4.81 ▲1.46 | 63.78 ▲16.03 |
Add New Post /wp-admin/post-new.php | 7.95 ▲2.07 | 109.76 ▲21.60 |
Media Library /wp-admin/upload.php | 4.58 ▲1.35 | 57.40 ▲24.86 |
Categories /wp-admin/edit-tags.php?taxonomy=hp_vendor_category&post_type=hp_vendor | 4.60 | 53.91 |
Add New /wp-admin/post-new.php?post_type=hp_vendor | 4.94 | 106.30 |
Themes /wp-admin/admin.php?page=hp_themes | 4.64 | 1,429.51 |
Extensions /wp-admin/admin.php?page=hp_extensions | 4.75 | 1,001.48 |
Emails /wp-admin/edit.php?post_type=hp_email | 4.68 | 55.30 |
Attributes /wp-admin/edit.php?post_type=hp_user_attribute | 4.68 | 50.61 |
Listings /wp-admin/edit.php?post_type=hp_listing | 4.69 | 51.98 |
Scheduled Actions /wp-admin/tools.php?page=action-scheduler | 4.69 | 76.66 |
Templates /wp-admin/edit.php?post_type=hp_template | 4.69 | 49.24 |
Vendors /wp-admin/edit.php?post_type=hp_vendor | 4.68 | 51.68 |
Server storage [IO: ▲29.56MB] [DB: ▲0.06MB] 67% from 3 tests
Analyzing filesystem and database footprints of this plugin
Please try to fix the following items
- The filesystem usage should be lower than 25MB (currently using 29.56MB)
Filesystem: 2,071 new files
Database: 4 new tables, 48 new options
New tables |
---|
wp_actionscheduler_actions |
wp_actionscheduler_claims |
wp_actionscheduler_logs |
wp_actionscheduler_groups |
New WordPress options |
---|
theysaidso_admin_options |
hp_listing_enable_reporting |
hp_user_enable_registration |
hp_listing_storage_period |
widget_recent-comments |
hp_user_verify_email |
hp_listing_title_format |
hp_vendor_display_name |
hp_recaptcha_forms |
action_scheduler_lock_async-request-runner |
... |
Browser metrics Passed 4 tests
HivePress - Business Directory & Classified Ads WordPress Plugin: an overview of browser usage
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,211 ▲476 | 15.56 ▲1.34 | 16.60 ▲14.78 | 36.79 ▼8.34 |
Dashboard /wp-admin | 2,402 ▲214 | 6.19 ▲1.12 | 122.13 ▲10.22 | 89.05 ▲46.41 |
Posts /wp-admin/edit.php | 2,311 ▲222 | 3.38 ▲1.39 | 51.16 ▲10.42 | 35.35 ▼0.61 |
Add New Post /wp-admin/post-new.php | 6,388 ▲4,874 | 19.51 ▲1.87 | 950.67 ▲330.75 | 37.13 ▼14.72 |
Media Library /wp-admin/upload.php | 1,595 ▲213 | 5.86 ▲1.61 | 106.29 ▲10.35 | 90.28 ▲50.04 |
Categories /wp-admin/edit-tags.php?taxonomy=hp_vendor_category&post_type=hp_vendor | 1,647 | 4.44 | 55.55 | 92.32 |
Add New /wp-admin/post-new.php?post_type=hp_vendor | 2,585 | 8.45 | 205.94 | 147.20 |
Themes /wp-admin/admin.php?page=hp_themes | 1,153 | 3.07 | 34.31 | 29.57 |
Extensions /wp-admin/admin.php?page=hp_extensions | 2,065 | 3.09 | 34.95 | 36.42 |
Emails /wp-admin/edit.php?post_type=hp_email | 1,269 | 3.20 | 40.91 | 68.01 |
Attributes /wp-admin/edit.php?post_type=hp_user_attribute | 1,272 | 3.22 | 40.00 | 32.41 |
Listings /wp-admin/edit.php?post_type=hp_listing | 1,297 | 3.19 | 42.14 | 76.47 |
Scheduled Actions /wp-admin/tools.php?page=action-scheduler | 1,763 | 3.12 | 38.48 | 36.66 |
Templates /wp-admin/edit.php?post_type=hp_template | 1,278 | 3.20 | 46.11 | 50.25 |
Vendors /wp-admin/edit.php?post_type=hp_vendor | 1,296 | 3.21 | 40.07 | 33.41 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.04MB] 50% from 4 tests
🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
Please fix the following items
- The plugin did not uninstall successfully, leaving 4 tables in the database
- wp_actionscheduler_actions
- wp_actionscheduler_claims
- wp_actionscheduler_logs
- wp_actionscheduler_groups
- This plugin did not uninstall successfully, leaving 48 options in the database
- hp_listings_per_page
- hp_vendor_search_fields
- hp_vendor_enable_display
- hp_listing_expiration_period
- hp_listing_allow_video
- hp_vendor_display_name
- hp_page_listings
- hp_core_version
- hp_core_activated
- hp_page_listing_submission_terms
- ...
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 | The single-responsibility principle: PHP files have to remain inert when accessed directly, throwing no errors and performing no actions
Please fix the following items
- 115× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'League\\OAuth2\\Client\\Provider\\AbstractProvider' not found in wp-content/plugins/hivepress/vendor/league/oauth2-google/src/Provider/Google.php:11
- > PHP Fatal error
Uncaught Error: Class 'GuzzleHttp\\Exception\\BadResponseException' not found in wp-content/plugins/hivepress/vendor/guzzlehttp/guzzle/src/Exception/ClientException.php:8
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\Promise\\PromiseInterface' not found in wp-content/plugins/hivepress/vendor/guzzlehttp/promises/src/Coroutine.php:45
- > PHP Fatal error
Uncaught Error: Interface 'League\\OAuth2\\Client\\OptionProvider\\OptionProviderInterface' not found in wp-content/plugins/hivepress/vendor/league/oauth2-client/src/OptionProvider/PostAuthOptionProvider.php:23
- > PHP Warning
require(wp-content/plugins/hivepress/vendor/league/oauth2-google/examples/../vendor/autoload.php): failed to open stream: No such file or directory in wp-content/plugins/hivepress/vendor/league/oauth2-google/examples/provider.php on line 3
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Http\\Message\\StreamInterface' not found in wp-content/plugins/hivepress/vendor/guzzlehttp/psr7/src/NoSeekStream.php:12
- > PHP Fatal error
require(): Failed opening required 'wp-content/plugins/hivepress/vendor/league/oauth2-google/examples/../vendor/autoload.php' (include_path='.:/usr/share/php') in wp-content/plugins/hivepress/vendor/league/oauth2-google/examples/provider.php on line 3
- > PHP Fatal error
Uncaught Error: Class 'GuzzleHttp\\Psr7\\Request' not found in wp-content/plugins/hivepress/vendor/guzzlehttp/psr7/src/ServerRequest.php:27
- > PHP Fatal error
Uncaught Error: Class 'ActionScheduler_AdminView_Deprecated' not found in wp-content/plugins/hivepress/vendor/woocommerce/action-scheduler/classes/ActionScheduler_AdminView.php:7
- > PHP Fatal error
Uncaught Error: Class 'ActionScheduler_Abstract_QueueRunner' not found in wp-content/plugins/hivepress/vendor/woocommerce/action-scheduler/classes/WP_CLI/ActionScheduler_WPCLI_QueueRunner.php:10
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
No browser errors were detected
Optimizations
Plugin configuration 93% from 29 tests
readme.txt 88% 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 (12 tag instead of maximum 10); only the first 5 tags are used in your directory listing
- Screenshots: These screenshots lack descriptions #1, #2, #3, #4, #5, #6 in hivepress/assets to your readme.txt
hivepress/hivepress.php Passed 13 tests
The principal PHP file in "HivePress - Business Directory & Classified Ads WordPress Plugin" v. 1.7.1 is loaded by WordPress automatically on each request
53 characters long description:
Multipurpose directory, listing & classifieds plugin.
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short review of files and their extensions; it is not recommended to include executable files
Success! There were no dangerous files found in this plugin230,146 lines of code in 1,989 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
JavaScript | 865 | 16,157 | 11,787 | 120,114 |
PHP | 497 | 10,223 | 22,407 | 39,275 |
HTML | 282 | 584 | 15 | 31,534 |
CSS | 42 | 441 | 333 | 10,620 |
TypeScript | 144 | 581 | 2,039 | 8,104 |
Markdown | 55 | 2,640 | 0 | 7,531 |
SVG | 10 | 1 | 4 | 5,061 |
JSON | 39 | 1 | 0 | 2,726 |
Sass | 17 | 258 | 84 | 2,184 |
LESS | 4 | 362 | 107 | 1,968 |
Stylus | 11 | 220 | 16 | 733 |
EJS | 11 | 22 | 1 | 167 |
XML | 2 | 0 | 0 | 47 |
YAML | 5 | 4 | 10 | 37 |
Mustache | 1 | 5 | 0 | 27 |
Ruby | 1 | 2 | 0 | 8 |
Bourne Shell | 2 | 3 | 0 | 5 |
make | 1 | 3 | 0 | 5 |
PHP code Passed 2 tests
This plugin's cyclomatic complexity and code structure detailed below
No cyclomatic complexity issues were detected for this plugin
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.44 |
Average class complexity | 11.58 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 212.00 |
Average method complexity | 2.69 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 40.00 |
Code structure | ||
---|---|---|
Namespaces | 35 | |
Interfaces | 33 | |
Traits | 13 | |
Classes | 356 | |
▷ Abstract classes | 40 | 11.24% |
▷ Concrete classes | 316 | 88.76% |
▷ Final classes | 71 | 22.47% |
Methods | 2,422 | |
▷ Static methods | 308 | 12.72% |
▷ Public methods | 1,893 | 78.16% |
▷ Protected methods | 387 | 15.98% |
▷ Private methods | 142 | 5.86% |
Functions | 252 | |
▷ Named functions | 78 | 30.95% |
▷ Anonymous functions | 174 | 69.05% |
Constants | 101 | |
▷ Global constants | 2 | 1.98% |
▷ Class constants | 99 | 98.02% |
▷ Public constants | 88 | 88.89% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
It is recommended to compress PNG files in your plugin to minimize bandwidth usage
18 PNG files occupy 0.65MB with 0.22MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
node_modules/intl-tel-input/screenshots/twilio.png | 20.05KB | 9.61KB | ▼ 52.07% |
assets/images/jquery-ui/ui-icons_777620_256x240.png | 4.57KB | 4.18KB | ▼ 8.43% |
assets/images/jquery-ui/ui-icons_cc0000_256x240.png | 4.57KB | 4.18KB | ▼ 8.43% |
node_modules/chart.js/dist/docs/assets/img/event_flowchart.83015c7a.png | 37.29KB | 7.79KB | ▼ 79.11% |
node_modules/intl-tel-input/screenshots/separateDialCode.png | 3.94KB | 3.27KB | ▼ 16.90% |