Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
Installer ran successfully
Server metrics [RAM: ▲0.26MB] [CPU: ▲0.82ms] Passed 4 tests
A check of server-side resources used by Mail Grab
Server-side resource usage in normal parameters
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.71 ▲0.25 | 42.13 ▲5.15 |
Dashboard /wp-admin | 3.61 ▲0.31 | 47.37 ▼0.85 |
Posts /wp-admin/edit.php | 3.66 ▲0.31 | 53.67 ▲5.24 |
Add New Post /wp-admin/post-new.php | 6.13 ▲0.24 | 93.29 ▼3.63 |
Media Library /wp-admin/upload.php | 3.47 ▲0.24 | 38.80 ▲2.60 |
All Emails /wp-admin/edit.php?post_type=mlgb_email | 3.51 | 37.64 |
Settings /wp-admin/edit.php?post_type=mlgb_email&page=settings | 3.46 | 36.35 |
Server storage [IO: ▲0.41MB] [DB: ▲0.00MB] Passed 3 tests
How much does this plugin use your filesystem and database?
No storage issues were detected
Filesystem: 221 new files
Database: no new tables, 7 new options
New WordPress options |
---|
db_upgraded |
can_compress_scripts |
widget_recent-comments |
theysaidso_admin_options |
mlgb_settings |
widget_recent-posts |
widget_theysaidso_widget |
Browser metrics Passed 4 tests
This is an overview of browser requirements for Mail Grab
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,824 ▲89 | 13.32 ▼1.06 | 1.73 ▲0.16 | 43.58 ▲2.27 |
Dashboard /wp-admin | 2,230 ▲42 | 4.83 ▼1.07 | 110.52 ▲11.15 | 42.08 ▼2.03 |
Posts /wp-admin/edit.php | 2,113 ▲24 | 2.12 ▲0.15 | 39.94 ▼1.08 | 35.82 ▲1.48 |
Add New Post /wp-admin/post-new.php | 1,553 ▲34 | 23.38 ▼0.28 | 661.88 ▼16.77 | 59.27 ▼4.37 |
Media Library /wp-admin/upload.php | 1,406 ▲18 | 4.24 ▼0.02 | 99.94 ▼19.40 | 43.83 ▼3.79 |
All Emails /wp-admin/edit.php?post_type=mlgb_email | 1,087 | 2.00 | 32.30 | 27.86 |
Settings /wp-admin/edit.php?post_type=mlgb_email&page=settings | 1,073 | 3.44 | 50.42 | 23.24 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
Please fix the following items
- This plugin did not uninstall successfully, leaving 7 options in the database
- widget_recent-comments
- widget_recent-posts
- widget_theysaidso_widget
- db_upgraded
- theysaidso_admin_options
- mlgb_settings
- can_compress_scripts
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 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
Please take a closer look at the following
- 160× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/mail-grab/vendor/composer/installers/src/Composer/Installers/PrestashopInstaller.php:4
- > PHP Fatal error
Uncaught Error: Class 'Symfony\\Component\\CssSelector\\Exception\\ParseException' not found in wp-content/plugins/mail-grab/vendor/symfony/css-selector/Exception/ExpressionErrorException.php:22
- > PHP Fatal error
Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/mail-grab/vendor/composer/installers/src/Composer/Installers/RadPHPInstaller.php:4
- > PHP Fatal error
Uncaught Error: Interface 'Symfony\\Component\\CssSelector\\Parser\\Handler\\HandlerInterface' not found in wp-content/plugins/mail-grab/vendor/symfony/css-selector/Parser/Handler/StringHandler.php:32
- > PHP Fatal error
Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/mail-grab/vendor/composer/installers/src/Composer/Installers/Concrete5Installer.php:4
- > PHP Fatal error
Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/mail-grab/vendor/composer/installers/src/Composer/Installers/SyliusInstaller.php:4
- > PHP Fatal error
Uncaught Error: Class 'Symfony\\Component\\CssSelector\\XPath\\Extension\\AbstractExtension' not found in wp-content/plugins/mail-grab/vendor/symfony/css-selector/XPath/Extension/FunctionExtension.php:31
- > PHP Fatal error
Uncaught Error: Class 'Symfony\\Component\\CssSelector\ode\\AbstractNode' not found in wp-content/plugins/mail-grab/vendor/symfony/css-selector/Node/AttributeNode.php:24
- > PHP Fatal error
Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/mail-grab/vendor/composer/installers/src/Composer/Installers/TastyIgniterInstaller.php:5
- > PHP Fatal error
Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/mail-grab/vendor/composer/installers/src/Composer/Installers/SyDESInstaller.php:4
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
No browser errors were detected
Optimizations
Plugin configuration 97% from 29 tests
readme.txt 94% 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
Please fix the following attributes:
- Screenshots: No descriptions were found for these screenshots #1, #2, #3, #4 in mail-grab/assets to your readme.txt
mail-grab/mail-grab.php Passed 13 tests
The primary PHP file in "Mail Grab" version 1.0.0 is used by WordPress to initiate all plugin functionality
85 characters long description:
Debug WordPress emails with ease. Log all emails and disable email sending if needed.
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | Executable files are considered dangerous and should not be included with any WordPress plugin
There were no executable files found in this plugin8,311 lines of code in 214 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 199 | 1,732 | 3,478 | 7,281 |
JSON | 4 | 0 | 0 | 469 |
HTML | 2 | 0 | 0 | 356 |
YAML | 3 | 30 | 3 | 118 |
Markdown | 3 | 11 | 0 | 45 |
XML | 2 | 3 | 0 | 39 |
CSS | 1 | 0 | 0 | 3 |
PHP code Passed 2 tests
Cyclomatic complexity and code structure are the fingerprint of this plugin
Everything seems fine, there were no complexity issues found
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.25 |
Average class complexity | 3.57 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 69.00 |
Average method complexity | 1.82 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 27.00 |
Code structure | ||
---|---|---|
Namespaces | 23 | |
Interfaces | 6 | |
Traits | 0 | |
Classes | 185 | |
▷ Abstract classes | 5 | 2.70% |
▷ Concrete classes | 180 | 97.30% |
▷ Final classes | 2 | 1.11% |
Methods | 579 | |
▷ Static methods | 23 | 3.97% |
▷ Public methods | 510 | 88.08% |
▷ Protected methods | 48 | 8.29% |
▷ Private methods | 21 | 3.63% |
Functions | 14 | |
▷ Named functions | 2 | 14.29% |
▷ Anonymous functions | 12 | 85.71% |
Constants | 20 | |
▷ Global constants | 2 | 10.00% |
▷ Class constants | 18 | 90.00% |
▷ Public constants | 18 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
It is recommended to compress PNG files in your plugin to minimize bandwidth usage
PNG images were not found in this plugin