Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
Install script ran successfully
Server metrics [RAM: ▲0.44MB] [CPU: ▲7.84ms] Passed 4 tests
Analyzing server-side resources used by QBank Connector
This plugin has minimal impact on server resources
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.92 ▲0.46 | 51.75 ▲1.36 |
Dashboard /wp-admin | 3.77 ▲0.46 | 56.48 ▲5.51 |
Posts /wp-admin/edit.php | 3.82 ▲0.46 | 57.82 ▲12.19 |
Add New Post /wp-admin/post-new.php | 7.36 ▲1.47 | 2,038.59 ▲1,944.39 |
Media Library /wp-admin/upload.php | 3.61 ▲0.38 | 46.57 ▲12.31 |
QBank Connector /wp-admin/options-general.php?page=qbank-settings | 3.61 | 41.18 |
Server storage [IO: ▲3.08MB] [DB: ▲0.00MB] Passed 3 tests
Filesystem and database footprint
There were no storage issued detected upon installing this plugin
Filesystem: 582 new files
Database: no new tables, 16 new options
New WordPress options |
---|
qbank_username |
qbank_default_image_size |
qbank_password |
widget_recent-comments |
theysaidso_admin_options |
qbank_host |
widget_recent-posts |
qbank_default_image_extension |
qbank_session_source_id |
qbank_client_id |
... |
Browser metrics Passed 4 tests
This is an overview of browser requirements for QBank Connector
This plugin renders optimally with no browser resource issues detected
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,941 ▲195 | 14.94 ▲0.54 | 1.85 ▼0.06 | 43.38 ▼1.14 |
Dashboard /wp-admin | 2,347 ▲156 | 6.43 ▲1.55 | 132.27 ▲14.79 | 40.05 ▼4.31 |
Posts /wp-admin/edit.php | 2,256 ▲167 | 3.30 ▲1.25 | 52.44 ▲16.49 | 31.60 ▼4.38 |
Add New Post /wp-admin/post-new.php | 1,684 ▲162 | 22.66 ▼0.68 | 653.75 ▼30.03 | 32.06 ▼29.29 |
Media Library /wp-admin/upload.php | 1,397 ▲12 | 4.15 ▼0.07 | 80.15 ▼21.05 | 41.55 ▼1.50 |
QBank Connector /wp-admin/options-general.php?page=qbank-settings | 1,154 | 2.99 | 45.98 | 27.54 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
These items require your attention
- Zombie WordPress options detected upon uninstall: 16 options
- widget_recent-comments
- qbank_download_file
- widget_recent-posts
- qbank_username
- qbank_default_image_size
- theysaidso_admin_options
- qbank_deployment_site_id
- qbank_password
- qbank_default_image_extension
- qbank_host
- ...
Smoke tests 75% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
Even though no errors were found, this is by no means an exhaustive test
SRP 50% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
Please fix the following items
- 282× 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/qbank-dam-connector/vendor/sainsburys/guzzle-oauth2-plugin/tests/TestBase.php:9
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\Stream\\StreamInterface' not found in wp-content/plugins/qbank-dam-connector/vendor/guzzlehttp/guzzle/src/Post/MultipartBody.php:12
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\Event\\SubscriberInterface' not found in wp-content/plugins/qbank-dam-connector/vendor/guzzlehttp/guzzle/src/Subscriber/Prepare.php:24
- > PHP Fatal error
Uncaught Error: Class 'QBNK\\QBank\\API\\Model\\Category' not found in wp-content/plugins/qbank-dam-connector/vendor/qbnk/qbank3api-phpwrapper/Model/CategoryResponse.php:8
- > PHP Fatal error
Uncaught Error: Class 'React\\Promise\\TestCase' not found in wp-content/plugins/qbank-dam-connector/vendor/react/promise/tests/DeferredTest.php:7
- > PHP Fatal error
Uncaught Error: Class 'Doctrine\\Common\\Cache\\CacheProvider' not found in wp-content/plugins/qbank-dam-connector/vendor/doctrine/cache/lib/Doctrine/Common/Cache/SQLite3Cache.php:20
- > PHP Fatal error
Uncaught Error: Class 'QBNK\\QBank\\API\\Exception\\QBankApiException' not found in wp-content/plugins/qbank-dam-connector/vendor/qbnk/qbank3api-phpwrapper/Exception/ResponseException.php:5
- > PHP Fatal error
Uncaught Error: Class 'QBNK\\QBank\\API\\Model\\Moodboard' not found in wp-content/plugins/qbank-dam-connector/vendor/qbnk/qbank3api-phpwrapper/Model/MoodboardResponse.php:8
- > PHP Fatal error
Uncaught Error: Class 'React\\Promise\\TestCase' not found in wp-content/plugins/qbank-dam-connector/vendor/react/promise/tests/FulfilledPromiseTest.php:7
- > PHP Fatal error
Uncaught Error: Class 'GuzzleHttp\\Exception\\TransferException' not found in wp-content/plugins/qbank-dam-connector/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:12
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
There were no browser issues found
Optimizations
Plugin configuration 83% from 29 tests
readme.txt 88% 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
Attributes that need to be fixed:
- Plugin Name: "Plugin Name" should be replaced with the name of your plugin on the first line (
=== qbank-dam-connector ===
) - Screenshots: Add an image for screenshot #1 (/screenshot-1.png)
qbank-dam-connector/qbank.php 77% from 13 tests
The primary PHP file in "QBank Connector" version 1.1.0 is used by WordPress to initiate all plugin functionality
The following require your attention:
- Domain Path: The domain path folder does not exist ("/languages/")
- Text Domain: You no longer need to specify the text domain since WordPress 4.6; it must be the same as the plugin slug
- Main file name: It is recommended to name the main PHP file as the plugin slug ("qbank-dam-connector.php" instead of "qbank.php")
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is an overview of programming languages used in this plugin; dangerous file extensions are not allowed
No dangerous file extensions were detected50,492 lines of code in 543 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 466 | 8,677 | 17,521 | 43,094 |
Markdown | 24 | 1,471 | 0 | 4,644 |
JSON | 19 | 0 | 0 | 1,363 |
reStructuredText | 10 | 351 | 433 | 603 |
make | 4 | 45 | 5 | 181 |
JavaScript | 1 | 18 | 60 | 163 |
YAML | 8 | 37 | 1 | 159 |
XML | 7 | 16 | 1 | 153 |
Ant | 1 | 13 | 0 | 97 |
Python | 1 | 4 | 0 | 19 |
Dockerfile | 1 | 8 | 0 | 10 |
INI | 1 | 1 | 0 | 6 |
PHP code Passed 2 tests
Analyzing logical lines of code, cyclomatic complexity, and other code metrics
No cyclomatic complexity issues were detected for this plugin
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.31 |
Average class complexity | 9.61 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 153.00 |
Average method complexity | 2.13 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 44.00 |
Code structure | ||
---|---|---|
Namespaces | 56 | |
Interfaces | 51 | |
Traits | 19 | |
Classes | 372 | |
▷ Abstract classes | 16 | 4.30% |
▷ Concrete classes | 356 | 95.70% |
▷ Final classes | 16 | 4.49% |
Methods | 3,501 | |
▷ Static methods | 212 | 6.06% |
▷ Public methods | 3,020 | 86.26% |
▷ Protected methods | 252 | 7.20% |
▷ Private methods | 229 | 6.54% |
Functions | 477 | |
▷ Named functions | 137 | 28.72% |
▷ Anonymous functions | 340 | 71.28% |
Constants | 254 | |
▷ Global constants | 60 | 23.62% |
▷ Class constants | 194 | 76.38% |
▷ Public constants | 190 | 97.94% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
1 PNG file occupies 0.74MB with 0.54MB in potential savings
Potential savings
Compression of 1 random PNG file using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
screenshot-1.png | 759.11KB | 208.01KB | ▼ 72.60% |