Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
The plugin installed gracefully, with no errors
Server metrics [RAM: ▼0.07MB] [CPU: ▼42.07ms] Passed 4 tests
An overview of server-side resources used by Posts Per Page Customizer
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.92 ▲0.46 | 16.13 ▼23.87 |
Dashboard /wp-admin | 3.94 ▲0.63 | 18.16 ▼32.31 |
Posts /wp-admin/edit.php | 3.94 ▲0.58 | 19.04 ▼31.05 |
Add New Post /wp-admin/post-new.php | 3.94 ▼1.95 | 16.05 ▼81.06 |
Media Library /wp-admin/upload.php | 3.94 ▲0.71 | 19.89 ▼12.02 |
Custom Loops /wp-admin/themes.php?page=CustomLoop | 3.94 | 19.23 |
Server storage [IO: ▲11.40MB] [DB: ▲0.05MB] Passed 3 tests
Filesystem and database footprint
This plugin installed successfully
Filesystem: 704 new files
Database: no new tables, 7 new options
New WordPress options |
---|
widget_theysaidso_widget |
widget_recent-posts |
widget_recent-comments |
db_upgraded |
theysaidso_admin_options |
ffpf_caching_dir_64b2f17a5217d5700aba3416e7156d35 |
can_compress_scripts |
Browser metrics Passed 4 tests
This is an overview of browser requirements for Posts Per Page Customizer
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,808 ▲73 | 13.19 ▼1.41 | 1.93 ▼0.31 | 38.11 ▼6.66 |
Dashboard /wp-admin | 2,209 ▲21 | 4.87 ▼1.07 | 101.29 ▼1.97 | 37.26 ▼5.33 |
Posts /wp-admin/edit.php | 2,098 ▲9 | 2.00 ▼0.05 | 36.26 ▼0.25 | 34.17 ▼0.59 |
Add New Post /wp-admin/post-new.php | 1,538 ▼5 | 23.45 ▲5.17 | 696.84 ▲58.93 | 68.30 ▲17.69 |
Media Library /wp-admin/upload.php | 1,397 ▲12 | 4.18 ▲0.07 | 104.14 ▼4.32 | 44.14 ▼0.31 |
Custom Loops /wp-admin/themes.php?page=CustomLoop | 14,142 | 6.05 | 313.68 | 35.49 |
Uninstaller [IO: ▲0.22MB] [DB: ▲0.05MB] 75% from 4 tests
🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
The following items require your attention
- The uninstall procedure has failed, leaving 7 options in the database
- widget_theysaidso_widget
- theysaidso_admin_options
- can_compress_scripts
- widget_recent-comments
- widget_recent-posts
- ffpf_caching_dir_64b2f17a5217d5700aba3416e7156d35
- db_upgraded
Smoke tests 25% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | A smoke test targeting server-side errors
These errors were triggered by the plugin
- > GET request to /wp-admin/themes.php?page=CustomLoop
- > Warning in wp-admin/includes/class-wp-filesystem-direct.php+66
fopen(wp-content/uploads/freshframework/less_scss/last_deletion.frs): failed to open stream: No such file or directory
- 2 occurences, only the last one shown
- > GET request to /wp-admin/themes.php?page=CustomLoop
- > Notice in wp-content/plugins/posts-per-page-customizer/fresh-framework/framework/extern/less/lib/Less/Parser.php+1724
Trying to access array offset on value of type null
- 10 occurences, only the last one shown
- > GET request to /wp-admin/themes.php?page=CustomLoop
- > Warning in wp-content/plugins/posts-per-page-customizer/fresh-framework/framework/query/posts/items/class.ffPostGetter.php+75
count(): Parameter must be an array or an object that implements Countable
- 2 occurences, only the last one shown
- > GET request to /wp-admin/themes.php?page=CustomLoop
- > Deprecated in wp-content/plugins/posts-per-page-customizer/fresh-framework/framework/extern/less/lib/Less/Tree/Mixin/Call.php+110
The behavior of unparenthesized expressions containing both '.' and '+'/'-' will change in PHP 8: '+'/'-' will take a higher precedence
SRP 0% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle: PHP files have to remain inert when accessed directly, throwing no errors and performing no actions
Please fix the following
- 1× PHP files perform the task of outputting text when accessed with GET requests:
- > /wp-content/plugins/posts-per-page-customizer/fresh-framework/framework/extern/iconfonts/fonts.php
- 328× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'ffFactoryAbstract' not found in wp-content/plugins/posts-per-page-customizer/fresh-framework/framework/adminScreens/metaBoxes/factories/class.ffMetaBoxViewFactory.php:3
- > PHP Fatal error
Uncaught Error: Class 'ffOptionsPrinterElementsAndComponentsBasic' not found in wp-content/plugins/posts-per-page-customizer/fresh-framework/framework/options/printerComponent/class.ffOptionsPrinterComponentsBasic.php:3
- > PHP Fatal error
Uncaught Error: Class 'ffBasicObject' not found in wp-content/plugins/posts-per-page-customizer/fresh-framework/framework/query/posts/items/class.ffPostCollection.php:3
- > PHP Fatal error
Uncaught Error: Class 'ffModalWindowView' not found in wp-content/plugins/posts-per-page-customizer/fresh-framework/framework/adminScreens/modalWindow/conditions/class.ffModalWindowConditionsViewDefault.php:3
- > PHP Fatal error
Uncaught Error: Class 'Less_Tree' not found in wp-content/plugins/posts-per-page-customizer/fresh-framework/framework/extern/less/lib/Less/Tree/Variable.php:9
- > PHP Fatal error
Uncaught Error: Class 'ffFactoryAbstract' not found in wp-content/plugins/posts-per-page-customizer/fresh-framework/framework/themes/menuOptions/factories/class.ffMenuOptionsNamespaceFactory.php:3
- > PHP Fatal error
Uncaught Error: Class 'ffFactoryAbstract' not found in wp-content/plugins/posts-per-page-customizer/fresh-framework/framework/shortcodes/factories/class.ffShortcodeFactory.php:3
- > PHP Fatal error
Uncaught Error: Class 'ffBasicObject' not found in wp-content/plugins/posts-per-page-customizer/fresh-framework/framework/core/class.ffPluginContainerHolder.php:2
- > PHP Fatal error
Uncaught Error: Class 'ffFactoryAbstract' not found in wp-content/plugins/posts-per-page-customizer/fresh-framework/framework/query/posts/class.ffPostLayer_Factory.php:3
- > PHP Fatal error
Uncaught Error: Class 'ffBasicObject' not found in wp-content/plugins/posts-per-page-customizer/fresh-framework/framework/themes/menuOptions/class.ffMenuOptionsManager.php:11
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
No browser errors were detected
Optimizations
Plugin configuration 96% from 29 tests
readme.txt Passed 16 tests
The readme.txt file uses markdown syntax to describe your plugin to the world
3 plugin tags: posts per page, customize loop, change loop
posts-per-page-customizer/freshplugin.php 92% from 13 tests
The primary PHP file in "Posts Per Page Customizer" version 1.0.0 is used by WordPress to initiate all plugin functionality
It is important to fix the following:
- Main file name: Please rename the main PHP file in this plugin to the plugin slug ("posts-per-page-customizer.php" instead of "freshplugin.php")
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short glimpse at programming languages used with this plugin and a check that no dangerous files are present
Everything looks great! No dangerous files found in this plugin104,848 lines of code in 585 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 370 | 12,735 | 11,787 | 37,667 |
JSON | 2 | 0 | 0 | 24,734 |
JavaScript | 72 | 4,893 | 5,498 | 21,011 |
LESS | 73 | 1,789 | 1,748 | 8,217 |
CSS | 38 | 329 | 527 | 6,969 |
SVG | 24 | 0 | 0 | 5,950 |
XML | 2 | 0 | 0 | 224 |
HTML | 2 | 2 | 0 | 69 |
Markdown | 2 | 4 | 0 | 7 |
PHP code 50% from 2 tests
An short overview of logical lines of code, cyclomatic complexity, and other code metrics
These items need your attention
- Method cyclomatic complexity should be reduced to less than 100 (currently 156)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.30 |
Average class complexity | 13.53 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 446.00 |
Average method complexity | 2.33 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 156.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 5 | |
Traits | 0 | |
Classes | 419 | |
▷ Abstract classes | 23 | 5.49% |
▷ Concrete classes | 396 | 94.51% |
▷ Final classes | 0 | 0.00% |
Methods | 4,047 | |
▷ Static methods | 74 | 1.83% |
▷ Public methods | 2,269 | 56.07% |
▷ Protected methods | 1,122 | 27.72% |
▷ Private methods | 656 | 16.21% |
Functions | 3 | |
▷ Named functions | 3 | 100.00% |
▷ Anonymous functions | 0 | 0.00% |
Constants | 372 | |
▷ Global constants | 99 | 26.61% |
▷ Class constants | 273 | 73.39% |
▷ Public constants | 273 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
It is recommended to compress PNG files in your plugin to minimize bandwidth usage
27 PNG files occupy 0.15MB with 0.08MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
fresh-framework/framework/extern/jquery-ui/images/ui-icons_ffd27a_256x240.png | 4.44KB | 4.17KB | ▼ 6.02% |
fresh-framework/framework/adminScreens/assets/images/checkerboard-library-button@2x.png | 0.97KB | 0.10KB | ▼ 89.84% |
fresh-framework/framework/extern/select2/select2x2.png | 0.83KB | 0.77KB | ▼ 6.15% |
fresh-framework/framework/adminScreens/assets/images/modal-library-size-slider-control-right.png | 5.81KB | 0.10KB | ▼ 98.20% |
fresh-framework/framework/extern/jquery-ui/images/ui-bg_glass_100_f6f6f6_1x400.png | 0.26KB | 0.12KB | ▼ 53.44% |