Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
The plugin installed successfully, without throwing any errors or notices
Server metrics [RAM: ▲0.28MB] [CPU: ▼0.58ms] Passed 4 tests
Server-side resources used by WPO365 | Mail Integration for Office 365 / Outlook
No issues were detected with server-side resource usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.72 ▲0.26 | 44.58 ▲2.78 |
Dashboard /wp-admin | 3.63 ▲0.33 | 50.13 ▼5.19 |
Posts /wp-admin/edit.php | 3.69 ▲0.33 | 52.34 ▲5.83 |
Add New Post /wp-admin/post-new.php | 6.15 ▲0.27 | 90.48 ▼5.74 |
Media Library /wp-admin/upload.php | 3.50 ▲0.27 | 39.73 ▲6.11 |
Mail Integration 365 Settings /wp-admin/options-general.php?page=mail-integration-365-settings | 3.49 | 36.04 |
Server storage [IO: ▲1.00MB] [DB: ▲0.00MB] Passed 3 tests
Filesystem and database footprint
The plugin installed successfully
Filesystem: 234 new files
Database: no new tables, 8 new options
New WordPress options |
---|
mail_integration_365_plugin_ops_access_token |
can_compress_scripts |
widget_theysaidso_widget |
widget_recent-posts |
mail_integration_365_plugin_ops |
db_upgraded |
theysaidso_admin_options |
widget_recent-comments |
Browser metrics Passed 4 tests
Checking browser requirements for WPO365 | Mail Integration for Office 365 / Outlook
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,793 ▲32 | 14.27 ▲0.06 | 1.61 ▼0.48 | 39.42 ▼5.94 |
Dashboard /wp-admin | 2,199 ▲22 | 5.57 ▼0.01 | 97.19 ▲8.64 | 37.70 ▼3.31 |
Posts /wp-admin/edit.php | 2,104 ▲7 | 2.00 ▲0.03 | 39.67 ▲5.22 | 34.69 ▲0.28 |
Add New Post /wp-admin/post-new.php | 1,531 ▲5 | 23.55 ▲0.09 | 662.52 ▼50.71 | 50.94 ▼6.04 |
Media Library /wp-admin/upload.php | 1,401 ▲1 | 4.20 ▼0.03 | 98.16 ▼11.89 | 40.11 ▼6.33 |
Mail Integration 365 Settings /wp-admin/options-general.php?page=mail-integration-365-settings | 890 | 2.07 | 27.68 | 27.90 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
Please fix the following items
- The uninstall procedure has failed, leaving 6 options in the database
- can_compress_scripts
- db_upgraded
- widget_recent-comments
- widget_recent-posts
- theysaidso_admin_options
- widget_theysaidso_widget
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
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
- 68× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Interface '_PhpScoper99e9e79e8301\\GuzzleHttp\\Cookie\\CookieJarInterface' not found in wp-content/plugins/mail-integration-365/libs/vendor/guzzlehttp/guzzle/src/Cookie/CookieJar.php:10
- > PHP Fatal error
Uncaught Error: Interface '_PhpScoper99e9e79e8301\\Psr\\Http\\Message\\RequestInterface' not found in wp-content/plugins/mail-integration-365/libs/vendor/psr/http-message/src/ServerRequestInterface.php:43
- > PHP Fatal error
Uncaught Error: Interface '_PhpScoper99e9e79e8301\\Psr\\Http\\Message\\StreamInterface' not found in wp-content/plugins/mail-integration-365/libs/vendor/guzzlehttp/psr7/src/NoSeekStream.php:10
- > PHP Fatal error
Uncaught Error: Interface '_PhpScoper99e9e79e8301\\League\\OAuth2\\Client\\Token\\AccessTokenInterface' not found in wp-content/plugins/mail-integration-365/libs/vendor/league/oauth2-client/src/Token/ResourceOwnerAccessTokenInterface.php:17
- > PHP Fatal error
Uncaught Error: Interface '_PhpScoper99e9e79e8301\\Psr\\Http\\Message\\StreamInterface' not found in wp-content/plugins/mail-integration-365/libs/vendor/guzzlehttp/psr7/src/AppendStream.php:12
- > PHP Fatal error
Uncaught Error: Interface '_PhpScoper99e9e79e8301\\Psr\\Http\\Message\\UriInterface' not found in wp-content/plugins/mail-integration-365/libs/vendor/guzzlehttp/psr7/src/Uri.php:14
- > PHP Fatal error
Uncaught Error: Class '_PhpScoper99e9e79e8301\\League\\OAuth2\\Client\\Grant\\AbstractGrant' not found in wp-content/plugins/mail-integration-365/libs/vendor/league/oauth2-client/src/Grant/Password.php:22
- > PHP Fatal error
Uncaught Error: Interface '_PhpScoper99e9e79e8301\\Psr\\Http\\Message\\StreamInterface' not found in wp-content/plugins/mail-integration-365/libs/vendor/guzzlehttp/psr7/src/LimitStream.php:10
- > PHP Fatal error
Uncaught Error: Class '_PhpScoper99e9e79e8301\\GuzzleHttp\\Exception\\TransferException' not found in wp-content/plugins/mail-integration-365/libs/vendor/guzzlehttp/guzzle/src/Exception/ConnectException.php:12
- > PHP Fatal error
Uncaught Error: Class '_PhpScoper99e9e79e8301\\League\\OAuth2\\Client\\Provider\\AbstractProvider' not found in wp-content/plugins/mail-integration-365/libs/vendor/thenetworg/oauth2-azure/src/Provider/Azure.php:13
- > 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 96% from 29 tests
readme.txt Passed 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
5 plugin tags: outlook smtp, smtp, 365 smtp, oauth, live smtp
mail-integration-365/mail_integration_365.php 92% from 13 tests
This is the main PHP file of "WPO365 | Mail Integration for Office 365 / Outlook" version 1.9.1, providing information about the plugin in the header fields and serving as the principal entry point to the plugin's functions
You should first fix the following items:
- Main file name: Please rename the main PHP file in this plugin to the plugin slug ("mail-integration-365.php" instead of "mail_integration_365.php")
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
Success! There were no dangerous files found in this plugin16,210 lines of code in 208 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 162 | 549 | 7,637 | 10,388 |
Markdown | 23 | 1,546 | 0 | 4,534 |
JSON | 17 | 0 | 0 | 1,234 |
XML | 1 | 0 | 0 | 19 |
JavaScript | 1 | 2 | 3 | 11 |
make | 1 | 4 | 0 | 9 |
YAML | 1 | 0 | 0 | 7 |
Dockerfile | 1 | 3 | 7 | 5 |
Bourne Shell | 1 | 2 | 0 | 3 |
PHP code Passed 2 tests
This is a short overview of cyclomatic complexity and code structure for this plugin
No complexity issues detected
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.45 |
Average class complexity | 11.92 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 88.00 |
Average method complexity | 2.69 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 27.00 |
Code structure | ||
---|---|---|
Namespaces | 23 | |
Interfaces | 30 | |
Traits | 10 | |
Classes | 103 | |
▷ Abstract classes | 2 | 1.94% |
▷ Concrete classes | 101 | 98.06% |
▷ Final classes | 34 | 33.66% |
Methods | 946 | |
▷ Static methods | 162 | 17.12% |
▷ Public methods | 754 | 79.70% |
▷ Protected methods | 67 | 7.08% |
▷ Private methods | 125 | 13.21% |
Functions | 128 | |
▷ Named functions | 35 | 27.34% |
▷ Anonymous functions | 93 | 72.66% |
Constants | 72 | |
▷ Global constants | 0 | 0.00% |
▷ Class constants | 72 | 100.00% |
▷ Public constants | 61 | 84.72% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
All PNG images should be compressed to minimize bandwidth usage for end users
There are no PNG files in this plugin