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.23MB] [CPU: ▲1.17ms] 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.70 ▲0.23 | 41.51 ▲0.93 |
Dashboard /wp-admin | 3.58 ▲0.27 | 51.23 ▲2.21 |
Posts /wp-admin/edit.php | 3.63 ▲0.27 | 46.13 ▲4.81 |
Add New Post /wp-admin/post-new.php | 6.10 ▲0.20 | 84.27 ▼2.35 |
Media Library /wp-admin/upload.php | 3.44 ▲0.20 | 36.61 ▲3.87 |
Accredible Certificates /wp-admin/options-general.php?page=accredible_certificates | 3.40 | 32.30 |
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, 9 new options
New tables |
---|
wp_accredible_mapping |
New WordPress options |
---|
widget_recent-comments |
automatically_issue_certificates |
widget_theysaidso_widget |
widget_recent-posts |
theysaidso_admin_options |
can_compress_scripts |
widget_accredible_widget |
accredible_db_version |
db_upgraded |
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 / | 2,807 ▲46 | 14.17 ▼0.21 | 1.69 ▼0.07 | 43.12 ▼1.23 |
Dashboard /wp-admin | 2,213 ▲33 | 5.48 ▼0.18 | 81.65 ▼17.60 | 39.93 ▼1.65 |
Posts /wp-admin/edit.php | 2,118 ▲18 | 1.98 ▼0.04 | 35.48 ▼2.13 | 33.36 ▲2.75 |
Add New Post /wp-admin/post-new.php | 1,541 ▲15 | 23.29 ▲0.08 | 604.74 ▼45.31 | 49.01 ▼3.39 |
Media Library /wp-admin/upload.php | 1,415 ▲12 | 4.22 ▲0.03 | 92.09 ▼6.26 | 43.93 ▲1.44 |
Accredible Certificates /wp-admin/options-general.php?page=accredible_certificates | 803 | 2.02 | 22.73 | 27.40 |
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 9 options in the database
- accredible_db_version
- widget_recent-comments
- widget_recent-posts
- db_upgraded
- can_compress_scripts
- widget_theysaidso_widget
- theysaidso_admin_options
- automatically_issue_certificates
- 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: Class 'PHPUnit_Framework_TestCase' not found in wp-content/plugins/accredible-certificates/vendor/guzzlehttp/streams/tests/NullStreamTest.php:6
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\Event\\SubscriberInterface' not found in wp-content/plugins/accredible-certificates/vendor/guzzlehttp/guzzle/src/Subscriber/Mock.php:16
- > 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\\BadResponseException' not found in wp-content/plugins/accredible-certificates/vendor/guzzlehttp/guzzle/src/Exception/ClientException.php:7
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\Post\\PostFileInterface' not found in wp-content/plugins/accredible-certificates/vendor/guzzlehttp/guzzle/src/Post/PostFile.php:11
- > PHP Fatal error
Uncaught Error: Class 'GuzzleHttp\\Exception\\ParseException' not found in wp-content/plugins/accredible-certificates/vendor/guzzlehttp/guzzle/src/Exception/XmlParseException.php:10
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\Post\\PostBodyInterface' not found in wp-content/plugins/accredible-certificates/vendor/guzzlehttp/guzzle/src/Post/PostBody.php:14
- > PHP Fatal error
Uncaught Error: Class 'GuzzleHttp\\Event\\AbstractRequestEvent' not found in wp-content/plugins/accredible-certificates/vendor/guzzlehttp/guzzle/src/Event/ProgressEvent.php:17
- > PHP Fatal error
Uncaught Error: Class 'GuzzleHttp\\Cookie\\CookieJar' not found in wp-content/plugins/accredible-certificates/vendor/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php:9
- > PHP Fatal error
Uncaught Error: Class 'PHPUnit_Framework_TestCase' not found in wp-content/plugins/accredible-certificates/vendor/guzzlehttp/streams/tests/FnStreamTest.php:10
- > 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.8'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,628 lines of code in 217 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 178 | 28,277 | 14,866 | 39,366 |
Markdown | 8 | 786 | 0 | 2,774 |
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.37 |
▷ 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.15MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
screenshot-2.png | 67.15KB | 20.92KB | ▼ 68.84% |
screenshot-1.png | 290.17KB | 98.49KB | ▼ 66.06% |
screenshot-3.png | 44.60KB | 13.86KB | ▼ 68.91% |
assets/icon-128x128.png | 3.87KB | 2.60KB | ▼ 32.78% |
assets/screenshot-2.png | 41.34KB | 16.08KB | ▼ 61.11% |