Benchmarks
Plugin footprint 40% from 16 tests
Installer 0% from 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
It is recommended to fix the following installer errors
- Install procedure had errors
- > Warning in wp-content/plugins/podcastde-wordpress-plugin/lib/Plugin.php+126
Declaration of PodcastDePlugin::getHeader($display = false) should be compatible with PodcastDePluginStandards::getHeader($logo = NULL, $display = false)
Server metrics [RAM: ▼1.96MB] [CPU: ▼58.26ms] Passed 4 tests
A check of server-side resources used by podcast.de WordPress Plugin
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 2.03 ▼1.44 | 4.28 ▼40.67 |
Dashboard /wp-admin | 2.05 ▼1.26 | 6.49 ▼49.10 |
Posts /wp-admin/edit.php | 2.05 ▼1.31 | 4.86 ▼45.67 |
Add New Post /wp-admin/post-new.php | 2.05 ▼3.84 | 5.98 ▼97.58 |
Media Library /wp-admin/upload.php | 2.05 ▼1.18 | 6.61 ▼30.35 |
Server storage [IO: ▲0.15MB] [DB: ▲0.00MB] Passed 3 tests
How much does this plugin use your filesystem and database?
There were no storage issued detected upon installing this plugin
Filesystem: 26 new files
Database: no new tables, 6 new options
New WordPress options |
---|
widget_recent-posts |
db_upgraded |
widget_recent-comments |
theysaidso_admin_options |
widget_theysaidso_widget |
can_compress_scripts |
Browser metrics Passed 4 tests
A check of browser resources used by podcast.de WordPress Plugin
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,844 ▲98 | 13.24 ▼1.36 | 1.88 ▲0.10 | 40.05 ▼4.14 |
Dashboard /wp-admin | 2,222 ▲37 | 5.84 ▼0.04 | 102.85 ▼13.38 | 87.26 ▲45.53 |
Posts /wp-admin/edit.php | 2,111 ▲22 | 2.01 ▼0.02 | 36.95 ▲2.03 | 35.50 ▼1.18 |
Add New Post /wp-admin/post-new.php | 1,684 ▲165 | 22.39 ▼0.99 | 764.32 ▲73.73 | 59.28 ▲4.82 |
Media Library /wp-admin/upload.php | 1,401 ▲13 | 4.23 ▲0.05 | 105.19 ▼6.05 | 51.43 ▲3.48 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 50% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
It is recommended to fix the following
- The plugin did not uninstall gracefully
- > Warning in wp-content/plugins/podcastde-wordpress-plugin/lib/Plugin.php+126
Declaration of PodcastDePlugin::getHeader($display = false) should be compatible with PodcastDePluginStandards::getHeader($logo = NULL, $display = false)
- Zombie WordPress options were found after uninstall: 6 options
- db_upgraded
- can_compress_scripts
- widget_recent-comments
- widget_theysaidso_widget
- theysaidso_admin_options
- 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 | A shallow check of the single-responsibility principle; PHP files should perform no action - including output of placeholder text - and trigger no errors when accessed directly
Please take a closer look at the following
- 5× PHP files trigger server errors when accessed directly:
- > PHP Fatal error
Uncaught Error: Call to undefined function plugin_dir_url() in wp-content/plugins/podcastde-wordpress-plugin/podcastde.php:30
- > PHP Fatal error
Uncaught Error: Class 'PodcastDePluginStandards' not found in wp-content/plugins/podcastde-wordpress-plugin/lib/Plugin.php:10
- > PHP Fatal error
Uncaught Error: Class 'PodcastDePluginStandards' not found in wp-content/plugins/podcastde-wordpress-plugin/lib/Plugin.php:10
- > PHP Warning
Declaration of PodcastDePlugin::getHeader($display = false) should be compatible with PodcastDePluginStandards::getHeader($logo = NULL, $display = false) in wp-content/plugins/podcastde-wordpress-plugin/lib/Plugin.php on line 126
- > PHP Fatal error
Uncaught Error: Class 'PodcastDePluginStandards' not found in wp-content/plugins/podcastde-wordpress-plugin/lib/Plugin.php:10
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
Everything seems fine on the user side
Optimizations
Plugin configuration 79% from 29 tests
readme.txt 81% from 16 tests
The readme.txt file uses markdown syntax to describe your plugin to the world
These attributes need to be fixed:
- Screenshots: These screenshots do not have images: #1 (Add and delete users.), #2 (Add and customize your widget.), #3 (Example for a widget. Title, rss icon and footer are customizable.)
- Tags: You are using too many tags: 13 tag instead of maximum 10
- Plugin Name: Please replace "Plugin Name" with the name of your plugin on the first line (
=== podcastde-wordpress-plugin ===
)
podcastde-wordpress-plugin/podcastde.php 77% from 13 tests
The primary PHP file in "podcast.de WordPress Plugin" version 0.1 is used by WordPress to initiate all plugin functionality
The following require your attention:
- Text Domain: The text domain must be the same as the plugin slug, although optional since WordPress version 4.6
- Description: Please don't use more than 140 characters for the plugin description (currently 223 characters long)
- Main file name: Even though not officially enforced, the main plugin file should be the same as the plugin slug ("podcastde-wordpress-plugin.php" instead of "podcastde.php")
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
Success! There were no dangerous files found in this plugin855 lines of code in 11 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 7 | 189 | 357 | 604 |
PO File | 2 | 52 | 50 | 129 |
CSS | 2 | 29 | 0 | 122 |
PHP code Passed 2 tests
This is a very shot review of cyclomatic complexity and code structure
All good! No complexity issues found
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.27 |
Average class complexity | 6.22 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 18.00 |
Average method complexity | 2.04 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 7.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 1 | |
Traits | 0 | |
Classes | 8 | |
▷ Abstract classes | 1 | 12.50% |
▷ Concrete classes | 7 | 87.50% |
▷ Final classes | 0 | 0.00% |
Methods | 51 | |
▷ Static methods | 2 | 3.92% |
▷ Public methods | 37 | 72.55% |
▷ Protected methods | 8 | 15.69% |
▷ Private methods | 6 | 11.76% |
Functions | 4 | |
▷ Named functions | 4 | 100.00% |
▷ Anonymous functions | 0 | 0.00% |
Constants | 12 | |
▷ Global constants | 1 | 8.33% |
▷ Class constants | 11 | 91.67% |
▷ Public constants | 11 | 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
5 PNG files occupy 0.08MB with 0.04MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
screenshot-2.png | 21.15KB | 9.05KB | ▼ 57.20% |
assets/banner-772x250.png | 22.45KB | 9.10KB | ▼ 59.47% |
images/podcastde_icon.png | 0.55KB | 0.90KB | 0.00% |
screenshot-3.png | 11.10KB | 5.29KB | ▼ 52.33% |
screenshot-1.png | 26.08KB | 10.57KB | ▼ 59.48% |