Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
Install script ran successfully
Server metrics [RAM: ▲1.09MB] [CPU: ▲6.89ms] Passed 4 tests
This is a short check of server-side resources used by FancyTube - Video Gallery, Video Slider, and Playlist Slider for YouTube
This plugin has minimal impact on server resources
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.57 ▲1.10 | 59.11 ▲9.73 |
Dashboard /wp-admin | 4.40 ▲1.09 | 66.27 ▲9.39 |
Posts /wp-admin/edit.php | 4.45 ▲1.09 | 62.98 ▲7.57 |
Add New Post /wp-admin/post-new.php | 7.01 ▲1.11 | 105.79 ▲0.87 |
Media Library /wp-admin/upload.php | 4.32 ▲1.09 | 50.15 ▲11.62 |
Help /wp-admin/edit.php?post_type=wpgp_youtube_gallery&page=grandplugin_help | 7.18 | 55.88 |
Settings /wp-admin/edit.php?post_type=wpgp_youtube_gallery&page=wpgpyg_settings | 7.18 | 75.69 |
Manage Galleries /wp-admin/edit.php?post_type=wpgp_youtube_gallery | 7.26 | 66.80 |
Add New /wp-admin/post-new.php?post_type=wpgp_youtube_gallery | 7.25 | 80.42 |
Server storage [IO: ▲1.74MB] [DB: ▲0.00MB] Passed 3 tests
A short overview of filesystem and database impact
The plugin installed successfully
Filesystem: 124 new files
Database: no new tables, 7 new options
New WordPress options |
---|
can_compress_scripts |
_wpgp_option_settings |
widget_recent-comments |
widget_recent-posts |
db_upgraded |
widget_theysaidso_widget |
theysaidso_admin_options |
Browser metrics Passed 4 tests
A check of browser resources used by FancyTube - Video Gallery, Video Slider, and Playlist Slider for YouTube
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,915 ▲154 | 13.84 ▼0.72 | 8.91 ▲6.84 | 44.40 ▲1.02 |
Dashboard /wp-admin | 2,241 ▲67 | 5.61 ▲0.09 | 95.39 ▼6.54 | 41.95 ▲1.51 |
Posts /wp-admin/edit.php | 2,143 ▲40 | 2.00 ▲0.02 | 39.59 ▲0.17 | 33.33 ▼3.18 |
Add New Post /wp-admin/post-new.php | 1,561 ▲13 | 23.67 ▲5.39 | 656.23 ▲10.58 | 53.61 ▼13.68 |
Media Library /wp-admin/upload.php | 1,446 ▲46 | 4.14 ▼0.11 | 106.09 ▼0.29 | 45.83 ▲1.65 |
Help /wp-admin/edit.php?post_type=wpgp_youtube_gallery&page=grandplugin_help | 1,969 | 11.03 | 350.73 | 106.90 |
Settings /wp-admin/edit.php?post_type=wpgp_youtube_gallery&page=wpgpyg_settings | 1,431 | 4.92 | 81.23 | 99.05 |
Manage Galleries /wp-admin/edit.php?post_type=wpgp_youtube_gallery | 1,336 | 4.25 | 53.99 | 27.70 |
Add New /wp-admin/post-new.php?post_type=wpgp_youtube_gallery | 4,156 | 5.18 | 107.74 | 154.68 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
You still need to fix the following
- Zombie WordPress options detected upon uninstall: 7 options
- widget_recent-posts
- theysaidso_admin_options
- widget_theysaidso_widget
- db_upgraded
- can_compress_scripts
- _wpgp_option_settings
- widget_recent-comments
Smoke tests 25% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
Everything seems fine, however this is by no means an exhaustive test
SRP 0% from 2 tests
🔹 Tests weight: 20 | SRP (Single-Responsibility Principle) - PHP files must act as libraries and never output text or perform any action when accessed directly in a browser
Please take a closer look at the following
- 2× PHP files output non-empty strings when accessed directly via GET requests:
- > /wp-content/plugins/video-gallery-playlist/admin/partials/wpgp-youtube-gallery-admin-display.php
- > /wp-content/plugins/video-gallery-playlist/public/partials/wpgpyt-slider.php
- 22× PHP files trigger server errors when accessed directly (only 10 are shown):
- > PHP Notice
Trying to get property 'message' of non-object in wp-content/plugins/video-gallery-playlist/public/partials/wpgpyt-grid.php on line 212
- > PHP Fatal error
Uncaught Error: Call to undefined function wpgpyg_get_post_meta() in wp-content/plugins/video-gallery-playlist/public/partials/wpgpyt-button.php:3
- > PHP Notice
Undefined variable: wpgpyg_channel_id in wp-content/plugins/video-gallery-playlist/public/partials/wpgpyt-query.php on line 18
- > PHP Notice
Undefined variable: wpgpyg_get_videos in wp-content/plugins/video-gallery-playlist/public/partials/wpgpyt-grid.php on line 211
- > PHP Notice
Undefined variable: wpgpyg_get_videos in wp-content/plugins/video-gallery-playlist/public/partials/wpgpyt-grid.php on line 212
- > PHP Notice
Undefined variable: wpgpyt_video_duration in wp-content/plugins/video-gallery-playlist/public/partials/wpgpyt-query.php on line 7
- > PHP Notice
Undefined variable: wpgpyg_max_result in wp-content/plugins/video-gallery-playlist/public/partials/wpgpyt-query.php on line 18
- > PHP Fatal error
Uncaught Error: Call to undefined function wp_remote_get() in wp-content/plugins/video-gallery-playlist/public/partials/wpgpyt-query.php:21
- > PHP Notice
Trying to get property 'error' of non-object in wp-content/plugins/video-gallery-playlist/public/partials/wpgpyt-grid.php on line 211
- > PHP Notice
Undefined variable: wpgpyt_video_duration in wp-content/plugins/video-gallery-playlist/public/partials/wpgpyt-query.php on line 5
- > PHP Notice
User-side errors 0% from 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
These are user-side errors you should fix
- > GET request to /wp-admin/post-new.php?post_type=wpgp_youtube_gallery
- > Network (severe)
wp-content/plugins/video-gallery-playlist/admin/img/Scroll-layout.png - Failed to load resource: the server responded with a status of 404 (Not Found)
Optimizations
Plugin configuration 93% from 29 tests
readme.txt Passed 16 tests
Often overlooked, readme.txt is one of the most important files in your plugin
10 plugin tags: youtube gallery, youtube to gallery, gallery for youtube, youtube video gallery, youtube live...
video-gallery-playlist/wpgp-youtube-gallery.php 85% from 13 tests
The main file in "FancyTube - Video Gallery, Video Slider, and Playlist Slider for YouTube" v. 2.3.0 serves as a complement to information provided in readme.txt and as the entry point to the plugin
Please make the necessary changes and fix the following:
- Text Domain: The text domain is optional since WordPress version 4.6; if you do specify it, it must be the same as the plugin slug
- Main file name: The principal plugin file should be the same as the plugin slug ("video-gallery-playlist.php" instead of "wpgp-youtube-gallery.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
No dangerous file extensions were detected29,049 lines of code in 93 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
JavaScript | 11 | 2,207 | 1,099 | 15,176 |
PHP | 59 | 1,626 | 1,370 | 7,526 |
CSS | 10 | 468 | 599 | 6,334 |
SVG | 13 | 0 | 0 | 13 |
PHP code Passed 2 tests
This plugin's cyclomatic complexity and code structure detailed below
Although this was not an exhaustive test, there were no cyclomatic complexity issues detected
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.61 |
Average class complexity | 25.42 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 150.00 |
Average method complexity | 6.95 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 57.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 38 | |
▷ Abstract classes | 2 | 5.26% |
▷ Concrete classes | 36 | 94.74% |
▷ Final classes | 0 | 0.00% |
Methods | 157 | |
▷ Static methods | 30 | 19.11% |
▷ Public methods | 151 | 96.18% |
▷ Protected methods | 0 | 0.00% |
▷ Private methods | 6 | 3.82% |
Functions | 22 | |
▷ Named functions | 22 | 100.00% |
▷ Anonymous functions | 0 | 0.00% |
Constants | 5 | |
▷ Global constants | 4 | 80.00% |
▷ Class constants | 1 | 20.00% |
▷ Public constants | 1 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
16 PNG files occupy 0.08MB with 0.03MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
public/img/layout_full.png | 9.04KB | 4.09KB | ▼ 54.74% |
admin/img/-selfhosted.png | 1.68KB | 1.11KB | ▼ 33.92% |
admin/img/get-api-key.png | 44.92KB | 22.32KB | ▼ 50.30% |
admin/img/button.png | 1.79KB | 1.15KB | ▼ 35.45% |
public/img/layout_default.png | 2.11KB | 1.46KB | ▼ 30.65% |