78% redux-framework

Code Review | Gutenberg Template and Pattern Library & Redux Framework

WordPress plugin Gutenberg Template and Pattern Library & Redux Framework scored 78% from 54 tests.

About plugin

  • Plugin page: redux-framework
  • Plugin version: 4.3.12
  • PHP compatiblity: 7.1+
  • PHP version: 7.4.16
  • WordPress compatibility: 4.0-5.9.1
  • WordPress version: 5.9.2
  • First release: Oct 24, 2013
  • Latest release: Mar 9, 2022
  • Number of updates: 390
  • Update frequency: every 7.8 days
  • Top authors: dovyp (89.49%)KProvance (6.67%)ghost1227 (4.1%)

Code review

54 tests

User reviews

251 reviews

Install metrics

1,000,000+ active / 15,685,796 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
This plugin's installer ran successfully

Server metrics [RAM: ▲1.43MB] [CPU: ▼286.62ms] Passed 4 tests

This is a short check of server-side resources used by Gutenberg Template and Pattern Library & Redux Framework
Server-side resource usage in normal parameters
PageMemory (MB)CPU Time (ms)
Home /4.91 ▲1.3965.96 ▲14.74
Dashboard /wp-admin4.81 ▲1.4045.74 ▲13.03
Posts /wp-admin/edit.php5.10 ▲1.4648.67 ▲11.90
Add New Post /wp-admin/post-new.php8.69 ▲1.72115.71 ▼1,183.02
Media Library /wp-admin/upload.php4.76 ▲1.4633.85 ▲11.62
Redux /wp-admin/options-general.php?page=redux-framework4.7733.04

Server storage [IO: ▲20.02MB] [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: 1,287 new files
Database: no new tables, 1 new option
New WordPress options
extendifysdk_sitesettings

Browser metrics Passed 4 tests

A check of browser resources used by Gutenberg Template and Pattern Library & Redux Framework
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /4,029 ▲28516.39 ▲0.365.77 ▼0.412.21 ▲0.15
Dashboard /wp-admin3,153 ▲2956.18 ▼0.01122.14 ▼10.92196.60 ▲38.91
Posts /wp-admin/edit.php2,855 ▲1613.24 ▲0.0160.92 ▼9.65131.97 ▼10.18
Add New Post /wp-admin/post-new.php1,786 ▲12515.83 ▼0.24392.29 ▼35.54171.55 ▲10.21
Media Library /wp-admin/upload.php1,894 ▲1965.55 ▲0.07146.19 ▲14.18185.64 ▲3.61
Redux /wp-admin/options-general.php?page=redux-framework1,3733.6897.69201.10

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

🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
It is recommended to fix the following
  • This plugin does not fully uninstall, leaving 1 option in the database
    • extendifysdk_sitesettings

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
Good news, no errors were detected

SRP 0% 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 fix the following items
  • 10× GET requests to PHP files return non-empty strings:
    • > /wp-content/plugins/redux-framework/extendify-sdk/app/Controllers/TaxonomyController.php
    • > /wp-content/plugins/redux-framework/extendify-sdk/routes/api.php
    • > /wp-content/plugins/redux-framework/extendify-sdk/app/Controllers/AuthController.php
    • > /wp-content/plugins/redux-framework/extendify-sdk/app/Controllers/MetaController.php
    • > /wp-content/plugins/redux-framework/extendify-sdk/bootstrap.php
    • > /wp-content/plugins/redux-framework/extendify-sdk/app/Controllers/UserController.php
    • > /wp-content/plugins/redux-framework/extendify-sdk/app/Controllers/SiteSettingsController.php
    • > /wp-content/plugins/redux-framework/extendify-sdk/app/Controllers/TemplateController.php
    • > /wp-content/plugins/redux-framework/extendify-sdk/app/Controllers/PingController.php
    • > /wp-content/plugins/redux-framework/extendify-sdk/app/Controllers/PluginController.php
  • 16× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Using $this when not in object context in wp-content/plugins/redux-framework/redux-core/templates/panel/menu-container.tpl.php:15
    • > PHP Fatal error
      Uncaught Error: Using $this when not in object context in wp-content/plugins/redux-framework/redux-core/templates/panel/content.tpl.php:13
    • > PHP Fatal error
      Uncaught Error: Call to undefined function wp_head() in wp-content/plugins/redux-framework/extendify-sdk/editorplus/editorplus-template.php:8
    • > PHP Fatal error
      Uncaught Error: Using $this when not in object context in wp-content/plugins/redux-framework/redux-core/templates/panel/container.tpl.php:11
    • > PHP Warning
      include_once(): Failed opening 'ABSPATHwp-admin/includes/file.php' for inclusion (include_path='.:/usr/share/php') in wp-content/plugins/redux-framework/extendify-sdk/app/Plugin.php on line 202
    • > PHP Warning
      Use of undefined constant ABSPATH - assumed 'ABSPATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/redux-framework/extendify-sdk/app/Plugin.php on line 201
    • > PHP Warning
      include_once(): Failed opening 'ABSPATHwp-admin/includes/class-wp-upgrader.php' for inclusion (include_path='.:/usr/share/php') in wp-content/plugins/redux-framework/extendify-sdk/app/Plugin.php on line 201
    • > PHP Fatal error
      Uncaught Error: Class 'WP_Upgrader_Skin' not found in wp-content/plugins/redux-framework/redux-templates/classes/class-installer-muter.php:10
    • > PHP Fatal error
      Uncaught Error: Class 'WP_REST_Controller' not found in wp-content/plugins/redux-framework/extendify-sdk/app/ApiRouter.php:14
    • > PHP Fatal error
      Uncaught Error: Class 'Automatic_Upgrader_Skin' not found in wp-content/plugins/redux-framework/extendify-sdk/app/Plugin.php:208

User-side errors Passed 1 test

🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
No browser issues were found

Optimizations

Plugin configuration Passed 29 tests

readme.txt Passed 16 tests

The readme.txt file uses markdown syntax to describe your plugin to the world
7 plugin tags: library, editor, gutenberg, blocks, page builder...

redux-framework/redux-framework.php Passed 13 tests

"Gutenberg Template and Pattern Library & Redux Framework" version 4.3.12's primary PHP file adds more information about the plugin and serves as the entry point for WordPress
37 characters long description:
Build better sites in WordPress fast!

Code Analysis 97% from 3 tests

File types Passed 1 test

🔸 Test weight: 35 | Executable files are not allowed as they can serve as attack vectors
There were no executable files found in this plugin156,243 lines of code in 894 files:
LanguageFilesBlank linesComment linesLines of code
JavaScript31815,84013,07267,794
PHP2567,62013,77532,809
Sass1223,61314719,753
CSS1397,91146415,519
JSON80013,444
SVG4982246,857
HTML17060
XML1007

PHP code 50% from 2 tests

Analyzing cyclomatic complexity and code structure
It is recommended to fix the following
  • Method cyclomatic complexity has to be reduced to less than 100 (currently 110)
Cyclomatic complexity
Average complexity per logical line of code0.56
Average class complexity34.43
▷ Minimum class complexity1.00
▷ Maximum class complexity338.00
Average method complexity5.43
▷ Minimum method complexity1.00
▷ Maximum method complexity110.00
Code structure
Namespaces6
Interfaces0
Traits0
Classes162
▷ Abstract classes42.47%
▷ Concrete classes15897.53%
▷ Final classes21.27%
Methods1,230
▷ Static methods35028.46%
▷ Public methods95477.56%
▷ Protected methods14511.79%
▷ Private methods13110.65%
Functions39
▷ Named functions1948.72%
▷ Anonymous functions2051.28%
Constants107
▷ Global constants87.48%
▷ Class constants9992.52%
▷ Public constants99100.00%

Plugin size 50% from 2 tests

Image compression 50% from 2 tests

It is recommended to compress PNG files in your plugin to minimize bandwidth usage
73 PNG files occupy 1.21MB with 0.25MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
sample/patterns/triangular_@2X.png0.21KB0.25KB0.00%
redux-core/assets/img/raw/1c.png0.13KB0.13KB▼ 0.72%
redux-core/assets/img/raw/star.png0.59KB0.50KB▼ 15.54%
redux-core/assets/img/jquery-ui-bootstrap/ui-icons_cd0a0a_256x240.png4.10KB4.11KB0.00%
redux-core/assets/img/raw/3cr.png2.98KB0.34KB▼ 88.66%