Benchmarks
Plugin footprint 40% from 16 tests
Installer 0% from 1 test
🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
These installer errors require your attention
- The plugin cannot be installed
- > Notice in wp-content/plugins/accredible-certificates/accredible_certificates.php+126
Undefined variable: accredible_db_version
Server metrics [RAM: ▲0.21MB] [CPU: ▼143.09ms] Passed 4 tests
An overview of server-side resources used by Accredible Certificates & Open Badges
This plugin has minimal impact on server resources
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.03 ▲0.19 | 40.20 ▲7.52 |
Dashboard /wp-admin | 3.32 ▲0.27 | 45.63 ▼1.66 |
Posts /wp-admin/edit.php | 3.37 ▲0.26 | 47.15 ▼1.73 |
Add New Post /wp-admin/post-new.php | 5.62 ▲0.19 | 94.24 ▼566.03 |
Media Library /wp-admin/upload.php | 3.20 ▲0.20 | 37.56 ▼2.92 |
Accredible Certificates /wp-admin/options-general.php?page=accredible_certificates | 3.17 | 33.76 |
Server storage [IO: ▲6.26MB] [DB: ▲0.00MB] Passed 3 tests
Input-output and database impact of this plugin
This plugin was installed successfully
Filesystem: 250 new files
Database: 1 new table, 3 new options
New tables |
---|
wp_accredible_mapping |
New WordPress options |
---|
automatically_issue_certificates |
accredible_db_version |
widget_accredible_widget |
Browser metrics Passed 4 tests
This is an overview of browser requirements for Accredible Certificates & Open Badges
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,701 ▲106 | 16.11 ▲0.58 | 6.90 ▼1.63 | 45.03 ▼3.95 |
Dashboard /wp-admin | 2,995 ▲58 | 5.87 ▼0.23 | 141.07 ▼2.38 | 115.77 ▲0.60 |
Posts /wp-admin/edit.php | 2,761 ▲22 | 2.69 ▼0.01 | 66.87 ▼0.55 | 88.34 ▼6.99 |
Add New Post /wp-admin/post-new.php | 1,515 ▼357 | 18.58 ▼0.52 | 368.25 ▲4.44 | 112.39 ▼4.71 |
Media Library /wp-admin/upload.php | 1,829 ▲22 | 5.00 ▼0.01 | 161.86 ▲5.20 | 123.13 ▼6.21 |
Accredible Certificates /wp-admin/options-general.php?page=accredible_certificates | 1,053 | 2.09 | 58.27 | 84.09 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 50% from 4 tests
🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
These items require your attention
- Zombie tables detected upon uninstall: 1 table
- wp_accredible_mapping
- This plugin did not uninstall successfully, leaving 3 options in the database
- automatically_issue_certificates
- accredible_db_version
- widget_accredible_widget
Smoke tests 75% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | A smoke test targeting server-side errors
The smoke test was a success, however most plugin functionality was not tested
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
- 115× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\Message\\MessageInterface' not found in wp-content/plugins/accredible-certificates/vendor/guzzlehttp/guzzle/src/Message/RequestInterface.php:10
- > PHP Fatal error
Uncaught Error: Class 'GuzzleHttp\\Exception\\TransferException' not found in wp-content/plugins/accredible-certificates/vendor/guzzlehttp/guzzle/src/Exception/ParseException.php:9
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\Stream\\StreamInterface' not found in wp-content/plugins/accredible-certificates/vendor/guzzlehttp/streams/tests/StreamDecoratorTraitTest.php:8
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\Ring\\Future\\FutureArrayInterface' not found in wp-content/plugins/accredible-certificates/vendor/guzzlehttp/ringphp/src/Future/FutureArray.php:7
- > PHP Fatal error
Uncaught Error: Class 'GuzzleHttp\\Exception\\RequestException' not found in wp-content/plugins/accredible-certificates/vendor/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php:4
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\Stream\\StreamInterface' not found in wp-content/plugins/accredible-certificates/vendor/guzzlehttp/streams/src/AsyncReadStream.php:22
- > PHP Fatal error
Uncaught Error: Interface 'React\\Promise\\PromiseInterface' not found in wp-content/plugins/accredible-certificates/vendor/guzzlehttp/ringphp/src/Future/FutureInterface.php:19
- > PHP Fatal error
Uncaught Error: Class 'PHPUnit_Framework_TestCase' not found in wp-content/plugins/accredible-certificates/vendor/guzzlehttp/streams/tests/Exception/SeekExceptionTest.php:7
- > PHP Fatal error
Uncaught Error: Class 'GuzzleHttp\\Exception\\RequestException' not found in wp-content/plugins/accredible-certificates/vendor/guzzlehttp/guzzle/src/Exception/ConnectException.php:4
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\Stream\\StreamInterface' not found in wp-content/plugins/accredible-certificates/vendor/guzzlehttp/streams/src/NullStream.php:8
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
No browser errors were detected
Optimizations
Plugin configuration 90% from 29 tests
readme.txt 88% 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:
- Screenshots: Add images for these screenshots: #7 (Shortcode output.), #8 (Widget output.)
- Tags: You are using too many tags: 17 tag instead of maximum 10
accredible-certificates/accredible_certificates.php 92% from 13 tests
"Accredible Certificates & Open Badges" version 1.4.7's primary PHP file adds more information about the plugin and serves as the entry point for WordPress
Please make the necessary changes and fix the following:
- Main file name: Please rename the main PHP file in this plugin to the plugin slug ("accredible-certificates.php" instead of "accredible_certificates.php")
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | There should be no dangerous file extensions present in any WordPress plugin
No dangerous file extensions were detected43,622 lines of code in 217 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 178 | 28,277 | 14,866 | 39,362 |
Markdown | 8 | 785 | 0 | 2,772 |
reStructuredText | 9 | 263 | 333 | 517 |
JSON | 7 | 0 | 0 | 443 |
make | 4 | 45 | 5 | 178 |
JavaScript | 1 | 18 | 60 | 163 |
YAML | 5 | 26 | 2 | 124 |
XML | 3 | 1 | 3 | 38 |
Python | 1 | 4 | 0 | 19 |
CSS | 1 | 1 | 1 | 6 |
PHP code Passed 2 tests
This plugin's cyclomatic complexity and code structure detailed below
Great job! No cyclomatic complexity issues were detected in this plugin
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.27 |
Average class complexity | 8.36 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 89.00 |
Average method complexity | 2.06 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 43.00 |
Code structure | ||
---|---|---|
Namespaces | 25 | |
Interfaces | 23 | |
Traits | 6 | |
Classes | 140 | |
▷ Abstract classes | 4 | 2.86% |
▷ Concrete classes | 136 | 97.14% |
▷ Final classes | 3 | 2.21% |
Methods | 1,241 | |
▷ Static methods | 118 | 9.51% |
▷ Public methods | 1,129 | 90.98% |
▷ Protected methods | 20 | 1.61% |
▷ Private methods | 92 | 7.41% |
Functions | 155 | |
▷ Named functions | 14 | 9.03% |
▷ Anonymous functions | 141 | 90.97% |
Constants | 11 | |
▷ Global constants | 0 | 0.00% |
▷ Class constants | 11 | 100.00% |
▷ Public constants | 11 | 100.00% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
PNG files should be compressed to save space and minimize bandwidth usage
14 PNG files occupy 3.61MB with 2.03MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/screenshot-5.png | 611.35KB | 223.16KB | ▼ 63.50% |
screenshot-3.png | 44.60KB | 13.86KB | ▼ 68.91% |
assets/icon-128x128.png | 3.87KB | 2.60KB | ▼ 32.78% |
assets/banner-772x250.png | 120.91KB | 48.85KB | ▼ 59.60% |
assets/banner-1800x690.png | 559.90KB | 242.59KB | ▼ 56.67% |