Benchmarks
Plugin footprint 82% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
Installer ran successfully
Server metrics [RAM: ▲6.67MB] [CPU: ▲39.89ms] 75% from 4 tests
Analyzing server-side resources used by Loops & Logic
Please fix the following
- Extra RAM: The extra memory usage must be under 5MB (currently 6.67MB on /wp-admin/edit.php?post_type=tangible_style)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 10.11 ▲6.65 | 85.74 ▲50.14 |
Dashboard /wp-admin | 9.99 ▲6.65 | 93.41 ▲31.40 |
Posts /wp-admin/edit.php | 10.04 ▲6.69 | 82.14 ▲35.79 |
Add New Post /wp-admin/post-new.php | 12.66 ▲6.77 | 141.12 ▲51.57 |
Media Library /wp-admin/upload.php | 9.91 ▲6.68 | 78.85 ▲42.24 |
Categories /wp-admin/edit-tags.php?taxonomy=tangible_template_category | 9.91 | 68.96 |
Templates /wp-admin/edit.php?post_type=tangible_template | 9.97 | 69.15 |
Settings /wp-admin/admin.php?page=tangible-template-system-settings | 9.83 | 66.88 |
Loops & Logic /wp-admin/options-general.php?page=tangible-loops-and-logic-settings | 9.82 | 70.41 |
Import & Export /wp-admin/admin.php?page=tangible_template_import_export | 9.82 | 70.17 |
Layouts /wp-admin/edit.php?post_type=tangible_layout | 9.97 | 75.02 |
Scripts /wp-admin/edit.php?post_type=tangible_script | 9.97 | 72.08 |
Styles /wp-admin/edit.php?post_type=tangible_style | 9.97 | 71.68 |
Server storage [IO: ▲19.99MB] [DB: ▲0.00MB] Passed 3 tests
Filesystem and database footprint
No storage issues were detected
Filesystem: 2,426 new files
Database: no new tables, 6 new options
New WordPress options |
---|
widget_theysaidso_widget |
widget_recent-posts |
db_upgraded |
can_compress_scripts |
widget_recent-comments |
theysaidso_admin_options |
Browser metrics Passed 4 tests
An overview of browser requirements for Loops & Logic
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,927 ▲165 | 14.27 ▼0.17 | 1.92 ▲0.39 | 46.25 ▲8.68 |
Dashboard /wp-admin | 2,310 ▲129 | 5.61 ▼0.12 | 97.46 ▼3.63 | 42.63 ▼0.66 |
Posts /wp-admin/edit.php | 2,216 ▲116 | 2.14 ▲0.14 | 42.08 ▲4.38 | 34.79 ▼4.85 |
Add New Post /wp-admin/post-new.php | 1,776 ▲240 | 27.22 ▲4.22 | 714.96 ▲12.54 | 35.86 ▼17.52 |
Media Library /wp-admin/upload.php | 1,512 ▲115 | 4.19 ▼0.09 | 99.70 ▼14.77 | 41.43 ▼6.79 |
Categories /wp-admin/edit-tags.php?taxonomy=tangible_template_category | 1,390 | 2.31 | 37.56 | 37.42 |
Templates /wp-admin/edit.php?post_type=tangible_template | 1,199 | 2.30 | 39.08 | 30.36 |
Settings /wp-admin/admin.php?page=tangible-template-system-settings | 926 | 1.78 | 26.98 | 26.57 |
Loops & Logic /wp-admin/options-general.php?page=tangible-loops-and-logic-settings | 999 | 1.82 | 26.91 | 27.10 |
Import & Export /wp-admin/admin.php?page=tangible_template_import_export | 1,099 | 2.71 | 53.33 | 26.41 |
Layouts /wp-admin/edit.php?post_type=tangible_layout | 1,209 | 2.33 | 39.29 | 28.41 |
Scripts /wp-admin/edit.php?post_type=tangible_script | 1,209 | 2.30 | 37.66 | 26.53 |
Styles /wp-admin/edit.php?post_type=tangible_style | 1,206 | 2.32 | 42.66 | 28.71 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
It is recommended to fix the following
- The uninstall procedure has failed, leaving 6 options in the database
- db_upgraded
- theysaidso_admin_options
- widget_recent-posts
- can_compress_scripts
- widget_recent-comments
- widget_theysaidso_widget
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for server-side errors
Even though no errors were found, this is by no means an exhaustive test
SRP 0% from 2 tests
🔹 Tests weight: 20 | It is important to ensure that your PHP files perform no action when accessed directly, respecting the single-responsibility principle
The following issues need your attention
- 3× PHP files output non-empty strings when accessed directly via GET requests:
- > /wp-content/plugins/tangible-loops-and-logic/vendor/tangible/template-system/template/modules/sass/try.php
- > /wp-content/plugins/tangible-loops-and-logic/vendor/tangible/plugin-framework/modules/date/Carbon/vendor/symfony/translation/Resources/bin/translation-status.php
- > /wp-content/plugins/tangible-loops-and-logic/vendor/tangible/template-system/system/integrations/beaver/field-types/tangible-template-editor.php
- 1174× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Warning
Creating default object from empty value in wp-content/plugins/tangible-loops-and-logic/vendor/tangible/plugin-framework/utils/admin.php on line 3
- > PHP Fatal error
Uncaught Error: Call to undefined function apply_filters() in wp-content/plugins/tangible-loops-and-logic/vendor/tangible/template-system/system/post-types/index.php:6
- > PHP Fatal error
Uncaught Error: Interface 'Tangible\\HTML\\Parser\\EventHandler' not found in wp-content/plugins/tangible-loops-and-logic/vendor/tangible/template-system/html/parser/DOMTreeBuilder.php:26
- > PHP Notice
Undefined variable: framework in wp-content/plugins/tangible-loops-and-logic/vendor/tangible/plugin-framework/license/deactivate.php on line 3
- > PHP Notice
Undefined variable: framework in wp-content/plugins/tangible-loops-and-logic/vendor/tangible/plugin-framework/settings/fields/render.php on line 3
- > PHP Warning
Creating default object from empty value in wp-content/plugins/tangible-loops-and-logic/vendor/tangible/template-system/template/tags/content/field-group/flexible-content.php on line 7
- > PHP Fatal error
Uncaught Error: Call to a member function register_variable_type() on null in wp-content/plugins/tangible-loops-and-logic/vendor/tangible/template-system/template/tags/url.php:8
- > PHP Fatal error
Uncaught Error: Class 'Tangible\\Loop\\ListLoop' not found in wp-content/plugins/tangible-loops-and-logic/vendor/tangible/template-system/loop/types/map/index.php:11
- > PHP Notice
Undefined variable: framework in wp-content/plugins/tangible-loops-and-logic/vendor/tangible/plugin-framework/modules/analytics/cron.php on line 3
- > PHP Fatal error
Uncaught Error: Call to a member function register_variable_type() on null in wp-content/plugins/tangible-loops-and-logic/vendor/tangible/template-system/template/tags/loop/query-variable.php:7
- > PHP Warning
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
No browser errors were detected
Optimizations
Plugin configuration 97% from 29 tests
readme.txt 94% from 16 tests
The readme.txt file is undoubtedly the most important file in your plugin, preparing it for public listing on WordPress.org
These attributes need your attention:
- Contributors: The plugin contributors field is missing
tangible-loops-and-logic/tangible-loops-and-logic.php Passed 13 tests
The entry point to "Loops & Logic" version 3.3.1 is a PHP file that has certain tags in its header comment area
57 characters long description:
A template system with content type loops and conditions.
Code Analysis 95% 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 plugin171,769 lines of code in 2,147 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 1,577 | 25,897 | 52,171 | 97,462 |
JavaScript | 264 | 9,236 | 7,946 | 47,351 |
TypeScript | 123 | 1,790 | 1,247 | 11,046 |
Sass | 74 | 1,282 | 205 | 7,786 |
XSD | 3 | 92 | 48 | 2,803 |
JSX | 19 | 376 | 274 | 1,959 |
JSON | 26 | 11 | 0 | 1,802 |
Markdown | 19 | 256 | 0 | 653 |
CSS | 34 | 104 | 35 | 610 |
HTML | 2 | 25 | 0 | 128 |
Bourne Again Shell | 1 | 21 | 8 | 67 |
XML | 3 | 2 | 0 | 38 |
SVG | 1 | 0 | 0 | 34 |
Bourne Shell | 1 | 15 | 9 | 30 |
PHP code 0% from 2 tests
This plugin's cyclomatic complexity and code structure detailed below
It is recommended to fix the following
- Cyclomatic complexity of classes has to be reduced to less than 1000 (currently 1,461)
- Method cyclomatic complexity has to be reduced to less than 100 (currently 194)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.50 |
Average class complexity | 21.35 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 1,461.00 |
Average method complexity | 3.49 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 194.00 |
Code structure | ||
---|---|---|
Namespaces | 73 | |
Interfaces | 59 | |
Traits | 28 | |
Classes | 444 | |
▷ Abstract classes | 27 | 6.08% |
▷ Concrete classes | 417 | 93.92% |
▷ Final classes | 188 | 45.08% |
Methods | 4,658 | |
▷ Static methods | 647 | 13.89% |
▷ Public methods | 3,463 | 74.35% |
▷ Protected methods | 511 | 10.97% |
▷ Private methods | 684 | 14.68% |
Functions | 1,445 | |
▷ Named functions | 279 | 19.31% |
▷ Anonymous functions | 1,166 | 80.69% |
Constants | 350 | |
▷ Global constants | 10 | 2.86% |
▷ Class constants | 340 | 97.14% |
▷ Public constants | 328 | 96.47% |
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
6 PNG files occupy 0.03MB with 0.02MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/images/loops-and-logic-logo.png | 8.89KB | 3.57KB | ▼ 59.86% |
vendor/tangible/template-system/interface/assets/vendor/glider/img/youtube-play.png | 5.06KB | 2.37KB | ▼ 53.04% |
vendor/tangible/template-system/interface/assets/src/slider/img/controls.png | 2.19KB | 0.95KB | ▼ 56.49% |
assets/images/loops-and-logic-logo-transparent.png | 6.90KB | 3.63KB | ▼ 47.35% |
vendor/tangible/template-system/interface/assets/vendor/glider/img/video-play.png | 4.42KB | 1.05KB | ▼ 76.27% |