78% wpide

Code Review | WPIDE - File Manager & Code Editor

WordPress plugin WPIDE - File Manager & Code Editor scored78%from 54 tests.

About plugin

  • Plugin page: wpide
  • Plugin version: 3.4.7
  • PHP compatiblity: 7.4.0+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.0-6.2
  • WordPress version: 6.3.1
  • First release: Nov 6, 2011
  • Latest release: Jul 25, 2023
  • Number of updates: 94
  • Update frequency: every 45.6 days
  • Top authors: WPsites (53.19%)xplodedthemes (41.49%)WebFactory (7.45%)

Code review

54 tests

User reviews

163 reviews

Install metrics

30,000+ active /574,704 total downloads

Benchmarks

Plugin footprint 82% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Checking the installer triggered no errors
The plugin installed successfully, without throwing any errors or notices

Server metrics [RAM: ▲0.66MB] [CPU: ▲1.44ms] Passed 4 tests

This is a short check of server-side resources used by WPIDE - File Manager & Code Editor
Normal server usage
PageMemory (MB)CPU Time (ms)
Home /4.09 ▲0.6435.70 ▼5.61
Dashboard /wp-admin3.98 ▲0.6851.70 ▲3.38
Posts /wp-admin/edit.php4.03 ▲0.6854.54 ▲10.21
Add New Post /wp-admin/post-new.php6.52 ▲0.6397.81 ▼0.06
Media Library /wp-admin/upload.php3.90 ▲0.6840.84 ▲8.03
Freemius Debug [v.2.5.10] /wp-admin/admin.php?page=freemius4.2636.73

Server storage [IO: ▲19.56MB] [DB: ▲0.08MB] 67% from 3 tests

Input-output and database impact of this plugin
Please try to fix the following items
  • You have illegally modified 1 file (31.89KB) outside of "wp-content/plugins/wpide/" and "wp-content/uploads/"
    • (new file) wp-content/fatal-error-handler.php
Filesystem: 1,376 new files
Database: no new tables, 14 new options
New WordPress options
wpide_changelog_viewed
wpide_installed_time
fs_active_plugins
wpide_config
theysaidso_admin_options
wpide_version
widget_recent-posts
can_compress_scripts
fs_debug_mode
widget_recent-comments
...

Browser metrics Passed 4 tests

This is an overview of browser requirements for WPIDE - File Manager & Code Editor
This plugin has a minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,840 ▲8313.27 ▼1.041.73 ▼0.4633.42 ▼15.62
Dashboard /wp-admin2,246 ▲585.81 ▼0.1199.94 ▼11.3441.74 ▲1.52
Posts /wp-admin/edit.php2,132 ▲432.04 ▲0.0544.32 ▲9.0937.78 ▲5.42
Add New Post /wp-admin/post-new.php1,538 ▲423.41 ▲0.20636.82 ▼29.8060.07 ▲6.24
Media Library /wp-admin/upload.php1,431 ▲434.27 ▲0.0697.69 ▼0.6643.98 ▲1.77
Freemius Debug [v.2.5.10] /wp-admin/admin.php?page=freemius1,1001.8427.4627.76

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

🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
These items require your attention
  • This plugin did not uninstall successfully, leaving 14 options in the database
    • wpide_dropin_version
    • wpide_version
    • fs_debug_mode
    • fs_accounts
    • can_compress_scripts
    • widget_recent-comments
    • widget_theysaidso_widget
    • theysaidso_admin_options
    • wpide_changelog_viewed
    • wpide_config
    • ...

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | A smoke test targeting 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
  • 1× PHP files perform the task of outputting text when accessed with GET requests:
    • > /wp-content/plugins/wpide/vendor/nikic/php-parser/grammar/rebuildParsers.php
  • 686× PHP files trigger server errors when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'PhpParser\ode\\Expr\\BinaryOp' not found in wp-content/plugins/wpide/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php:7
    • > PHP Fatal error
      Uncaught Error: Class 'PhpParser\ode\\Expr\\BinaryOp' not found in wp-content/plugins/wpide/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php:7
    • > PHP Fatal error
      Uncaught Error: Class 'PhpParser\ode\\Expr' not found in wp-content/plugins/wpide/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php:9
    • > PHP Fatal error
      Uncaught Error: Class 'Monolog\\Handler\\AbstractProcessingHandler' not found in wp-content/plugins/wpide/vendor/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php:22
    • > PHP Fatal error
      Uncaught Error: Class 'PhpParser\ode\\Expr\\AssignOp' not found in wp-content/plugins/wpide/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php:7
    • > PHP Fatal error
      Uncaught Error: Class 'PhpParser\ode\\Expr\\Cast' not found in wp-content/plugins/wpide/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php:7
    • > PHP Fatal error
      Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/wpide/vendor/composer/installers/src/Composer/Installers/LavaLiteInstaller.php:4
    • > PHP Fatal error
      Uncaught Error: Class 'Symfony\\Component\\Mime\\Part\\AbstractMultipartPart' not found in wp-content/plugins/wpide/vendor/symfony/mime/Part/Multipart/DigestPart.php:20
    • > PHP Warning
      file_get_contents(wp-content/plugins/wpide/vendor/nikic/php-parser/grammar/tmp_parser.php): failed to open stream: No such file or directory in wp-content/plugins/wpide/vendor/nikic/php-parser/grammar/rebuildParsers.php on line 48
    • > PHP Fatal error
      Uncaught Error: Interface 'Monolog\\Handler\\HandlerInterface' not found in wp-content/plugins/wpide/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php:24

User-side errors Passed 1 test

🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
Everything seems fine on the user side

Optimizations

Plugin configuration 96% from 29 tests

readme.txt Passed 16 tests

Often overlooked, readme.txt is one of the most important files in your plugin
7 plugin tags: code editor, plugin editor, file editor, ide, file manager...

wpide/wpide.php 92% from 13 tests

The main file in "WPIDE - File Manager & Code Editor" v. 3.4.7 serves as a complement to information provided in readme.txt and as the entry point to the plugin
Please make the necessary changes and fix the following:
  • Description: The description should be shorter than 140 characters (currently 238 characters long)

Code Analysis 97% from 3 tests

File types Passed 1 test

🔸 Test weight: 35 | This is an overview of file extensions present in this plugin and a short test that no dangerous files are bundled with this plugin
No dangerous file extensions were detected114,059 lines of code in 1,231 files:
LanguageFilesBlank linesComment linesLines of code
PHP1,03721,00842,17096,262
CSS46119745,183
Sass38538923,188
Markdown321,14903,090
JSON21002,172
yacc3332122,029
SVG62551,721
JavaScript413482250
XML63358163
HTML1001

PHP code 50% from 2 tests

This is a short overview of cyclomatic complexity and code structure for this plugin
It is recommended to fix the following
  • Please reduce cyclomatic complexity of classes to less than 1000 (currently 3,073)
Cyclomatic complexity
Average complexity per logical line of code0.45
Average class complexity12.30
▷ Minimum class complexity1.00
▷ Maximum class complexity3,073.00
Average method complexity2.90
▷ Minimum method complexity1.00
▷ Maximum method complexity94.00
Code structure
Namespaces133
Interfaces72
Traits18
Classes859
▷ Abstract classes475.47%
▷ Concrete classes81294.53%
▷ Final classes475.79%
Methods5,776
▷ Static methods5219.02%
▷ Public methods4,41876.49%
▷ Protected methods70812.26%
▷ Private methods65011.25%
Functions1,426
▷ Named functions14510.17%
▷ Anonymous functions1,28189.83%
Constants676
▷ Global constants13419.82%
▷ Class constants54280.18%
▷ Public constants52396.49%

Plugin size Passed 2 tests

Image compression Passed 2 tests

All PNG images should be compressed to minimize bandwidth usage for end users
15 PNG files occupy 0.17MB with 0.10MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
dist/pricing/27b5a722a5553d9de0170325267fccec.png6.35KB3.38KB▼ 46.76%
dist/pricing/4375c4a3ddc6f637c2ab9a2d7220f91e.png9.16KB5.26KB▼ 42.58%
dist/img/favicon.png23.36KB9.58KB▼ 58.99%
dist/pricing/cb5fc4f6ec7ada72e986f6e7dde365bf.png22.92KB3.42KB▼ 85.08%
dist/pricing/e366d70661d8ad2493bd6afbd779f125.png10.86KB3.99KB▼ 63.26%