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
Install script ran successfully
Server metrics [RAM: ▲0.64MB] [CPU: ▲0.99ms] Passed 4 tests
This is a short check of server-side resources used by Melhor Envio
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.08 ▲0.61 | 46.78 ▲2.45 |
Dashboard /wp-admin | 3.95 ▲0.65 | 52.42 ▼1.58 |
Posts /wp-admin/edit.php | 4.07 ▲0.71 | 53.36 ▲5.28 |
Add New Post /wp-admin/post-new.php | 6.56 ▲0.67 | 93.48 ▼0.62 |
Media Library /wp-admin/upload.php | 3.88 ▲0.65 | 43.38 ▲3.73 |
Server storage [IO: ▲1.46MB] [DB: ▲0.00MB] Passed 3 tests
Analyzing filesystem and database footprints of this plugin
No storage issues were detected
Filesystem: 255 new files
Database: no new tables, 9 new options
New WordPress options |
---|
widget_recent-posts |
theysaidso_admin_options |
melhorenvio_installed |
widget_theysaidso_widget |
db_upgraded |
can_compress_scripts |
wp_option_notices_melhor_envio |
melhorenvio_version |
widget_recent-comments |
Browser metrics Passed 4 tests
Melhor Envio: an overview of browser usage
Normal browser usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,923 ▲137 | 13.43 ▼0.71 | 9.68 ▲7.37 | 44.91 ▼2.43 |
Dashboard /wp-admin | 2,241 ▲64 | 5.68 ▲0.00 | 91.56 ▼12.42 | 45.44 ▼0.78 |
Posts /wp-admin/edit.php | 2,146 ▲43 | 2.09 ▲0.08 | 45.81 ▲10.76 | 37.94 ▲2.72 |
Add New Post /wp-admin/post-new.php | 1,562 ▲36 | 23.46 ▲0.17 | 689.71 ▲28.25 | 62.18 ▲9.12 |
Media Library /wp-admin/upload.php | 1,443 ▲43 | 4.16 ▲0.02 | 101.84 ▼4.07 | 47.85 ▲4.04 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
The following items require your attention
- This plugin did not uninstall successfully, leaving 9 options in the database
- theysaidso_admin_options
- melhorenvio_version
- can_compress_scripts
- widget_theysaidso_widget
- widget_recent-comments
- melhorenvio_installed
- db_upgraded
- wp_option_notices_melhor_envio
- widget_recent-posts
Smoke tests 75% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a short smoke test looking for 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
The following issues need your attention
- 1× GET requests to PHP files trigger server-side errors or Error 500 responses:
- > PHP Fatal error
Uncaught Error: Call to undefined function MelhorEnvio\\Controllers\\add_action() in wp-content/plugins/melhor-envio-cotacao/Controllers/QuotationController.php:20
- > 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 issues were found
Optimizations
Plugin configuration 76% from 29 tests
readme.txt 75% 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 require attention:
- Screenshots: Please add descriptions for these screenshots #1, #2, #3, #4 in melhor-envio-cotacao/assets to your readme.txt
- Contributors: Plugin contributors field is missing
- Tags: You are using too many tags: 11 tag instead of maximum 10
- Requires php: The plugin version is formatted incorrectly
melhor-envio-cotacao/melhor-envio-beta.php 77% from 13 tests
Analyzing the main PHP file in "Melhor Envio" version 2.14.0
It is important to fix the following:
- Main file name: The principal plugin file should be the same as the plugin slug ("melhor-envio-cotacao.php" instead of "melhor-envio-beta.php")
- Requires at least: Required version must match the one declared in readme.txt ("4.7" instead of "4.0")
- Text Domain: The text domain must be the same as the plugin slug, although optional since WordPress version 4.6
Code Analysis 5% from 3 tests
File types 0% from 1 test
🔸 Test weight: 35 | A short glimpse at programming languages used with this plugin and a check that no dangerous files are present
Please fix the following items
- Even if your plugin relies on executable files (for example a companion app), never distribute executable files with your plugin
- .out - Executable in Linux
- ☣ wp-content/plugins/melhor-envio-cotacao/a.out
- .out - Executable in Linux
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 127 | 2,106 | 2,767 | 7,702 |
Vuejs Component | 16 | 136 | 33 | 2,851 |
Stylus | 59 | 310 | 35 | 2,369 |
JavaScript | 24 | 143 | 41 | 1,586 |
Markdown | 1 | 57 | 0 | 158 |
JSON | 4 | 0 | 0 | 90 |
CSS | 4 | 13 | 9 | 68 |
PO File | 3 | 3 | 0 | 48 |
PHP code Passed 2 tests
Cyclomatic complexity and code structure are the fingerprint of this plugin
All good! No complexity issues found
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.40 |
Average class complexity | 8.42 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 77.00 |
Average method complexity | 2.95 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 26.00 |
Code structure | ||
---|---|---|
Namespaces | 7 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 122 | |
▷ Abstract classes | 1 | 0.82% |
▷ Concrete classes | 121 | 99.18% |
▷ Final classes | 1 | 0.83% |
Methods | 459 | |
▷ Static methods | 49 | 10.68% |
▷ Public methods | 384 | 83.66% |
▷ Protected methods | 1 | 0.22% |
▷ Private methods | 74 | 16.12% |
Functions | 42 | |
▷ Named functions | 0 | 0.00% |
▷ Anonymous functions | 42 | 100.00% |
Constants | 207 | |
▷ Global constants | 6 | 2.90% |
▷ Class constants | 201 | 97.10% |
▷ Public constants | 200 | 99.50% |
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
There were not PNG files found in your plugin