67% real-media-library-lite

Code Review | Real Media Library: Media Library Folder & File Manager

WordPress plugin Real Media Library: Media Library Folder & File Manager scored67%from 54 tests.

About plugin

  • Plugin page: real-media-librar...
  • Plugin version: 4.21.20
  • PHP compatiblity: 7.4.0+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.8-6.4
  • WordPress version: 6.3.1
  • First release: Feb 26, 2020
  • Latest release: Nov 28, 2023
  • Number of updates: 159
  • Update frequency: every 8.6 days
  • Top authors: devowl (100%)

Code review

54 tests

User reviews

200 reviews

Install metrics

80,000+ active /2,105,329 total downloads

Benchmarks

Plugin footprint 65% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
Installer ran successfully

Server metrics [RAM: ▲3.42MB] [CPU: ▲30.95ms] 75% from 4 tests

Analyzing server-side resources used by Real Media Library: Media Library Folder & File Manager
Please fix the following
  • CPU: You should keep total CPU usage under 500.00ms (currently 524.76ms on /wp-admin/admin.php?page=real-media-library-lite-welcome)
PageMemory (MB)CPU Time (ms)
Home /6.90 ▲3.4463.03 ▲19.44
Dashboard /wp-admin6.74 ▲3.4482.74 ▲36.02
Posts /wp-admin/edit.php6.80 ▲3.4486.61 ▲38.54
Add New Post /wp-admin/post-new.php9.36 ▲3.48121.34 ▲29.81
Media Library /wp-admin/upload.php6.58 ▲3.3571.01 ▲38.93
Real Media Library (Free) /wp-admin/admin.php?page=real-media-library-lite-welcome6.93524.76

Server storage [IO: ▲3.64MB] [DB: ▲0.01MB] Passed 3 tests

How much does this plugin use your filesystem and database?
This plugin was installed successfully
Filesystem: 295 new files
Database: 4 new tables, 18 new options
New tables
wp_realmedialibrary_tmp
wp_realmedialibrary_posts
wp_realmedialibrary
wp_realmedialibrary_meta
New WordPress options
rml_load_frontend
rml_importTaxNotice-expire
rml_liteDismissed-expire
rml_liteDismissed
rpm-wpc-licenseDeferredLicenseActivation_real-media-library-lite-expire
db_upgraded
rpm-wpc-announcements-active_real-media-library-lite
rpm-wpc-puFirst_real-media-library-lite
can_compress_scripts
rpm-wpc-licenseDeferredLicenseActivation_real-media-library-lite
...

Browser metrics Passed 4 tests

An overview of browser requirements for Real Media Library: Media Library Folder & File Manager
This plugin renders optimally with no browser resource issues detected
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,509 ▲74721.10 ▲6.7156.29 ▲54.5637.53 ▼6.44
Dashboard /wp-admin2,454 ▲2779.73 ▲4.21162.59 ▲59.5441.83 ▼2.40
Posts /wp-admin/edit.php2,389 ▲2867.59 ▲5.59101.55 ▲65.2443.98 ▲11.07
Add New Post /wp-admin/post-new.php6,278 ▲4,75224.48 ▲1.48869.61 ▲206.7436.16 ▼17.10
Media Library /wp-admin/upload.php2,062 ▲66210.84 ▲6.63210.53 ▲104.89146.86 ▲103.06
Real Media Library (Free) /wp-admin/admin.php?page=real-media-library-lite-welcome1,7667.3799.56147.14

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

🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
These items require your attention
  • Zombie tables were found after uninstall: 4 tables
    • wp_realmedialibrary
    • wp_realmedialibrary_posts
    • wp_realmedialibrary_tmp
    • wp_realmedialibrary_meta
  • This plugin does not fully uninstall, leaving 18 options in the database
    • rml_db_version
    • rml_importTaxNotice
    • db_upgraded
    • rml_load_frontend
    • rml_liteDismissed-expire
    • rpm-wpc-licenseDeferredLicenseActivation_real-media-library-lite
    • widget_theysaidso_widget
    • widget_recent-comments
    • can_compress_scripts
    • rml_cqs
    • ...

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 no errors were found, this is by no means an exhaustive test

SRP 0% from 2 tests

🔹 Tests weight: 20 | A shallow check of the single-responsibility principle; PHP files should perform no action - including output of placeholder text - and trigger no errors when accessed directly
The following issues need your attention
  • 143× PHP files output non-empty strings when accessed directly via GET requests (only 10 are shown):
    • > /wp-content/plugins/real-media-library-lite/inc/base/UtilsProvider.php
    • > /wp-content/plugins/real-media-library-lite/inc/attachment/Filter.php
    • > /wp-content/plugins/real-media-library-lite/inc/overrides/interfce/order/IOverrideSortable.php
    • > /wp-content/plugins/real-media-library-lite/vendor/devowl-wp/real-utils/src/WelcomePage.php
    • > /wp-content/plugins/real-media-library-lite/inc/api/IStructure.php
    • > /wp-content/plugins/real-media-library-lite/vendor/devowl-wp/utils/src/Core.php
    • > /wp-content/plugins/real-media-library-lite/inc/overrides/lite/comp/ExImport.php
    • > /wp-content/plugins/real-media-library-lite/inc/view/FolderShortcode.php
    • > /wp-content/plugins/real-media-library-lite/inc/rest/Service.php
    • > /wp-content/plugins/real-media-library-lite/inc/api/attachment.php
  • 23× PHP files trigger server errors when accessed directly (only 10 are shown):
    • > PHP Warning
      Class 'MatthiasWeb\\RealMediaLibrary\\view\\Gutenberg' not found in wp-content/plugins/real-media-library-lite/inc/base/others/class-alias.php on line 27
    • > PHP Fatal error
      Uncaught Error: Call to undefined function PHPSTORM_META\\expectedArguments() in wp-content/plugins/real-media-library-lite/vendor/colinodell/json5/.phpstorm.meta.php:7
    • > PHP Warning
      Use of undefined constant RML_NS - assumed 'RML_NS' (this will throw an Error in a future version of PHP) in wp-content/plugins/real-media-library-lite/inc/base/others/class-alias.php on line 25
    • > PHP Warning
      Class 'MatthiasWeb\\RealMediaLibrary\\Util' not found in wp-content/plugins/real-media-library-lite/inc/base/others/class-alias.php on line 24
    • > PHP Warning
      Class 'MatthiasWeb\\RealMediaLibrary\\folder\\QueryCount' not found in wp-content/plugins/real-media-library-lite/inc/base/others/class-alias.php on line 20
    • > PHP Warning
      Class 'MatthiasWeb\\RealMediaLibrary\\view\\Lang' not found in wp-content/plugins/real-media-library-lite/inc/base/others/class-alias.php on line 29
    • > PHP Warning
      Class 'MatthiasWeb\\RealMediaLibrary\\view\\Options' not found in wp-content/plugins/real-media-library-lite/inc/base/others/class-alias.php on line 25
    • > PHP Warning
      Class 'MatthiasWeb\\RealMediaLibrary\\exception\\FolderAlreadyExistsException' not found in wp-content/plugins/real-media-library-lite/inc/base/others/class-alias.php on line 19
    • > PHP Warning
      Use of undefined constant RML_NS - assumed 'RML_NS' (this will throw an Error in a future version of PHP) in wp-content/plugins/real-media-library-lite/inc/base/others/class-alias.php on line 26
    • > PHP Warning
      Class 'MatthiasWeb\\RealMediaLibrary\\Localization' not found in wp-content/plugins/real-media-library-lite/inc/base/others/class-alias.php on line 23

User-side errors Passed 1 test

🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
Everything seems fine, but this is not an exhaustive test

Optimizations

Plugin configuration 90% from 29 tests

readme.txt 94% from 16 tests

Perhaps the most important file in your plugin readme.txt gets parsed in order to generate the public listing of your plugin
These attributes need to be fixed:
  • Tags: There are too many tags (28 tag instead of maximum 10)
Please take inspiration from this readme.txt

real-media-library-lite/index.php 85% from 13 tests

"Real Media Library: Media Library Folder & File Manager" version 4.21.20's main PHP file describes plugin functionality and also serves as the entry point to any WordPress functionality
Please make the necessary changes and fix the following:
  • Text Domain: The text domain is optional since WordPress version 4.6; if you do specify it, it must be the same as the plugin slug
  • Main file name: Name the main plugin file the same as the plugin slug ("real-media-library-lite.php" instead of "index.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
Everything looks great! No dangerous files found in this plugin23,287 lines of code in 222 files:
LanguageFilesBlank linesComment linesLines of code
PHP1694209,77112,389
Markdown104,04008,028
JSON7001,839
SVG36063337
HTML1110298
CSS142845187
Sass1430187
JavaScript1745222

PHP code Passed 2 tests

This is a very shot review of cyclomatic complexity and code structure
No complexity issues detected
Cyclomatic complexity
Average complexity per logical line of code0.40
Average class complexity12.62
▷ Minimum class complexity1.00
▷ Maximum class complexity111.00
Average method complexity2.65
▷ Minimum method complexity1.00
▷ Maximum method complexity25.00
Code structure
Namespaces41
Interfaces16
Traits26
Classes102
▷ Abstract classes98.82%
▷ Concrete classes9391.18%
▷ Final classes33.23%
Methods1,088
▷ Static methods12411.40%
▷ Public methods96488.60%
▷ Protected methods464.23%
▷ Private methods787.17%
Functions88
▷ Named functions5764.77%
▷ Anonymous functions3135.23%
Constants189
▷ Global constants3719.58%
▷ Class constants15280.42%
▷ Public constants152100.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
There were not PNG files found in your plugin