Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
The plugin installed gracefully, with no errors
Server metrics [RAM: ▲0.09MB] [CPU: ▼1.39ms] Passed 4 tests
This is a short check of server-side resources used by AntiSpam for Contact Form 7
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.51 ▲0.05 | 39.27 ▲0.56 |
Dashboard /wp-admin | 3.42 ▲0.11 | 48.44 ▼2.92 |
Posts /wp-admin/edit.php | 3.47 ▲0.11 | 50.03 ▼2.96 |
Add New Post /wp-admin/post-new.php | 6.00 ▲0.11 | 103.23 ▲1.69 |
Media Library /wp-admin/upload.php | 3.34 ▲0.11 | 37.21 ▼0.22 |
Server storage [IO: ▲1.18MB] [DB: ▲0.00MB] Passed 3 tests
Analyzing filesystem and database footprints of this plugin
There were no storage issued detected upon installing this plugin
Filesystem: 145 new files
Database: 2 new tables, 8 new options
New tables |
---|
wp_cf7a_wordlist |
wp_cf7a_blacklist |
New WordPress options |
---|
can_compress_scripts |
widget_recent-comments |
widget_recent-posts |
db_upgraded |
theysaidso_admin_options |
cf7a_options |
cf7a_db_version |
widget_theysaidso_widget |
Browser metrics Passed 4 tests
An overview of browser requirements for AntiSpam for Contact Form 7
Normal browser usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,795 ▲34 | 14.35 ▼0.01 | 1.80 ▲0.27 | 41.28 ▼3.07 |
Dashboard /wp-admin | 2,195 ▲18 | 5.61 ▼0.00 | 92.60 ▲2.98 | 44.03 ▲0.28 |
Posts /wp-admin/edit.php | 2,106 ▲3 | 1.99 ▼0.03 | 42.13 ▲2.78 | 40.99 ▲5.41 |
Add New Post /wp-admin/post-new.php | 1,534 ▲6 | 23.41 ▲0.33 | 667.54 ▲27.14 | 52.31 ▼7.89 |
Media Library /wp-admin/upload.php | 1,403 ▲3 | 4.26 ▲0.15 | 104.42 ▼13.60 | 46.54 ▼1.76 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
You still need to fix the following
- This plugin did not uninstall successfully, leaving 6 options in the database
- db_upgraded
- theysaidso_admin_options
- widget_recent-posts
- widget_theysaidso_widget
- can_compress_scripts
- widget_recent-comments
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
Even though everything seems fine, this is not an exhaustive test
SRP 0% 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
- 1× PHP files perform the task of outputting text when accessed with GET requests:
- > /wp-content/plugins/cf7-antispam/vendor/l3u/b8/example/index.php
- 41× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'GeoIp2\\Record\\AbstractPlaceRecord' not found in wp-content/plugins/cf7-antispam/vendor/geoip2/geoip2/src/Record/City.php:25
- > PHP Fatal error
Uncaught Error: Class 'b8\\storage\\storage_base' not found in wp-content/plugins/cf7-antispam/vendor/l3u/b8/b8/storage/dba.php:16
- > PHP Fatal error
Uncaught Error: Class 'GeoIp2\\Exception\\GeoIp2Exception' not found in wp-content/plugins/cf7-antispam/vendor/geoip2/geoip2/src/Exception/AuthenticationException.php:10
- > PHP Fatal error
Uncaught Error: Call to undefined function add_filter() in wp-content/plugins/cf7-antispam/includes/cf7a-functions.php:137
- > PHP Fatal error
Uncaught Error: Class 'b8\\storage\\storage_base' not found in wp-content/plugins/cf7-antispam/vendor/l3u/b8/b8/storage/mysql.php:17
- > PHP Fatal error
Uncaught Error: Interface 'GeoIp2\\ProviderInterface' not found in wp-content/plugins/cf7-antispam/vendor/geoip2/geoip2/src/Database/Reader.php:45
- > PHP Fatal error
Uncaught Error: Class 'GeoIp2\\Record\\Country' not found in wp-content/plugins/cf7-antispam/vendor/geoip2/geoip2/src/Record/RepresentedCountry.php:18
- > PHP Fatal error
Uncaught Error: Class 'b8\\storage\\storage_base' not found in wp-content/plugins/cf7-antispam/vendor/l3u/b8/b8/storage/sqlite.php:17
- > PHP Fatal error
Uncaught Error: Interface 'MaxMind\\WebService\\Http\\Request' not found in wp-content/plugins/cf7-antispam/vendor/maxmind/web-service-common/src/WebService/Http/CurlRequest.php:14
- > PHP Fatal error
Uncaught Error: Class 'MaxMind\\Exception\\InvalidRequestException' not found in wp-content/plugins/cf7-antispam/vendor/maxmind/web-service-common/src/Exception/IpAddressNotFoundException.php:7
- > 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 97% from 29 tests
readme.txt 94% from 16 tests
Often overlooked, readme.txt is one of the most important files in your plugin
Attributes that require attention:
- Screenshots: Add descriptions for screenshots #1, #2, #3, #4 in cf7-antispam/assets to your readme.txt
cf7-antispam/cf7-antispam.php Passed 13 tests
The main file in "AntiSpam for Contact Form 7" v. 0.4.5 serves as a complement to information provided in readme.txt and as the entry point to the plugin
71 characters long description:
A trustworthy antispam plugin for Contact Form 7. Simple but effective.
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short check of programming languages and file extensions; no executable files are allowed
There were no executable files found in this plugin11,218 lines of code in 125 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 93 | 2,063 | 4,266 | 7,640 |
Markdown | 8 | 415 | 0 | 995 |
C | 1 | 118 | 25 | 668 |
JavaScript | 6 | 76 | 110 | 536 |
reStructuredText | 2 | 292 | 13 | 515 |
JSON | 5 | 0 | 0 | 439 |
Sass | 2 | 50 | 10 | 263 |
XML | 1 | 4 | 0 | 59 |
Bourne Shell | 1 | 18 | 0 | 38 |
m4 | 1 | 8 | 0 | 32 |
Bourne Again Shell | 1 | 9 | 11 | 13 |
SQL | 2 | 9 | 18 | 10 |
C/C++ Header | 1 | 4 | 12 | 8 |
CSS | 1 | 0 | 0 | 2 |
PHP code 50% from 2 tests
A short review of cyclomatic complexity and code structure
These items need your attention
- Cyclomatic complexity of methods has to be reduced to less than 100 (currently 143)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.44 |
Average class complexity | 14.37 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 159.00 |
Average method complexity | 3.53 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 143.00 |
Code structure | ||
---|---|---|
Namespaces | 18 | |
Interfaces | 2 | |
Traits | 0 | |
Classes | 73 | |
▷ Abstract classes | 4 | 5.48% |
▷ Concrete classes | 69 | 94.52% |
▷ Final classes | 0 | 0.00% |
Methods | 403 | |
▷ Static methods | 65 | 16.13% |
▷ Public methods | 285 | 70.72% |
▷ Protected methods | 31 | 7.69% |
▷ Private methods | 87 | 21.59% |
Functions | 35 | |
▷ Named functions | 24 | 68.57% |
▷ Anonymous functions | 11 | 31.43% |
Constants | 51 | |
▷ Global constants | 14 | 27.45% |
▷ Class constants | 37 | 72.55% |
▷ Public constants | 21 | 56.76% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
All PNG images should be compressed to minimize bandwidth usage for end users
PNG images were not found in this plugin