68% toolsfors3

Code Review | Tools For S3 Amazon AWS Web Services

WordPress plugin Tools For S3 Amazon AWS Web Services scored68%from 54 tests.

About plugin

  • Plugin page: toolsfors3
  • Plugin version: 2.06
  • PHP version: 7.4.16
  • WordPress compatibility: 5.2-6.3
  • WordPress version: 6.3.1
  • First release: Jan 26, 2023
  • Latest release: Oct 17, 2023
  • Number of updates: 57
  • Update frequency: every 4.7 days
  • Top authors: sminozzi (100%)

Code review

54 tests

User reviews

1 review

Install metrics

10+ active /755 total downloads

Benchmarks

Plugin footprint 65% 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.04MB] [CPU: ▼3.40ms] Passed 4 tests

A check of server-side resources used by Tools For S3 Amazon AWS Web Services
Server-side resource usage in normal parameters
PageMemory (MB)CPU Time (ms)
Home /3.63 ▲0.1640.34 ▲2.18
Dashboard /wp-admin3.35 ▲0.0447.93 ▼4.53
Posts /wp-admin/edit.php3.40 ▲0.0444.33 ▼0.00
Add New Post /wp-admin/post-new.php5.93 ▲0.0483.27 ▼11.24
Media Library /wp-admin/upload.php3.27 ▲0.0439.48 ▲6.22
Tools for S3 /wp-admin/tools.php?page=toolsfors3_admin_page3.2834.40

Server storage [IO: ▲28.76MB] [DB: ▲0.00MB] 67% from 3 tests

Filesystem and database footprint
Please try to fix the following items
  • Total filesystem usage must be limited to 25MB (currently using 28.76MB)
Filesystem: 3,128 new files
Database: 1 new table, 8 new options
New tables
wp_toolsfors3_copy
New WordPress options
widget_theysaidso_widget
widget_recent-comments
toolsfors3_was_activated
widget_recent-posts
theysaidso_admin_options
bill_show_warnings
db_upgraded
can_compress_scripts

Browser metrics Passed 4 tests

This is an overview of browser requirements for Tools For S3 Amazon AWS Web Services
There were no issues detected in relation to browser resource usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,876 ▲13013.21 ▼1.142.01 ▲0.3140.32 ▼3.19
Dashboard /wp-admin2,255 ▲745.71 ▼0.0087.58 ▼19.2540.79 ▼1.42
Posts /wp-admin/edit.php2,160 ▲812.29 ▲0.2740.36 ▲4.8034.91 ▼1.17
Add New Post /wp-admin/post-new.php1,549 ▲2323.19 ▼0.32687.96 ▲4.9066.64 ▲9.49
Media Library /wp-admin/upload.php1,460 ▲604.35 ▲0.19100.80 ▲0.7941.35 ▼5.84
Tools for S3 /wp-admin/tools.php?page=toolsfors3_admin_page9192.6765.0461.64

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

🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
You still need to fix the following
  • The uninstall procedure failed, leaving 1 table in the database
    • wp_toolsfors3_copy
  • Zombie WordPress options were found after uninstall: 8 options
    • can_compress_scripts
    • theysaidso_admin_options
    • widget_theysaidso_widget
    • bill_show_warnings
    • toolsfors3_was_activated
    • db_upgraded
    • widget_recent-comments
    • widget_recent-posts

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 everything seems fine, this is not an exhaustive test

SRP 0% from 2 tests

🔹 Tests weight: 20 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
Please fix the following
  • 15× PHP files output non-empty strings when accessed directly via GET requests (only 10 are shown):
    • > /wp-content/plugins/toolsfors3/functions/tree_data_filesys_cloud.php
    • > /wp-content/plugins/toolsfors3/s3api/download.php
    • > /wp-content/plugins/toolsfors3/dashboard/dashboard_container.php
    • > /wp-content/plugins/toolsfors3/dashboard/amazon.php
    • > /wp-content/plugins/toolsfors3/functions/tree_data_filesys.php
    • > /wp-content/plugins/toolsfors3/toolsfors3.php
    • > /wp-content/plugins/toolsfors3/functions/transfer_to_cloud.php
    • > /wp-content/plugins/toolsfors3/functions/functions.php
    • > /wp-content/plugins/toolsfors3/assets/js/tree_data_filesys.php
    • > /wp-content/plugins/toolsfors3/includes/checkup/bill_class_diagnose.php
  • 190× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'Aws\\AbstractConfigurationProvider' not found in wp-content/plugins/toolsfors3/vendor/Aws/Endpoint/UseDualstackEndpoint/ConfigurationProvider.php:44
    • > PHP Fatal error
      Uncaught Error: Interface 'Aws\\Signature\\SignatureInterface' not found in wp-content/plugins/toolsfors3/vendor/Aws/Signature/SignatureV4.php:21
    • > PHP Fatal error
      Uncaught Error: Interface 'Aws\\CacheInterface' not found in wp-content/plugins/toolsfors3/vendor/Aws/DoctrineCacheAdapter.php:6
    • > PHP Fatal error
      Uncaught Error: Class 'Aws\\S3\\MultipartUploader' not found in wp-content/plugins/toolsfors3/vendor/Aws/S3/Crypto/S3EncryptionMultipartUploaderV2.php:20
    • > PHP Fatal error
      Trait 'Aws\\Crypto\\Polyfill\eedsTrait' not found in wp-content/plugins/toolsfors3/vendor/Aws/Crypto/Polyfill/Gmac.php on line 9
    • > PHP Fatal error
      Uncaught Error: Interface 'Aws\\MonitoringEventsInterface' not found in wp-content/plugins/toolsfors3/vendor/Aws/Exception/CredentialsException.php:7
    • > PHP Fatal error
      Uncaught Error: Interface 'Psr\\Http\\Message\\StreamInterface' not found in wp-content/plugins/toolsfors3/vendor/GuzzleHttp/Psr7/LazyOpenStream.php:13
    • > PHP Warning
      Invalid argument supplied for foreach() in wp-content/plugins/toolsfors3/functions/tree_data_filesys.php on line 106
    • > PHP Fatal error
      Uncaught Error: Class 'Aws\\Api\\Parser\\AbstractParser' not found in wp-content/plugins/toolsfors3/vendor/Aws/S3/ValidateResponseChecksumParser.php:15
    • > PHP Fatal error
      Uncaught Error: Interface 'Aws\\Crypto\\AesStreamInterface' not found in wp-content/plugins/toolsfors3/vendor/Aws/Crypto/AesEncryptingStream.php:12

User-side errors Passed 1 test

🔹 Test weight: 20 | A shallow check that no browser errors were triggered
There were no browser issues found

Optimizations

Plugin configuration Passed 29 tests

readme.txt Passed 16 tests

The readme.txt file is an important file in your plugin as it is parsed by WordPress.org to prepare the public listing of your plugin
7 plugin tags: tools for s3, amazon web services, s3 aws amazon, amazon aws s3 object storage, aws amazon cloud browse...

toolsfors3/toolsfors3.php Passed 13 tests

Analyzing the main PHP file in "Tools For S3 Amazon AWS Web Services" version 2.06
116 characters long description:
Browser for Amazon s3 tool. This plugin connect you with your Amazon AWS S3 Object Storage, using S3-compatible API.

Code Analysis Passed 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
Success! There were no dangerous files found in this plugin108,975 lines of code in 3,103 files:
LanguageFilesBlank linesComment linesLines of code
PHP1,2286,03017,04538,734
JSON70023,934
JavaScript353,8332,30315,611
CSS87686212,719
HTML1507,286
SVG1,810006,224
Sass1403,734
Markdown71540535
Handlebars3110102
YAML38096

PHP code Passed 2 tests

This is a short overview of cyclomatic complexity and code structure for this plugin
This plugin has no cyclomatic complexity issues
Cyclomatic complexity
Average complexity per logical line of code0.37
Average class complexity11.47
▷ Minimum class complexity1.00
▷ Maximum class complexity112.00
Average method complexity2.65
▷ Minimum method complexity1.00
▷ Maximum method complexity30.00
Code structure
Namespaces51
Interfaces46
Traits24
Classes283
▷ Abstract classes134.59%
▷ Concrete classes27095.41%
▷ Final classes238.52%
Methods2,230
▷ Static methods39017.49%
▷ Public methods1,52768.48%
▷ Protected methods1225.47%
▷ Private methods58126.05%
Functions483
▷ Named functions14329.61%
▷ Anonymous functions34070.39%
Constants220
▷ Global constants125.45%
▷ Class constants20894.55%
▷ Public constants208100.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
4 PNG files occupy 0.01MB with 0.00MB in potential savings
Potential savings
Compression of 4 random PNG files using pngquant
FileSize - originalSize - compressedSavings
images/logo.png10.39KB5.71KB▼ 45.00%
includes/checkup/bell.png1.07KB0.27KB▼ 74.45%
images/folder.png0.50KB0.56KB0.00%
images/file.png0.56KB0.81KB0.00%