Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
Install script ran successfully
Server metrics [RAM: ▲1.12MB] [CPU: ▲15.29ms] Passed 4 tests
This is a short check of server-side resources used by Attrace
This plugin has minimal impact on server resources
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.76 ▲1.25 | 61.99 ▲16.81 |
Dashboard /wp-admin | 4.46 ▲1.11 | 74.80 ▲26.11 |
Posts /wp-admin/edit.php | 4.53 ▲1.14 | 69.87 ▲15.75 |
Add New Post /wp-admin/post-new.php | 7.04 ▲1.11 | 104.13 ▲8.60 |
Media Library /wp-admin/upload.php | 4.38 ▲1.11 | 59.52 ▲19.98 |
Integrations /wp-admin/admin.php?page=attrace-integration-configs | 4.35 | 53.96 |
Configuration /wp-admin/admin.php?page=attrace-config | 4.36 | 56.84 |
Server storage [IO: ▲7.36MB] [DB: ▲0.00MB] Passed 3 tests
A short overview of filesystem and database impact
This plugin was installed successfully
Filesystem: 726 new files
Database: 2 new tables, 7 new options
New tables |
---|
wp_attr_transaction |
wp_attr_integration_config |
New WordPress options |
---|
widget_recent-comments |
widget_theysaidso_widget |
can_compress_scripts |
db_upgraded |
theysaidso_admin_options |
widget_recent-posts |
attr_tracking_db |
Browser metrics Passed 4 tests
Attrace: an overview of browser usage
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,817 ▲56 | 14.25 ▼0.38 | 1.56 ▼0.06 | 42.55 ▼5.29 |
Dashboard /wp-admin | 2,220 ▲43 | 5.67 ▲0.10 | 87.39 ▼7.32 | 85.70 ▲42.75 |
Posts /wp-admin/edit.php | 2,128 ▲28 | 1.98 ▲0.00 | 36.61 ▼1.37 | 36.68 ▲2.32 |
Add New Post /wp-admin/post-new.php | 1,573 ▲45 | 18.04 ▼5.05 | 648.80 ▼47.31 | 152.26 ▲100.89 |
Media Library /wp-admin/upload.php | 1,431 ▲34 | 4.13 ▼0.11 | 97.42 ▼4.16 | 72.96 ▲28.43 |
Integrations /wp-admin/admin.php?page=attrace-integration-configs | 1,040 | 2.19 | 23.39 | 30.10 |
Configuration /wp-admin/admin.php?page=attrace-config | 1,105 | 2.14 | 24.60 | 38.97 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
You still need to fix the following
- This plugin did not uninstall successfully, leaving 6 options in the database
- db_upgraded
- widget_recent-posts
- theysaidso_admin_options
- widget_theysaidso_widget
- widget_recent-comments
- can_compress_scripts
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 no errors were found, this is by no means an exhaustive test
SRP 50% from 2 tests
🔹 Tests weight: 20 | It is important to ensure that your PHP files perform no action when accessed directly, respecting the single-responsibility principle
Please take a closer look at the following
- 366× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Google\\Protobuf\\Internal\\Message' not found in wp-content/plugins/attrace/vendor/google/protobuf/src/Google/Protobuf/Internal/ExtensionRangeOptions.php:16
- > PHP Fatal error
Trait 'Google\\Protobuf\\Internal\\GetPublicDescriptorTrait' not found in wp-content/plugins/attrace/vendor/google/protobuf/src/Google/Protobuf/FieldDescriptor.php on line 38
- > PHP Notice
Constant SODIUM_CRYPTO_PWHASH_ALG_ARGON2I13 already defined in wp-content/plugins/attrace/vendor/paragonie/sodium_compat/lib/php72compat_const.php on line 55
- > PHP Notice
Constant SODIUM_CRYPTO_BOX_KEYPAIRBYTES already defined in wp-content/plugins/attrace/vendor/paragonie/sodium_compat/lib/php72compat_const.php on line 32
- > PHP Fatal error
Uncaught Error: Class 'ParagonIE_Sodium_Core_Salsa20' not found in wp-content/plugins/attrace/vendor/paragonie/sodium_compat/namespaced/Core/Salsa20.php:4
- > PHP Notice
Constant SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_ABYTES already defined in wp-content/plugins/attrace/vendor/paragonie/sodium_compat/lib/php72compat_const.php on line 26
- > PHP Notice
Constant SODIUM_LIBRARY_MAJOR_VERSION already defined in wp-content/plugins/attrace/vendor/paragonie/sodium_compat/lib/php72compat_const.php on line 3
- > PHP Fatal error
Uncaught Error: Class 'ParagonIE_Sodium_Core_SipHash' not found in wp-content/plugins/attrace/vendor/paragonie/sodium_compat/namespaced/Core/SipHash.php:4
- > PHP Notice
Constant SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NSECBYTES already defined in wp-content/plugins/attrace/vendor/paragonie/sodium_compat/lib/php72compat_const.php on line 20
- > PHP Fatal error
Uncaught Error: Class 'ParagonIE_Sodium_Core_ChaCha20' not found in wp-content/plugins/attrace/vendor/paragonie/sodium_compat/src/Core/HChaCha20.php:10
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
There were no browser issues found
Optimizations
Plugin configuration 93% from 29 tests
readme.txt Passed 16 tests
The readme.txt file is important because it is parsed by WordPress.org for the public listing of your plugin
3 plugin tags: blockchain, affiliate, tracking
attrace/attrace.php 85% from 13 tests
The main file in "Attrace" v. 2.0.21 serves as a complement to information provided in readme.txt and as the entry point to the plugin
It is important to fix the following:
- Requires PHP: Required version must be the same as the one declared in readme.txt ("7.2" instead of "7.0")
- Description: The description should be shorter than 140 characters (currently 244 characters long)
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
Good job! No executable or dangerous file extensions detected86,518 lines of code in 592 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 440 | 11,076 | 38,264 | 61,597 |
PO File | 107 | 7,062 | 7,276 | 22,577 |
JSON | 10 | 0 | 0 | 845 |
Protocol Buffers | 4 | 299 | 695 | 649 |
Markdown | 14 | 170 | 0 | 492 |
YAML | 5 | 6 | 0 | 156 |
XML | 6 | 13 | 43 | 128 |
Bourne Shell | 4 | 19 | 2 | 47 |
make | 1 | 9 | 4 | 26 |
JavaScript | 1 | 0 | 0 | 1 |
PHP code 50% from 2 tests
Analyzing logical lines of code, cyclomatic complexity, and other code metrics
Please fix the following
- Cyclomatic complexity of methods should be reduced to less than 100 (currently 106)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.27 |
Average class complexity | 16.79 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 633.00 |
Average method complexity | 2.85 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 106.00 |
Code structure | ||
---|---|---|
Namespaces | 51 | |
Interfaces | 1 | |
Traits | 2 | |
Classes | 407 | |
▷ Abstract classes | 27 | 6.63% |
▷ Concrete classes | 380 | 93.37% |
▷ Final classes | 0 | 0.00% |
Methods | 3,495 | |
▷ Static methods | 771 | 22.06% |
▷ Public methods | 3,355 | 95.99% |
▷ Protected methods | 73 | 2.09% |
▷ Private methods | 67 | 1.92% |
Functions | 176 | |
▷ Named functions | 168 | 95.45% |
▷ Anonymous functions | 8 | 4.55% |
Constants | 737 | |
▷ Global constants | 23 | 3.12% |
▷ Class constants | 714 | 96.88% |
▷ Public constants | 714 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
5 PNG files occupy 0.47MB with 0.31MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
app/assets/img/integration-configuration.png | 225.99KB | 67.94KB | ▼ 69.94% |
app/assets/img/operational_key.png | 195.58KB | 65.00KB | ▼ 66.76% |
app/assets/img/menu-logo.png | 5.34KB | 0.89KB | ▼ 83.25% |
app/assets/img/public-address.png | 39.22KB | 19.36KB | ▼ 50.63% |
app/assets/img/menu-logo-large.png | 11.46KB | 4.31KB | ▼ 62.40% |