Benchmarks
Plugin footprint 82% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
The plugin installed successfully, without throwing any errors or notices
Server metrics [RAM: ▲5.63MB] [CPU: ▲32.87ms] 75% from 4 tests
Analyzing server-side resources used by Rexpansive Builder
Please take the time to fix the following items
- Extra RAM: The extra memory usage must be under 5MB (currently 5.63MB on /wp-admin/plugins.php?page=tgmpa-install-plugins)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 8.86 ▲5.40 | 70.28 ▲29.34 |
Dashboard /wp-admin | 9.01 ▲5.67 | 92.89 ▲28.21 |
Posts /wp-admin/edit.php | 9.08 ▲5.72 | 78.77 ▲29.04 |
Add New Post /wp-admin/post-new.php | 11.69 ▲5.80 | 139.59 ▲44.89 |
Media Library /wp-admin/upload.php | 8.97 ▲5.74 | 84.51 ▲50.00 |
RexSlider /wp-admin/edit.php?post_type=rex_slider | 8.93 | 72.24 |
Settings /wp-admin/admin.php?page=rexpansive-builder | 8.89 | 73.90 |
Contact Forms /wp-admin/admin.php?page=rxcf7-list | 9.09 | 83.96 |
RexModel /wp-admin/edit.php?post_type=rex_model | 8.93 | 70.92 |
Install Plugins /wp-admin/plugins.php?page=tgmpa-install-plugins | 8.92 | 68.61 |
Server storage [IO: ▲36.14MB] [DB: ▲0.05MB] 67% from 3 tests
Analyzing filesystem and database footprints of this plugin
It is recommended to fix the following issues
- Total filesystem usage must be limited to 25MB (currently using 36.14MB)
Filesystem: 1,162 new files
Database: no new tables, 19 new options
New WordPress options |
---|
_rex_button_BJok_html |
_rex_button_VocS_html |
_rex_button_2UKt_css |
widget_theysaidso_widget |
rexpansive-builder-content-installed |
_rex_button_6W4D_css |
can_compress_scripts |
_rex_button_VocS_css |
rexpansive-builder_options |
widget_recent-comments |
... |
Browser metrics Passed 4 tests
A check of browser resources used by Rexpansive Builder
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,912 ▲166 | 13.33 ▼1.25 | 4.05 ▲2.41 | 42.13 ▼2.76 |
Dashboard /wp-admin | 2,286 ▲98 | 5.94 ▲1.08 | 100.08 ▼3.64 | 80.60 ▲38.39 |
Posts /wp-admin/edit.php | 2,193 ▲104 | 2.06 ▲0.00 | 38.81 ▼2.55 | 38.47 ▲1.53 |
Add New Post /wp-admin/post-new.php | 10,785 ▲9,271 | 28.09 ▲10.20 | 1,321.78 ▲623.16 | 219.76 ▲173.46 |
Media Library /wp-admin/upload.php | 2,101 ▲716 | 8.38 ▲4.16 | 216.41 ▲117.34 | 90.01 ▲46.55 |
RexSlider /wp-admin/edit.php?post_type=rex_slider | 1,165 | 2.00 | 35.03 | 37.95 |
Settings /wp-admin/admin.php?page=rexpansive-builder | 1,368 | 3.83 | 80.11 | 49.71 |
Contact Forms /wp-admin/admin.php?page=rxcf7-list | 5,401 | 11.65 | 271.39 | 112.15 |
RexModel /wp-admin/edit.php?post_type=rex_model | 1,157 | 1.98 | 36.49 | 37.42 |
Install Plugins /wp-admin/plugins.php?page=tgmpa-install-plugins | 1,048 | 2.18 | 30.54 | 34.56 |
Uninstaller [IO: ▲25.19MB] [DB: ▲0.07MB] 75% from 4 tests
🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
It is recommended to fix the following
- Zombie WordPress options were found after uninstall: 19 options
- _rex_button_VocS_html
- _rex_button_2UKt_css
- _rex_button_2UKt_html
- _rex_button_6W4D_html
- acf_version
- theysaidso_admin_options
- _rex_buttons_ids
- widget_recent-comments
- _rex_button_VocS_css
- _rex_button_BJok_html
- ...
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
Even though no errors were found, 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 fix the following
- 6× PHP files perform the action of outputting non-empty strings when accessed directly:
- > /wp-content/plugins/rexpansive-page-builder/public/partials/js-templates/rexlive-block-tools-floating.php
- > /wp-content/plugins/rexpansive-page-builder/public/partials/rexbuilder-public-display.php
- > /wp-content/plugins/rexpansive-page-builder/admin/partials/rexlive-modals-top-arrow.php
- > /wp-content/plugins/rexpansive-page-builder/admin/partials/rexlive-modals-bottom-arrow.php
- > /wp-content/plugins/rexpansive-page-builder/public/partials/rexlive-drag-handlers.php
- > /wp-content/plugins/rexpansive-page-builder/public/templates/rexbuilder-vertical_points-template.php
- 108× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Call to undefined function _e() in wp-content/plugins/rexpansive-page-builder/admin/lib/acf/advanced-custom-fields/includes/admin/views/settings-addons.php:3
- > PHP Fatal error
Uncaught Error: Class 'acf_field' not found in wp-content/plugins/rexpansive-page-builder/admin/lib/acf/advanced-custom-fields/includes/fields/class-acf-field-true_false.php:5
- > PHP Notice
Undefined variable: group_id in wp-content/plugins/rexpansive-page-builder/admin/lib/acf/advanced-custom-fields/includes/admin/views/html-location-group.php on line 1
- > PHP Fatal error
Uncaught Error: Class 'acf_field' not found in wp-content/plugins/rexpansive-page-builder/admin/lib/acf/advanced-custom-fields/includes/fields/class-acf-field-button-group.php:5
- > PHP Fatal error
Uncaught Error: Call to undefined function acf_register_store() in wp-content/plugins/rexpansive-page-builder/admin/lib/acf/advanced-custom-fields/includes/local-fields.php:4
- > PHP Fatal error
Uncaught Error: Class 'acf_field' not found in wp-content/plugins/rexpansive-page-builder/admin/lib/acf/acf-repeater/includes/5-0/acf-repeater-field.php:5
- > PHP Notice
Undefined variable: active in wp-content/plugins/rexpansive-page-builder/admin/lib/acf/advanced-custom-fields/includes/admin/views/html-admin-tools.php on line 16
- > PHP Fatal error
Uncaught Error: Class 'acf_field' not found in wp-content/plugins/rexpansive-page-builder/admin/lib/acf/acf-repeater/includes/5-7/acf-repeater-field.php:5
- > PHP Fatal error
Uncaught Error: Class 'acf_field' not found in wp-content/plugins/rexpansive-page-builder/admin/lib/acf/advanced-custom-fields/includes/fields/class-acf-field-group.php:5
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/rexpansive-page-builder/admin/lib/acf/advanced-custom-fields/includes/admin/admin-field-groups.php:38
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
Everything seems fine, but this is not an exhaustive test
Optimizations
Plugin configuration 93% from 29 tests
readme.txt Passed 16 tests
The readme.txt file is undoubtedly the most important file in your plugin, preparing it for public listing on WordPress.org
10 plugin tags: content builder, theme, composer, page composer, drag and drop...
rexpansive-page-builder/rexpansive-builder.php 85% from 13 tests
The main PHP script in "Rexpansive Builder" version 2.2.0 is automatically included on every request by WordPress
It is important to fix the following:
- Text Domain: If you choose to specify the text domain, it must be the same as the plugin slug; optional since WordPress version 4.6
- Main file name: It is recommended to name the main PHP file as the plugin slug ("rexpansive-page-builder.php" instead of "rexpansive-builder.php")
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
There were no executable files found in this plugin282,029 lines of code in 1,022 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
JavaScript | 617 | 32,939 | 49,876 | 174,090 |
PO File | 46 | 23,449 | 38,316 | 50,713 |
PHP | 275 | 15,952 | 24,344 | 39,028 |
CSS | 52 | 2,450 | 735 | 15,663 |
SVG | 20 | 18 | 13 | 1,096 |
Markdown | 5 | 196 | 0 | 792 |
HTML | 1 | 56 | 18 | 441 |
JSON | 4 | 0 | 0 | 173 |
Sass | 1 | 4 | 4 | 20 |
XML | 1 | 0 | 0 | 13 |
PHP code 50% from 2 tests
Analyzing cyclomatic complexity and code structure
Please tend to the following items
- Method cyclomatic complexity has to be reduced to less than 100 (currently 203)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.34 |
Average class complexity | 24.64 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 558.00 |
Average method complexity | 4.04 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 203.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 146 | |
▷ Abstract classes | 2 | 1.37% |
▷ Concrete classes | 144 | 98.63% |
▷ Final classes | 0 | 0.00% |
Methods | 1,135 | |
▷ Static methods | 69 | 6.08% |
▷ Public methods | 1,054 | 92.86% |
▷ Protected methods | 48 | 4.23% |
▷ Private methods | 33 | 2.91% |
Functions | 411 | |
▷ Named functions | 409 | 99.51% |
▷ Anonymous functions | 2 | 0.49% |
Constants | 25 | |
▷ Global constants | 22 | 88.00% |
▷ Class constants | 3 | 12.00% |
▷ Public constants | 3 | 100.00% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
All PNG images should be compressed to minimize bandwidth usage for end users
33 PNG files occupy 0.52MB with 0.15MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
admin/img/move-white.png | 0.63KB | 0.31KB | ▼ 51.16% |
public/jquery.mb.YTPlayer/css/images/raster@2x.png | 2.66KB | 0.10KB | ▼ 96.07% |
admin/lib/acf/advanced-custom-fields/assets/inc/select2/3/select2.png | 0.51KB | 0.99KB | 0.00% |
public/jquery.mb.YTPlayer/css/images/raster_dot.png | 0.08KB | 0.10KB | 0.00% |
admin/js/builderlive/Photoswipe/default-skin/default-skin.png | 0.53KB | 0.72KB | 0.00% |