Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
The plugin installed gracefully, with no errors
Server metrics [RAM: ▲0.05MB] [CPU: ▼1.90ms] Passed 4 tests
Server-side resources used by Wordpress Mailerlite Integration Lite
Server-side resource usage in normal parameters
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.51 ▲0.05 | 40.02 ▼1.65 |
Dashboard /wp-admin | 3.35 ▲0.05 | 52.35 ▲4.70 |
Posts /wp-admin/edit.php | 3.47 ▲0.11 | 49.95 ▼0.54 |
Add New Post /wp-admin/post-new.php | 5.95 ▲0.07 | 94.44 ▼3.67 |
Media Library /wp-admin/upload.php | 3.28 ▲0.05 | 38.11 ▼1.72 |
Server storage [IO: ▲0.79MB] [DB: ▲0.00MB] Passed 3 tests
Filesystem and database footprint
No storage issues were detected
Filesystem: 238 new files
Database: no new tables, 7 new options
New WordPress options |
---|
db_upgraded |
widget_recent-comments |
widget_wpmi-widget |
can_compress_scripts |
theysaidso_admin_options |
widget_recent-posts |
widget_theysaidso_widget |
Browser metrics Passed 4 tests
Wordpress Mailerlite Integration Lite: an overview of browser usage
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,902 ▲141 | 14.16 ▼0.56 | 8.28 ▲6.64 | 43.95 ▲5.54 |
Dashboard /wp-admin | 2,222 ▲45 | 5.80 ▲0.13 | 94.26 ▲1.52 | 38.60 ▼3.39 |
Posts /wp-admin/edit.php | 2,127 ▲24 | 2.26 ▲0.28 | 39.56 ▼2.21 | 37.02 ▼0.11 |
Add New Post /wp-admin/post-new.php | 1,561 ▲35 | 18.62 ▼4.47 | 669.22 ▲42.43 | 71.62 ▲14.87 |
Media Library /wp-admin/upload.php | 1,421 ▲21 | 4.38 ▲0.10 | 96.56 ▼11.25 | 44.10 ▼2.79 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
You still need to fix the following
- This plugin did not uninstall successfully, leaving 7 options in the database
- widget_theysaidso_widget
- can_compress_scripts
- db_upgraded
- theysaidso_admin_options
- widget_recent-comments
- widget_wpmi-widget
- widget_recent-posts
Smoke tests 75% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
The smoke test was a success, however most plugin functionality was not tested
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
- 115× 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/wp-mailerlite-lite/includes/vendor/guzzlehttp/psr7/tests/AppendStreamTest.php:7
- > PHP Fatal error
require(): Failed opening required 'wp-content/plugins/wp-mailerlite-lite/includes/vendor/guzzlehttp/psr7/tests/../vendor/autoload.php' (include_path='.:/usr/share/php') in wp-content/plugins/wp-mailerlite-lite/includes/vendor/guzzlehttp/psr7/tests/bootstrap.php on line 4
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Http\\Message\\StreamInterface' not found in wp-content/plugins/wp-mailerlite-lite/includes/vendor/guzzlehttp/psr7/tests/StreamDecoratorTraitTest.php:8
- > PHP Fatal error
Uncaught Error: Class 'PHPUnit_Framework_TestCase' not found in wp-content/plugins/wp-mailerlite-lite/includes/vendor/guzzlehttp/psr7/tests/ServerRequestTest.php:11
- > PHP Fatal error
Uncaught Error: Class 'Http\\Message\\Encoding\\FilteredStream' not found in wp-content/plugins/wp-mailerlite-lite/includes/vendor/php-http/message/src/Encoding/GzipEncodeStream.php:12
- > PHP Fatal error
Uncaught Error: Class 'Http\\Client\\Exception\\RequestException' not found in wp-content/plugins/wp-mailerlite-lite/includes/vendor/php-http/httplug/src/Exception/NetworkException.php:12
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Http\\Message\\StreamInterface' not found in wp-content/plugins/wp-mailerlite-lite/includes/vendor/guzzlehttp/psr7/src/BufferStream.php:14
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Http\\Message\\RequestInterface' not found in wp-content/plugins/wp-mailerlite-lite/includes/vendor/guzzlehttp/psr7/src/Request.php:12
- > PHP Fatal error
Uncaught Error: Class 'Http\\Message\\Encoding\\FilteredStream' not found in wp-content/plugins/wp-mailerlite-lite/includes/vendor/php-http/message/src/Encoding/CompressStream.php:12
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Http\\Message\\RequestInterface' not found in wp-content/plugins/wp-mailerlite-lite/includes/vendor/psr/http-message/src/ServerRequestInterface.php:43
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
There were no browser issues found
Optimizations
Plugin configuration 97% from 29 tests
readme.txt 94% from 16 tests
Perhaps the most important file in your plugin readme.txt gets parsed in order to generate the public listing of your plugin
Attributes that need to be fixed:
- Screenshots: Add images for these screenshots: #1 (Plugin settings), #2 (Plugin widget settings), #3 (Plugin widget)
wp-mailerlite-lite/wp-mailerlite-lite.php Passed 13 tests
Analyzing the main PHP file in "Wordpress Mailerlite Integration Lite" version 1.1.1
94 characters long description:
With this plugin you can integrate your website users with Mailerlite email marketing software
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | Executable files are not allowed as they can serve as attack vectors
Good job! No executable or dangerous file extensions detected13,561 lines of code in 217 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 168 | 2,359 | 4,935 | 10,491 |
JSON | 16 | 0 | 0 | 1,315 |
Markdown | 20 | 787 | 0 | 1,158 |
CSS | 3 | 18 | 0 | 430 |
JavaScript | 3 | 7 | 0 | 68 |
XML | 3 | 1 | 3 | 48 |
YAML | 3 | 5 | 0 | 29 |
make | 1 | 7 | 0 | 22 |
PHP code Passed 2 tests
A short review of cyclomatic complexity and code structure
There are no cyclomatic complexity problems detected for this plugin
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.20 |
Average class complexity | 4.99 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 62.00 |
Average method complexity | 1.67 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 18.00 |
Code structure | ||
---|---|---|
Namespaces | 30 | |
Interfaces | 21 | |
Traits | 6 | |
Classes | 132 | |
▷ Abstract classes | 3 | 2.27% |
▷ Concrete classes | 129 | 97.73% |
▷ Final classes | 33 | 25.58% |
Methods | 1,028 | |
▷ Static methods | 44 | 4.28% |
▷ Public methods | 947 | 92.12% |
▷ Protected methods | 24 | 2.33% |
▷ Private methods | 57 | 5.54% |
Functions | 107 | |
▷ Named functions | 31 | 28.97% |
▷ Anonymous functions | 76 | 71.03% |
Constants | 12 | |
▷ Global constants | 3 | 25.00% |
▷ Class constants | 9 | 75.00% |
▷ Public constants | 9 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Using a strong compression for your PNG files is a great way to speed-up your plugin
3 PNG files occupy 0.10MB with 0.06MB in potential savings
Potential savings
Compression of 3 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
screenshot-1.png | 49.87KB | 19.62KB | ▼ 60.66% |
screenshot-2.png | 31.39KB | 12.76KB | ▼ 59.34% |
screenshot-3.png | 17.91KB | 7.56KB | ▼ 57.78% |