Benchmarks
Plugin footprint Passed 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
The plugin installed gracefully, with no errors
Server metrics [RAM: ▼0.00MB] [CPU: ▼255.35ms] Passed 4 tests
An overview of server-side resources used by Affiliate Promotions
This plugin has minimal impact on server resources
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 2.83 ▲0.11 | 32.49 ▲12.45 |
Dashboard /wp-admin | 3.06 ▲0.00 | 44.44 ▲7.87 |
Posts /wp-admin/edit.php | 3.11 ▲0.00 | 41.26 ▼2.15 |
Add New Post /wp-admin/post-new.php | 5.42 ▼0.01 | 95.25 ▼1,026.04 |
Media Library /wp-admin/upload.php | 3.00 ▲0.00 | 30.66 ▼1.06 |
Server storage [IO: ▲1.93MB] [DB: ▲0.00MB] Passed 3 tests
Analyzing filesystem and database footprints of this plugin
This plugin installed successfully
Filesystem: 391 new files
Database: no new tables, no new options
Browser metrics Passed 4 tests
This is an overview of browser requirements for Affiliate Promotions
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,674 ▲92 | 15.43 ▼0.12 | 9.83 ▲2.52 | 44.59 ▲2.03 |
Dashboard /wp-admin | 2,931 ▲78 | 5.92 ▲0.02 | 155.52 ▼3.12 | 112.86 ▲5.15 |
Posts /wp-admin/edit.php | 2,706 ▼0 | 2.69 ▼0.00 | 67.27 ▼5.51 | 98.61 ▲2.67 |
Add New Post /wp-admin/post-new.php | 1,577 ▼276 | 18.51 ▼0.31 | 389.03 ▼30.69 | 115.15 ▲6.88 |
Media Library /wp-admin/upload.php | 1,772 ▼0 | 5.02 ▼0.02 | 161.68 ▼10.74 | 115.49 ▼12.45 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] Passed 4 tests
🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
The plugin uninstalled successfully, without leaving any zombie files or tables
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
Good news, no errors were detected
SRP 0% 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 take a closer look at the following
- 3× GET requests to PHP files return non-empty strings:
- > /wp-content/plugins/affiliate-promotions/includes/libs/meta-box/inc/templates/image-advanced.php
- > /wp-content/plugins/affiliate-promotions/includes/libs/meta-box/inc/templates/media.php
- > /wp-content/plugins/affiliate-promotions/includes/libs/meta-box/inc/templates/upload.php
- 96× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'RWMB_Text_Field' not found in wp-content/plugins/affiliate-promotions/includes/libs/meta-box/inc/fields/color.php:6
- > PHP Fatal error
Uncaught Error: Class 'GuzzleHttp\\Cookie\\CookieJar' not found in wp-content/plugins/affiliate-promotions/includes/libs/vendor/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php:7
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Http\\Message\\StreamInterface' not found in wp-content/plugins/affiliate-promotions/includes/libs/vendor/guzzlehttp/psr7/src/BufferStream.php:14
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Http\\Message\\MessageInterface' not found in wp-content/plugins/affiliate-promotions/includes/libs/vendor/psr/http-message/src/ResponseInterface.php:20
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Http\\Message\\UriInterface' not found in wp-content/plugins/affiliate-promotions/includes/libs/vendor/guzzlehttp/psr7/src/Uri.php:13
- > PHP Fatal error
Uncaught Error: Class 'RWMB_Text_Field' not found in wp-content/plugins/affiliate-promotions/includes/libs/meta-box/inc/fields/url.php:5
- > PHP Fatal error
Uncaught Error: Call to undefined function add_shortcode() in wp-content/plugins/affiliate-promotions/includes/offers/shortcodes.php:154
- > PHP Fatal error
Uncaught Error: Class 'RWMB_Select_Field' not found in wp-content/plugins/affiliate-promotions/includes/libs/meta-box/inc/fields/select-advanced.php:5
- > PHP Fatal error
Uncaught Error: Class 'GuzzleHttp\\Exception\\RequestException' not found in wp-content/plugins/affiliate-promotions/includes/libs/vendor/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php:4
- > PHP Fatal error
Uncaught Error: Class 'RWMB_Field' not found in wp-content/plugins/affiliate-promotions/includes/libs/meta-box/inc/fields/custom-html.php:5
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
Everything seems fine on the user side
Optimizations
Plugin configuration 93% 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
Attributes that require attention:
- Tags: You are using too many tags: 11 tag instead of maximum 10
- Screenshots: No descriptions were found for these screenshots #3, #4 in affiliate-promotions/assets to your readme.txt
affiliate-promotions/affiliate-promotions.php Passed 13 tests
The main file in "Affiliate Promotions" v. 0.1.6 serves as a complement to information provided in readme.txt and as the entry point to the plugin
81 characters long description:
Promote promotions and deals of products and earn money with affiliate referrals.
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short check of programming languages and file extensions; no executable files are allowed
Success! There were no dangerous files found in this plugin28,390 lines of code in 340 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 188 | 3,185 | 7,538 | 16,053 |
CSS | 44 | 268 | 129 | 4,219 |
JavaScript | 85 | 1,163 | 418 | 4,094 |
Markdown | 9 | 843 | 0 | 2,946 |
PO File | 2 | 266 | 276 | 608 |
JSON | 6 | 0 | 0 | 372 |
YAML | 2 | 12 | 0 | 49 |
make | 2 | 11 | 0 | 31 |
XML | 1 | 0 | 0 | 17 |
SVG | 1 | 0 | 0 | 1 |
PHP code Passed 2 tests
A brief analysis of cyclomatic complexity and code structure for this plugin
This plugin has no cyclomatic complexity problems
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.39 |
Average class complexity | 12.41 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 198.00 |
Average method complexity | 2.67 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 57.00 |
Code structure | ||
---|---|---|
Namespaces | 8 | |
Interfaces | 14 | |
Traits | 2 | |
Classes | 127 | |
▷ Abstract classes | 7 | 5.51% |
▷ Concrete classes | 120 | 94.49% |
▷ Final classes | 5 | 4.17% |
Methods | 1,014 | |
▷ Static methods | 296 | 29.19% |
▷ Public methods | 882 | 86.98% |
▷ Protected methods | 30 | 2.96% |
▷ Private methods | 102 | 10.06% |
Functions | 250 | |
▷ Named functions | 156 | 62.40% |
▷ Anonymous functions | 94 | 37.60% |
Constants | 78 | |
▷ Global constants | 43 | 55.13% |
▷ Class constants | 35 | 44.87% |
▷ Public constants | 35 | 100.00% |
Plugin size Passed 1 test
Image compression Passed 1 test
Using a strong compression for your PNG files is a great way to speed-up your plugin
18 compressed PNG files occupy 0.03MB
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
includes/libs/meta-box/img/jqueryui/ui-icons_2e83ff_256x240.png | 4.27KB | 4.11KB | ▼ 3.78% |
includes/libs/meta-box/img/jqueryui/ui-bg_highlight-soft_75_cccccc_1x100.png | 0.10KB | 0.17KB | 0.00% |
public/assets/assets/button-corner_red.png | 0.66KB | 0.66KB | 0.00% |
includes/libs/meta-box/img/jqueryui/ui-bg_glass_65_ffffff_1x400.png | 0.10KB | 0.10KB | ▼ 5.71% |
public/assets/img/thumb-small.png | 1.47KB | 1.49KB | 0.00% |