10% blue-storage

Code Review | Blue Storage

WordPress plugin Blue Storage scored 10% from 54 tests.

About plugin

  • Plugin page: blue-storage
  • Plugin version: 1.2.0
  • PHP version: 7.4.16
  • WordPress compatibility: 2.8.0-4.4.2
  • WordPress version: 6.3.1
  • First release: Dec 7, 2015
  • Latest release: Apr 2, 2016
  • Number of updates: 86
  • Update frequency: every 1.4 days
  • Top authors: derekheld (100%)

Code review

54 tests

User reviews

1 review

Install metrics

10+ active / 1,397 total downloads

Benchmarks

Plugin footprint 40% from 16 tests

Installer 0% from 1 test

🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
The following installer errors require your attention
  • This plugin did not install gracefully
    • > Deprecated in wp-content/plugins/blue-storage/blue-storage.php+390
    Array and string offset access syntax with curly braces is deprecated

Server metrics [RAM: ▼1.83MB] [CPU: ▼52.87ms] Passed 4 tests

An overview of server-side resources used by Blue Storage
This plugin does not affect your website's performance
PageMemory (MB)CPU Time (ms)
Home /2.16 ▼1.304.87 ▼39.53
Dashboard /wp-admin2.18 ▼1.136.84 ▼41.09
Posts /wp-admin/edit.php2.18 ▼1.187.64 ▼43.32
Add New Post /wp-admin/post-new.php2.18 ▼3.716.29 ▼87.52
Media Library /wp-admin/upload.php2.18 ▼1.055.84 ▼30.55
Azure Storage /wp-admin/options-general.php?page=b5506889-50de-42db-bf63-e9f248ca94e92.186.51

Server storage [IO: ▲2.12MB] [DB: ▲0.00MB] Passed 3 tests

A short overview of filesystem and database impact
No storage issues were detected
Filesystem: 324 new files
Database: no new tables, 6 new options
New WordPress options
widget_theysaidso_widget
widget_recent-comments
can_compress_scripts
widget_recent-posts
theysaidso_admin_options
db_upgraded

Browser metrics Passed 4 tests

Blue Storage: an overview of browser usage
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,806 ▲7114.43 ▲0.191.73 ▼0.1943.22 ▼1.58
Dashboard /wp-admin2,209 ▲215.83 ▲0.9697.75 ▼9.4137.94 ▼2.85
Posts /wp-admin/edit.php2,095 ▲32.01 ▼0.0138.92 ▲0.3234.27 ▲0.96
Add New Post /wp-admin/post-new.php1,533 ▼923.41 ▲5.29670.47 ▲21.6574.72 ▲18.02
Media Library /wp-admin/upload.php1,397 ▲94.32 ▲0.1795.30 ▼3.4540.58 ▼3.06
Azure Storage /wp-admin/options-general.php?page=b5506889-50de-42db-bf63-e9f248ca94e91,1532.0424.1332.48

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

🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
These items require your attention
  • Uninstall procedure validation failed for this plugin
    • > Deprecated in wp-content/plugins/blue-storage/blue-storage.php+390
    Array and string offset access syntax with curly braces is deprecated
  • Zombie WordPress options detected upon uninstall: 6 options
    • theysaidso_admin_options
    • widget_theysaidso_widget
    • widget_recent-posts
    • db_upgraded
    • widget_recent-comments
    • can_compress_scripts

Smoke tests 25% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
Smoke test failed, please fix the following
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/options-general.php?page=b5506889-50de-42db-bf63-e9f248ca94e9
    • > Deprecated in wp-content/plugins/blue-storage/blue-storage-util.php+333
    Array and string offset access syntax with curly braces is deprecated

SRP 50% 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 take a closer look at the following
  • 148× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Interface 'WindowsAzure\\Common\\Internal\\FilterableService' not found in wp-content/plugins/blue-storage/library/WindowsAzure/Table/Internal/ITable.php:40
    • > PHP Fatal error
      Uncaught Error: Class 'WindowsAzure\\ServiceManagement\\Internal\\WindowsAzureService' not found in wp-content/plugins/blue-storage/library/WindowsAzure/ServiceManagement/Models/StorageService.php:41
    • > PHP Fatal error
      Uncaught Error: Class 'WindowsAzure\\Common\\Internal\\RestProxy' not found in wp-content/plugins/blue-storage/library/WindowsAzure/Common/Internal/ServiceRestProxy.php:44
    • > PHP Fatal error
      require_once(): Failed opening required 'Net/URL2.php' (include_path='.:/usr/share/php') in wp-content/plugins/blue-storage/library/dependencies/HTTP/Request2.php on line 47
    • > PHP Warning
      require_once(PEAR.php): failed to open stream: No such file or directory in wp-content/plugins/blue-storage/library/WindowsAzure/Common/Internal/Http/BatchRequest.php on line 26
    • > PHP Fatal error
      Uncaught Error: Interface 'WindowsAzure\\Common\\Internal\\FilterableService' not found in wp-content/plugins/blue-storage/library/WindowsAzure/Blob/Internal/IBlob.php:40
    • > PHP Warning
      require_once(HTTP/Request2.php): failed to open stream: No such file or directory in wp-content/plugins/blue-storage/library/WindowsAzure/Common/Internal/Http/HttpClient.php on line 33
    • > PHP Warning
      require_once(PEAR.php): failed to open stream: No such file or directory in wp-content/plugins/blue-storage/library/WindowsAzure/Common/Internal/Http/BatchResponse.php on line 26
    • > PHP Fatal error
      Uncaught Error: Class 'WindowsAzure\\Common\\Internal\\Atom\\AtomBase' not found in wp-content/plugins/blue-storage/library/WindowsAzure/Common/Internal/Atom/Person.php:42
    • > PHP Fatal error
      Uncaught Error: Class 'WindowsAzure\\Common\\Internal\\ServiceRestProxy' not found in wp-content/plugins/blue-storage/library/WindowsAzure/ServiceBus/ServiceBusRestProxy.php:71

User-side errors 0% from 1 test

🔹 Test weight: 20 | This is a shallow check for browser errors
These are user-side errors you should fix
    • > GET request to /wp-admin/options-general.php?page=b5506889-50de-42db-bf63-e9f248ca94e9
    • > Javascript (severe) in unknown
    /wp-admin/options-general.php?page=b5506889-50de-42db-bf63-e9f248ca94e9 168:55 Uncaught TypeError: Cannot set properties of undefined (setting 'disabled')

Optimizations

Plugin configuration Passed 29 tests

readme.txt Passed 16 tests

Perhaps the most important file in your plugin readme.txt gets parsed in order to generate the public listing of your plugin
7 plugin tags: microsoft azure, microsoft, blob, media files, azure...

blue-storage/blue-storage.php Passed 13 tests

The main PHP file in "Blue Storage" ver. 1.2.0 adds more information about the plugin and also serves as the entry point for this plugin
116 characters long description:
Blue Storage for Microsoft Azure allows you to use Azure Storage to host your media for your WordPress powered blog.

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
Good job! No executable or dangerous file extensions detected31,301 lines of code in 323 files:
LanguageFilesBlank linesComment linesLines of code
PHP3217,54036,07231,197
JavaScript18280
CSS14024

PHP code Passed 2 tests

This is a very shot review of cyclomatic complexity and code structure
This plugin has no cyclomatic complexity problems
Cyclomatic complexity
Average complexity per logical line of code0.23
Average class complexity8.41
▷ Minimum class complexity1.00
▷ Maximum class complexity182.00
Average method complexity1.95
▷ Minimum method complexity1.00
▷ Maximum method complexity50.00
Code structure
Namespaces29
Interfaces25
Traits0
Classes298
▷ Abstract classes41.34%
▷ Concrete classes29498.66%
▷ Final classes00.00%
Methods2,748
▷ Static methods2699.79%
▷ Public methods2,54792.69%
▷ Protected methods893.24%
▷ Private methods1124.08%
Functions35
▷ Named functions3085.71%
▷ Anonymous functions514.29%
Constants534
▷ Global constants173.18%
▷ Class constants51796.82%
▷ Public constants517100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

Often times overlooked, PNG files can occupy unnecessary space in your plugin
No PNG files were detected