Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
The plugin installed gracefully, with no errors
Server metrics [RAM: ▲1.95MB] [CPU: ▲13.17ms] 75% from 4 tests
This is a short check of server-side resources used by Post Status Notifier Lite
Please fix the following
- RAM: Try to keep total memory usage under 10MB (currently 10.46MB on /wp-admin/options-general.php?page=post-status-notifier-lite)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 5.05 ▲1.59 | 51.20 ▲10.76 |
Dashboard /wp-admin | 5.35 ▲2.05 | 60.77 ▲9.48 |
Posts /wp-admin/edit.php | 5.46 ▲2.11 | 60.73 ▲12.44 |
Add New Post /wp-admin/post-new.php | 8.03 ▲2.14 | 115.09 ▲22.22 |
Media Library /wp-admin/upload.php | 5.27 ▲2.04 | 53.49 ▲19.99 |
Post Status Notifier Lite /wp-admin/options-general.php?page=post-status-notifier-lite | 10.46 | 88.66 |
Server storage [IO: ▲10.49MB] [DB: ▲0.07MB] Passed 3 tests
Input-output and database impact of this plugin
No storage issues were detected
Filesystem: 1,232 new files
Database: 1 new table, 8 new options
New tables |
---|
wp_psn_rules |
New WordPress options |
---|
widget_recent-comments |
theysaidso_admin_options |
can_compress_scripts |
psn_options |
db_upgraded |
psn_activated_version |
widget_theysaidso_widget |
widget_recent-posts |
Browser metrics Passed 4 tests
Post Status Notifier Lite: an overview of browser usage
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,794 ▲32 | 14.25 ▼0.10 | 1.62 ▼0.19 | 40.73 ▼4.44 |
Dashboard /wp-admin | 2,199 ▲28 | 5.61 ▼0.10 | 92.42 ▼8.01 | 37.87 ▼6.22 |
Posts /wp-admin/edit.php | 2,107 ▲4 | 1.94 ▼0.08 | 42.16 ▲0.05 | 33.22 ▼4.45 |
Add New Post /wp-admin/post-new.php | 1,529 ▲2 | 23.13 ▲0.08 | 684.87 ▲14.09 | 62.18 ▲6.97 |
Media Library /wp-admin/upload.php | 1,407 ▲7 | 4.26 ▲0.06 | 101.42 ▼7.18 | 43.71 ▼1.28 |
Post Status Notifier Lite /wp-admin/options-general.php?page=post-status-notifier-lite | 1,426 | 2.51 | 70.05 | 43.75 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.07MB] 50% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
These items require your attention
- This plugin does not fully uninstall, leaving 1 table in the database
- wp_psn_rules
- Zombie WordPress options were found after uninstall: 8 options
- widget_recent-comments
- db_upgraded
- psn_activated_version
- widget_theysaidso_widget
- widget_recent-posts
- psn_options
- theysaidso_admin_options
- can_compress_scripts
Smoke tests 25% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
Please fix the following server-side errors
- 2 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=post-status-notifier-lite
- > User deprecated in wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Vendor/Twig/Filter/Method.php+12
The IfwPsn_Vendor_Twig_Filter_Method class is deprecated since version 1.12 and will be removed in 2.0. Use IfwPsn_Vendor_Twig_SimpleFilter instead.
- 2 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=post-status-notifier-lite
- > User deprecated in wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Vendor/Twig/Filter.php+12
The IfwPsn_Vendor_Twig_Filter class is deprecated since version 1.12 and will be removed in 2.0. Use IfwPsn_Vendor_Twig_SimpleFilter instead.
- 2 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=post-status-notifier-lite
- > User deprecated in wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Vendor/Twig/Environment.php+1532
Using an instance of "IfwPsn_Vendor_Twig_Filter_Method" for filter "date_locale" is deprecated since version 1.21. Use IfwPsn_Vendor_Twig_SimpleFilter instead.
- 2 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=post-status-notifier-lite
- > User deprecated in wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Vendor/Twig/Filter/Function.php+12
The IfwPsn_Vendor_Twig_Filter_Function class is deprecated since version 1.12 and will be removed in 2.0. Use IfwPsn_Vendor_Twig_SimpleFilter instead.
- 2 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=post-status-notifier-lite
- > User deprecated in wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Vendor/Twig/Environment.php+1532
Using an instance of "IfwPsn_Vendor_Twig_Filter_Function" for filter "truncate" is deprecated since version 1.21. Use IfwPsn_Vendor_Twig_SimpleFilter instead.
- 2 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=post-status-notifier-lite
- > User deprecated in wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Vendor/Twig/Environment.php+1532
Using an instance of "IfwPsn_Vendor_Twig_Filter_Function" for filter "wordwrap" is deprecated since version 1.21. Use IfwPsn_Vendor_Twig_SimpleFilter instead.
- 2 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=post-status-notifier-lite
- > User deprecated in wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Vendor/Twig/Function/Method.php+13
The IfwPsn_Vendor_Twig_Function_Method class is deprecated since version 1.12 and will be removed in 2.0. Use IfwPsn_Vendor_Twig_SimpleFunction instead.
- 2 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=post-status-notifier-lite
- > User deprecated in wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Vendor/Twig/Function.php+12
The IfwPsn_Vendor_Twig_Function class is deprecated since version 1.12 and will be removed in 2.0. Use IfwPsn_Vendor_Twig_SimpleFunction instead.
- 2 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=post-status-notifier-lite
- > User deprecated in wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Vendor/Twig/Environment.php+1543
Using an instance of "IfwPsn_Vendor_Twig_Function_Method" for function "print_r" is deprecated since version 1.21. Use IfwPsn_Vendor_Twig_SimpleFunction instead.
- 2 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=post-status-notifier-lite
- > User deprecated in wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Vendor/Twig/Environment.php+1543
Using an instance of "IfwPsn_Vendor_Twig_Function_Method" for function "uniqid" is deprecated since version 1.21. Use IfwPsn_Vendor_Twig_SimpleFunction instead.
- 2 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=post-status-notifier-lite
- > User deprecated in wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Vendor/Twig/Environment.php+1543
Using an instance of "IfwPsn_Vendor_Twig_Function_Method" for function "admin_url" is deprecated since version 1.21. Use IfwPsn_Vendor_Twig_SimpleFunction instead.
SRP 0% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle: PHP files have to remain inert when accessed directly, throwing no errors and performing no actions
The following issues need your attention
- 1× PHP files output text when accessed directly:
- > /wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Wp/Plugin/Cli/Executables/script.php
- 1610× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Fatal error
require_once(): Failed opening required 'IFW_PSN_LIB_ROOTIfwPsn/Vendor/Zend/Form/Decorator/Abstract.php' (include_path='.:/usr/share/php') in wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Vendor/Zend/Form/Decorator/Image.php on line 23
- > PHP Fatal error
Uncaught Error: Class 'IfwPsn_Vendor_Twig_Node' not found in wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Vendor/Twig/Node/Text.php:18
- > PHP Fatal error
require_once(): Failed opening required 'IFW_PSN_LIB_ROOTIfwPsn/Vendor/Zend/View/Helper/HtmlObject.php' (include_path='.:/usr/share/php') in wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Vendor/Zend/View/Helper/HtmlPage.php on line 26
- > PHP Warning
Use of undefined constant IFW_PSN_LIB_ROOT - assumed 'IFW_PSN_LIB_ROOT' (this will throw an Error in a future version of PHP) in wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Vendor/Zend/Cache/Backend/Static.php on line 26
- > PHP Warning
Use of undefined constant IFW_PSN_LIB_ROOT - assumed 'IFW_PSN_LIB_ROOT' (this will throw an Error in a future version of PHP) in wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Vendor/Zend/Log/Writer/ZendMonitor.php on line 24
- > PHP Warning
Use of undefined constant IFW_PSN_LIB_ROOT - assumed 'IFW_PSN_LIB_ROOT' (this will throw an Error in a future version of PHP) in wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Vendor/Zend/Application/Bootstrap/Bootstrap.php on line 26
- > PHP Fatal error
Uncaught Error: Class 'IfwPsn_Zend_Form' not found in wp-content/plugins/post-status-notifier-lite/lib/Psn/Admin/Form/TestMail.php:10
- > PHP Fatal error
Uncaught Error: Class 'IfwPsn_Wp_Ajax_Response_Abstract' not found in wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Wp/Ajax/Response/Xml.php:11
- > PHP Fatal error
require_once(): Failed opening required 'IFW_PSN_LIB_ROOTIfwPsn/Vendor/Zend/Application/Resource/ResourceAbstract.php' (include_path='.:/usr/share/php') in wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Vendor/Zend/Application/Resource/Frontcontroller.php on line 26
- > PHP Warning
Use of undefined constant IFW_PSN_LIB_ROOT - assumed 'IFW_PSN_LIB_ROOT' (this will throw an Error in a future version of PHP) in wp-content/plugins/post-status-notifier-lite/lib/IfwPsn/Vendor/Zend/Validate/File/WordCount.php on line 25
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
Everything seems fine on the user side
Optimizations
Plugin configuration 87% from 29 tests
readme.txt 88% from 16 tests
The readme.txt file is an important file in your plugin as it is parsed by WordPress.org to prepare the public listing of your plugin
These attributes need your attention:
- Screenshots: These screenshots require images: #1 (Completely customizable notification rules), #2 (Just a few use cases), #3 (Overview some options panels (available in the premium version)), #4 (HTML email (available in the premium version)), #5 (Placeholders), #6 (Template syntax (available in the premium version)), #7 (Logger (available in the premium version)), #8 (PSN's selftester), #9 (Comprehensive documentation)
- Tags: There are too many tags (11 tag instead of maximum 10)
post-status-notifier-lite/post-status-notifier-lite.php 85% from 13 tests
The main PHP script in "Post Status Notifier Lite" version 1.11.1 is automatically included on every request by WordPress
It is important to fix the following:
- Description: Keep the plugin description shorter than 140 characters (currently 182 characters long)
- Text Domain: You no longer need to specify the text domain since WordPress 4.6; it must be the same as the plugin slug
Code Analysis 3% 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 make sure to remedy the following
- Even if your plugin relies on executable files (for example a companion app), never distribute executable files with your plugin
- .bat - Batch File in Windows
- ☣ wp-content/plugins/post-status-notifier-lite/scripts/script.bat
- .bat - Batch File in Windows
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 1,054 | 20,802 | 71,806 | 98,856 |
XML | 8 | 3 | 47 | 10,975 |
CSS | 26 | 279 | 225 | 3,173 |
JavaScript | 14 | 468 | 92 | 2,780 |
PO File | 2 | 690 | 89 | 1,946 |
HTML | 2 | 73 | 2 | 375 |
Twig | 13 | 43 | 0 | 243 |
Sass | 2 | 25 | 0 | 222 |
Bourne Shell | 3 | 5 | 3 | 28 |
DOS Batch | 1 | 0 | 0 | 2 |
PHP code 50% from 2 tests
A short review of cyclomatic complexity and code structure
It is recommended to fix the following
- Method cyclomatic complexity should be reduced to less than 100 (currently 331)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.42 |
Average class complexity | 14.69 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 785.00 |
Average method complexity | 3.00 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 331.00 |
Code structure | ||
---|---|---|
Namespaces | 1 | |
Interfaces | 77 | |
Traits | 0 | |
Classes | 936 | |
▷ Abstract classes | 93 | 9.94% |
▷ Concrete classes | 843 | 90.06% |
▷ Final classes | 2 | 0.24% |
Methods | 7,296 | |
▷ Static methods | 770 | 10.55% |
▷ Public methods | 6,358 | 87.14% |
▷ Protected methods | 840 | 11.51% |
▷ Private methods | 98 | 1.34% |
Functions | 100 | |
▷ Named functions | 94 | 94.00% |
▷ Anonymous functions | 6 | 6.00% |
Constants | 580 | |
▷ Global constants | 4 | 0.69% |
▷ Class constants | 576 | 99.31% |
▷ Public constants | 576 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
42 compressed PNG files occupy 0.25MB
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
skin/default/icons/heart.png | 0.30KB | 0.34KB | 0.00% |
skin/default/icons/handshake.png | 1.10KB | 1.10KB | ▼ 0.53% |
docs/assets/blueprint-css/plugins/link-icons/icons/feed.png | 0.67KB | 0.90KB | 0.00% |
skin/default/icons/lifesaver.png | 2.67KB | 1.92KB | ▼ 28.06% |
docs/assets/blueprint-css/plugins/buttons/icons/cross.png | 0.64KB | 0.72KB | 0.00% |