Benchmarks
Plugin footprint Passed 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.35MB] [CPU: ▼139.72ms] Passed 4 tests
This is a short check of server-side resources used by Search & Replace
This plugin has minimal impact on server resources
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 2.85 ▲0.13 | 44.10 ▲22.51 |
Dashboard /wp-admin | 3.50 ▲0.45 | 60.87 ▲12.76 |
Posts /wp-admin/edit.php | 3.55 ▲0.44 | 47.98 ▲0.76 |
Add New Post /wp-admin/post-new.php | 5.80 ▲0.37 | 93.10 ▼567.47 |
Media Library /wp-admin/upload.php | 3.45 ▲0.44 | 35.30 ▼4.93 |
Search & Replace /wp-admin/tools.php?page=sql-import | 3.35 | 32.39 |
Search & Replace /wp-admin/tools.php?page=search-replace | 3.38 | 47.78 |
Search & Replace /wp-admin/tools.php?page=backup-database | 3.35 | 26.93 |
Search & Replace /wp-admin/tools.php?page=credits | 3.37 | 30.76 |
Search & Replace /wp-admin/tools.php?page=replace-domain-url | 3.36 | 26.78 |
Server storage [IO: ▲0.26MB] [DB: ▲0.00MB] Passed 3 tests
How much does this plugin use your filesystem and database?
The plugin installed successfully
Filesystem: 51 new files
Database: no new tables, no new options
Browser metrics Passed 4 tests
A check of browser resources used by Search & Replace
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,684 ▲88 | 16.06 ▲0.34 | 9.72 ▼0.28 | 50.45 ▲3.33 |
Dashboard /wp-admin | 2,975 ▲41 | 5.94 ▲0.00 | 148.27 ▼8.08 | 107.96 ▼7.26 |
Posts /wp-admin/edit.php | 2,744 ▲5 | 2.71 ▲0.01 | 74.62 ▲11.00 | 86.91 ▲3.62 |
Add New Post /wp-admin/post-new.php | 1,607 ▲26 | 18.84 ▲1.33 | 395.02 ▼18.82 | 108.03 ▼11.68 |
Media Library /wp-admin/upload.php | 1,812 ▲5 | 5.01 ▼0.02 | 154.82 ▼46.70 | 118.25 ▼23.22 |
Search & Replace /wp-admin/tools.php?page=sql-import | 1,084 | 2.30 | 54.62 | 79.09 |
Search & Replace /wp-admin/tools.php?page=search-replace | 1,309 | 2.33 | 58.52 | 75.34 |
Search & Replace /wp-admin/tools.php?page=backup-database | 1,040 | 2.05 | 55.43 | 67.29 |
Search & Replace /wp-admin/tools.php?page=credits | 1,153 | 2.11 | 61.77 | 83.09 |
Search & Replace /wp-admin/tools.php?page=replace-domain-url | 1,171 | 2.10 | 54.77 | 78.58 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] Passed 4 tests
🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
This plugin's uninstaller ran successfully
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for server-side errors
Everything seems fine, however this is by no means an exhaustive test
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
The following issues need your attention
- 6× PHP files output non-empty strings when accessed directly via GET requests:
- > /wp-content/plugins/search-and-replace/inpsyde-search-replace.php
- > /wp-content/plugins/search-and-replace/inc/templates/credits.php
- > /wp-content/plugins/search-and-replace/inc/templates/db-backup.php
- > /wp-content/plugins/search-and-replace/inc/templates/search-replace.php
- > /wp-content/plugins/search-and-replace/inc/templates/sql-import.php
- > /wp-content/plugins/search-and-replace/inc/templates/replace-domain.php
- 9× GET requests to PHP files have triggered server-side errors or warnings:
- > PHP Fatal error
Uncaught Error: Class 'Inpsyde\\SearchReplace\\Page\\AbstractPage' not found in wp-content/plugins/search-and-replace/inc/Page/BackupDatabase.php:12
- > PHP Fatal error
Uncaught Error: Class 'Inpsyde\\SearchReplace\\Page\\AbstractPage' not found in wp-content/plugins/search-and-replace/inc/Page/Credits.php:9
- > PHP Fatal error
Uncaught Error: Interface 'Composer\\Semver\\Constraint\\ConstraintInterface' not found in wp-content/plugins/search-and-replace/vendor/composer/semver/src/Constraint/Constraint.php:17
- > PHP Fatal error
Uncaught Error: Interface 'Composer\\Semver\\Constraint\\ConstraintInterface' not found in wp-content/plugins/search-and-replace/vendor/composer/semver/src/Constraint/AbstractConstraint.php:19
- > PHP Fatal error
Uncaught Error: Interface 'Composer\\Semver\\Constraint\\ConstraintInterface' not found in wp-content/plugins/search-and-replace/vendor/composer/semver/src/Constraint/EmptyConstraint.php:17
- > PHP Fatal error
Uncaught Error: Class 'Inpsyde\\SearchReplace\\Page\\AbstractPage' not found in wp-content/plugins/search-and-replace/inc/Page/SearchReplace.php:13
- > PHP Fatal error
Uncaught Error: Interface 'Composer\\Semver\\Constraint\\ConstraintInterface' not found in wp-content/plugins/search-and-replace/vendor/composer/semver/src/Constraint/MultiConstraint.php:17
- > PHP Fatal error
Uncaught Error: Class 'Inpsyde\\SearchReplace\\Page\\AbstractPage' not found in wp-content/plugins/search-and-replace/inc/Page/SqlImport.php:12
- > PHP Fatal error
Uncaught Error: Class 'Inpsyde\\SearchReplace\\Page\\AbstractPage' not found in wp-content/plugins/search-and-replace/inc/Page/ReplaceDomain.php:13
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
Everything seems fine, but this is not an exhaustive test
Optimizations
Plugin configuration 86% from 29 tests
readme.txt 94% from 16 tests
The readme.txt file uses markdown syntax to describe your plugin to the world
Attributes that require attention:
- Screenshots: Please describe screenshot #6 in search-and-replace/assets to your readme.txt
search-and-replace/inpsyde-search-replace.php 77% from 13 tests
This is the main PHP file of "Search & Replace" version 3.2.1, providing information about the plugin in the header fields and serving as the principal entry point to the plugin's functions
The following require your attention:
- Description: Keep the plugin description shorter than 140 characters (currently 147 characters long)
- Domain Path: The domain path points to a folder that does not exist ("/languages")
- Main file name: Please rename the main PHP file in this plugin to the plugin slug ("search-and-replace.php" instead of "inpsyde-search-replace.php")
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is an overview of programming languages used in this plugin; dangerous file extensions are not allowed
Success! There were no dangerous files found in this plugin5,689 lines of code in 46 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 39 | 956 | 1,912 | 3,445 |
JSON | 3 | 0 | 0 | 2,081 |
CSS | 2 | 20 | 4 | 99 |
JavaScript | 2 | 25 | 13 | 64 |
PHP code Passed 2 tests
An overview of cyclomatic complexity and code structure
All good! No complexity issues found
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.44 |
Average class complexity | 19.31 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 115.00 |
Average method complexity | 3.38 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 44.00 |
Code structure | ||
---|---|---|
Namespaces | 8 | |
Interfaces | 2 | |
Traits | 0 | |
Classes | 27 | |
▷ Abstract classes | 2 | 7.41% |
▷ Concrete classes | 25 | 92.59% |
▷ Final classes | 0 | 0.00% |
Methods | 216 | |
▷ Static methods | 25 | 11.57% |
▷ Public methods | 161 | 74.54% |
▷ Protected methods | 10 | 4.63% |
▷ Private methods | 45 | 20.83% |
Functions | 8 | |
▷ Named functions | 4 | 50.00% |
▷ Anonymous functions | 4 | 50.00% |
Constants | 22 | |
▷ Global constants | 1 | 4.55% |
▷ Class constants | 21 | 95.45% |
▷ Public constants | 21 | 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
No PNG files were detected