51% depicter

Code Review | Depicter Slider - Responsive Image Slider, Video Slider & Post Slider

WordPress plugin Depicter Slider - Responsive Image Slider, Video Slider & Post Slider scored51%from 54 tests.

About plugin

  • Plugin page: depicter
  • Plugin version: 2.0.4
  • PHP compatiblity: 7.2.5+
  • PHP version: 7.4.16
  • WordPress compatibility: 4.9+
  • WordPress version: 6.3.1
  • First release: Jun 1, 2022
  • Latest release: Nov 27, 2023
  • Number of updates: 76
  • Update frequency: every 7.2 days
  • Top authors: averta (100%)

Code review

54 tests

User reviews

149 reviews

Install metrics

80,000+ active /643,719 total downloads

Benchmarks

Plugin footprint 65% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Checking the installer triggered no errors
The plugin installed gracefully, with no errors

Server metrics [RAM: ▲2.52MB] [CPU: ▲15.81ms] 75% from 4 tests

A check of server-side resources used by Depicter Slider - Responsive Image Slider, Video Slider & Post Slider
It is recommended to improve the following
  • CPU: Total CPU usage should be kept under 500.00ms (currently 1,306.63ms on /wp-admin/admin.php?page=depicter-dashboard)
PageMemory (MB)CPU Time (ms)
Home /5.94 ▲2.4860.23 ▲19.79
Dashboard /wp-admin5.85 ▲2.5169.89 ▲3.28
Posts /wp-admin/edit.php5.91 ▲2.5566.02 ▲17.48
Add New Post /wp-admin/post-new.php9.09 ▲3.20119.50 ▲25.14
Media Library /wp-admin/upload.php5.77 ▲2.5457.29 ▲22.70
Dashboard /wp-admin/admin.php?page=depicter-dashboard6.691,306.63
Support /wp-admin/admin.php?page=depicter-dashboard-goto-support5.5642.95
Settings /wp-admin/admin.php?page=depicter-settings5.7464.60

Server storage [IO: ▲11.62MB] [DB: ▲0.01MB] Passed 3 tests

How much does this plugin use your filesystem and database?
The plugin installed successfully
Filesystem: 1,444 new files
Database: 3 new tables, 18 new options
New tables
wp_depicter_meta
wp_depicter_options
wp_depicter_documents
New WordPress options
depicter_db_version
depicter_subscription_expires_at
depicter_user_tier
depicter_version_previous
depicter_version
depicter_version_initial
depicter_activation_log_message
depicter_activation_error_message
widget_recent-comments
depicter_capabilities_added
...

Browser metrics Passed 4 tests

A check of browser resources used by Depicter Slider - Responsive Image Slider, Video Slider & Post Slider
This plugin has a minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,851 ▲10414.46 ▼0.258.01 ▲6.2741.88 ▼1.74
Dashboard /wp-admin2,241 ▲645.52 ▼0.1294.83 ▲2.2191.54 ▲49.94
Posts /wp-admin/edit.php2,152 ▲521.99 ▼0.0334.40 ▼6.2633.81 ▼3.29
Add New Post /wp-admin/post-new.php6,424 ▲4,89728.22 ▲5.47936.00 ▲273.9237.22 ▼17.21
Media Library /wp-admin/upload.php1,446 ▲464.16 ▼0.0395.26 ▼5.1967.06 ▲26.16
Dashboard /wp-admin/admin.php?page=depicter-dashboard1,58810.87399.30120.09
Support /wp-admin/admin.php?page=depicter-dashboard-goto-support8,1388.84442.95493.83
Settings /wp-admin/admin.php?page=depicter-settings9551.9925.6026.47

Uninstaller [IO: ▲0.00MB] [DB: ▲0.01MB] 50% from 4 tests

🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
You still need to fix the following
  • Zombie tables detected upon uninstall: 3 tables
    • wp_depicter_documents
    • wp_depicter_meta
    • wp_depicter_options
  • This plugin does not fully uninstall, leaving 18 options in the database
    • depicter_client_key
    • can_compress_scripts
    • depicter_subscription_expires_at
    • depicter_activation_log_message
    • widget_recent-posts
    • depicter_version_initial
    • widget_theysaidso_widget
    • theysaidso_admin_options
    • depicter_user_tier
    • depicter_db_version
    • ...

Smoke tests 25% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | This is a shallow check for server-side errors
Even though everything seems fine, this is not 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 fix the following
  • 7× GET requests to PHP files return non-empty strings:
    • > /wp-content/plugins/depicter/vendor/jeffreyvanrossum/wp-settings/resources/views/section.php
    • > /wp-content/plugins/depicter/views/admin/editor/preview.php
    • > /wp-content/plugins/depicter/app/src/Modules/Beaver/includes/frontend.js.php
    • > /wp-content/plugins/depicter/vendor/jeffreyvanrossum/wp-settings/resources/views/tab-menu.php
    • > /wp-content/plugins/depicter/views/error.php
    • > /wp-content/plugins/depicter/app/src/Modules/Beaver/includes/frontend.php
    • > /wp-content/plugins/depicter/views/admin/dashboard/partials/content.php
  • 628× PHP files trigger server errors when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Interface 'Averta\\Core\\Hydrate\\HydratableInterface' not found in wp-content/plugins/depicter/app/src/Document/Models/Document.php:16
    • > PHP Fatal error
      Uncaught Error: Class 'Depicter\\Document\\Models\\Elements\\Svg' not found in wp-content/plugins/depicter/app/src/Document/Models/Elements/PlayAndPause.php:6
    • > PHP Fatal error
      Uncaught Error: Interface 'Depicter\\Psr\\Http\\Client\\ClientExceptionInterface' not found in wp-content/plugins/depicter/modules/GuzzleHttp/Exception/GuzzleException.php:7
    • > PHP Fatal error
      Uncaught Error: Class 'TypeRocket\\Controllers\\Controller' not found in wp-content/plugins/depicter/vendor/typerocket/core/src/Controllers/WPCommentController.php:12
    • > PHP Fatal error
      Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/depicter/vendor/composer/installers/src/Composer/Installers/WinterInstaller.php:4
    • > PHP Notice
      Trying to get property 'description' of non-object in wp-content/plugins/depicter/vendor/jeffreyvanrossum/wp-settings/resources/views/section.php on line 3
    • > PHP Fatal error
      Trait 'TypeRocket\\Elements\\Traits\\Attributes' not found in wp-content/plugins/depicter/vendor/typerocket/core/src/Elements/FieldColumn.php on line 11
    • > PHP Fatal error
      Uncaught Error: Class 'Depicter\\GuzzleHttp\\Cookie\\CookieJar' not found in wp-content/plugins/depicter/modules/GuzzleHttp/Cookie/FileCookieJar.php:10
    • > PHP Fatal error
      Uncaught Error: Class 'Depicter\\WordPress\\Settings\\Options\\OptionAbstract' not found in wp-content/plugins/depicter/app/src/WordPress/Settings/Options/Choices.php:6
    • > PHP Fatal error
      Uncaught Error: Interface 'WPEmerge\\Routing\\Conditions\\ConditionInterface' not found in wp-content/plugins/depicter/vendor/htmlburger/wpemerge/src/Routing/Conditions/AjaxCondition.php:19

User-side errors 0% from 1 test

🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
Please fix the following user-side errors
    • > GET request to /wp-admin/admin.php?page=depicter-dashboard-goto-support
    • > Console-api (warning) in unknown
    https://static.hotjar.com/c/hotjar-2811166.js?sv=6 2:5946 "Hotjar not launching due to suspicious userAgent:" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.159 Safari/537.36"
    • > GET request to /wp-admin/admin.php?page=depicter-dashboard-goto-support
    • > Network (severe)
    https://depicter.com/image/gif;base64,R0lGODlhAQABAIAAAAAAAP/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7 - Failed to load resource: the server responded with a status of 404 ()

Optimizations

Plugin configuration 86% from 29 tests

readme.txt 81% from 16 tests

The readme.txt file is important because it is parsed by WordPress.org for the public listing of your plugin
Attributes that need to be fixed:
  • Tested up to: The plugin version is formatted incorrectly
  • Screenshots: No descriptions were found for these screenshots #3, #4 in depicter/assets to your readme.txt
  • Tags: There are too many tags (11 tag instead of maximum 10)
The official readme.txt might help

depicter/depicter.php 92% from 13 tests

The entry point to "Depicter Slider - Responsive Image Slider, Video Slider & Post Slider" version 2.0.4 is a PHP file that has certain tags in its header comment area
Please take the time to fix the following:
  • Requires at least: Required version must match the one declared in readme.txt ("4.9.0" instead of "4.9")

Code Analysis 5% from 3 tests

File types 0% from 1 test

🔸 Test weight: 35 | This is an overview of programming languages used in this plugin; dangerous file extensions are not allowed
Please fix the following items
  • For security reasons, never distribute binary or executable files with your plugin
    • .exe - Executable in Windows
      • wp-content/plugins/depicter/vendor/symfony/console/Resources/bin/hiddeninput.exe
100,200 lines of code in 1,352 files:
LanguageFilesBlank linesComment linesLines of code
PHP1,11418,34341,62186,608
Sass47609723,851
JSON33003,614
JavaScript544082242,226
Markdown2873101,534
HTML34001,352
YAML10647290
CSS12810234
XML1020179
SVG603132
reStructuredText2100139106
JSX214174

PHP code Passed 2 tests

Cyclomatic complexity and code structure are the fingerprint of this plugin
No complexity issues detected
Cyclomatic complexity
Average complexity per logical line of code0.41
Average class complexity10.27
▷ Minimum class complexity1.00
▷ Maximum class complexity181.00
Average method complexity2.60
▷ Minimum method complexity1.00
▷ Maximum method complexity45.00
Code structure
Namespaces165
Interfaces89
Traits55
Classes882
▷ Abstract classes232.61%
▷ Concrete classes85997.39%
▷ Final classes546.29%
Methods5,881
▷ Static methods73312.46%
▷ Public methods5,04485.77%
▷ Protected methods5309.01%
▷ Private methods3075.22%
Functions770
▷ Named functions23630.65%
▷ Anonymous functions53469.35%
Constants342
▷ Global constants6318.42%
▷ Class constants27981.58%
▷ Public constants25691.76%

Plugin size Passed 2 tests

Image compression Passed 2 tests

It is recommended to compress PNG files in your plugin to minimize bandwidth usage
7 PNG files occupy 0.15MB with 0.06MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
resources/styles/player/assets/grab.png2.83KB0.16KB▼ 94.47%
vendor/typerocket/core/assets/dist/img/chosen-sprite@2x.png0.72KB0.83KB0.00%
vendor/jeffreyvanrossum/wp-settings/art/snippet.png109.62KB36.21KB▼ 66.96%
vendor/typerocket/core/assets/dist/img/chosen-sprite.png0.53KB0.88KB0.00%
resources/styles/player/assets/video-close-btn.png0.21KB0.17KB▼ 20.55%