47% vimeography

Code Review | Vimeography: Vimeo Video Gallery WordPress Plugin

WordPress plugin Vimeography: Vimeo Video Gallery WordPress Plugin scored47%from 54 tests.

About plugin

  • Plugin page: vimeography
  • Plugin version: 2.3.2
  • PHP compatiblity: 5.3+
  • PHP version: 7.4.16
  • WordPress compatibility: 4.7-6.3
  • WordPress version: 6.3.1
  • First release: Jun 16, 2012
  • Latest release: Aug 9, 2023
  • Number of updates: 193
  • Update frequency: every 21.1 days
  • Top authors: iamdavekiss (98.45%)minhgsvn (2.07%)

Code review

54 tests

User reviews

119 reviews

Install metrics

9,000+ active /293,013 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
Install script ran successfully

Server metrics [RAM: ▲0.78MB] [CPU: ▼4.16ms] Passed 4 tests

A check of server-side resources used by Vimeography: Vimeo Video Gallery WordPress Plugin
Server-side resource usage in normal parameters
PageMemory (MB)CPU Time (ms)
Home /4.03 ▲0.5645.89 ▼21.22
Dashboard /wp-admin4.14 ▲0.8458.59 ▼3.86
Posts /wp-admin/edit.php4.25 ▲0.9058.91 ▲5.07
Add New Post /wp-admin/post-new.php7.03 ▲1.15108.54 ▲3.37
Media Library /wp-admin/upload.php4.06 ▲0.8351.42 ▲15.31
Edit Galleries /wp-admin/admin.php?page=vimeography-edit-galleries4.2441.93
New Gallery /wp-admin/admin.php?page=vimeography-new-gallery4.4944.35
Welcome to Vimeography /wp-admin/options.php?page=vimeography-welcome4.0135.26
Help /wp-admin/admin.php?page=vimeography-help4.83432.99
Vimeography Pro /wp-admin/admin.php?page=vimeography-pro4.5846.16
Manage Licenses /wp-admin/admin.php?page=vimeography-manage-activations4.3551.77

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

A short overview of filesystem and database impact
Please try to fix the following items
  • The plugin illegally modified 2 files (66.19KB) outside of "wp-content/plugins/vimeography/" and "wp-content/uploads/"
    • (new file) wp-content/vimeography/cache/vimeography-gallery-56028dd5.cache
    • (new file) wp-content/vimeography/cache/vimeography-gallery-26392b13.cache
Filesystem: 459 new files
Database: 2 new tables, 7 new options
New tables
wp_vimeography_gallery
wp_vimeography_gallery_meta
New WordPress options
widget_recent-comments
theysaidso_admin_options
vimeography_default_settings
db_upgraded
can_compress_scripts
widget_recent-posts
widget_theysaidso_widget

Browser metrics Passed 4 tests

A check of browser resources used by Vimeography: Vimeo Video Gallery WordPress Plugin
This plugin has a minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,897 ▲12613.41 ▼0.852.13 ▼0.2943.28 ▼14.73
Dashboard /wp-admin2,281 ▲965.91 ▲1.0499.21 ▼20.5040.72 ▼11.91
Posts /wp-admin/edit.php2,162 ▲702.02 ▼0.0038.49 ▼1.6839.46 ▲2.57
Add New Post /wp-admin/post-new.php6,442 ▲4,91727.95 ▲4.66868.50 ▲198.7056.45 ▲0.31
Media Library /wp-admin/upload.php1,467 ▲794.19 ▼0.0298.25 ▼6.5944.53 ▼2.38
Edit Galleries /wp-admin/admin.php?page=vimeography-edit-galleries9663.3946.8030.11
New Gallery /wp-admin/admin.php?page=vimeography-new-gallery1,1752.2342.1338.08
Welcome to Vimeography /wp-admin/options.php?page=vimeography-welcome1,69010.97187.9193.98
Help /wp-admin/admin.php?page=vimeography-help1,78310.68167.9349.66
Vimeography Pro /wp-admin/admin.php?page=vimeography-pro1,1232.9126.4231.52
Manage Licenses /wp-admin/admin.php?page=vimeography-manage-activations9291.8925.5632.36

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

🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
Please fix the following items
  • Zombie tables detected upon uninstall: 2 tables
    • wp_vimeography_gallery_meta
    • wp_vimeography_gallery
  • This plugin did not uninstall successfully, leaving 7 options in the database
    • db_upgraded
    • widget_theysaidso_widget
    • vimeography_default_settings
    • widget_recent-posts
    • can_compress_scripts
    • widget_recent-comments
    • theysaidso_admin_options

Smoke tests 0% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | A smoke test targeting server-side errors
Smoke test failed, please fix the following
    • > GET request to /wp-admin/options.php?page=vimeography-welcome
    • > Notice in wp-content/plugins/vimeography/lib/admin/menu.php+216
    Undefined index: step

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
Almost there! Just fix the following items
  • 9× GET requests to PHP files return non-empty strings:
    • > /wp-content/plugins/vimeography/vendor/vimeo/vimeo-api/example/upload.php
    • > /wp-content/plugins/vimeography/vendor/mustache/mustache/bin/build_bootstrap.php
    • > /wp-content/plugins/vimeography/vendor/vimeo/vimeo-api/example/vod.php
    • > /wp-content/plugins/vimeography/vendor/vimeo/vimeo-api/example/init.php
    • > /wp-content/plugins/vimeography/vendor/vimeo/vimeo-api/example/search.php
    • > /wp-content/plugins/vimeography/vendor/vimeo/vimeo-api/example/upload_texttrack.php
    • > /wp-content/plugins/vimeography/vendor/vimeo/vimeo-api/example/index.php
    • > /wp-content/plugins/vimeography/vendor/vimeo/vimeo-api/example/auth.php
    • > /wp-content/plugins/vimeography/vendor/vimeo/vimeo-api/example/upload_image.php
  • 94× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
    • > PHP Warning
      file_get_contents(wp-content/plugins/vimeography/vendor/vimeo/vimeo-api/example/config.json): failed to open stream: No such file or directory in /var/www/wordpress/wp-content/plugins/vimeography/vendor/vimeo/vimeo-api/example/init.php on line 35
    • > PHP Fatal error
      Uncaught Error: Interface 'Mustache_Loader' not found in wp-content/plugins/vimeography/vendor/mustache/mustache/src/Mustache/Loader/ArrayLoader.php:27
    • > PHP Fatal error
      Uncaught Error: Class 'PHPUnit_Framework_TestCase' not found in wp-content/plugins/vimeography/vendor/mustache/mustache/test/Mustache/Test/Functional/MustacheInjectionTest.php:16
    • > PHP Fatal error
      Uncaught Error: Class 'PHPUnit_Framework_TestCase' not found in wp-content/plugins/vimeography/vendor/mustache/mustache/test/Mustache/Test/Logger/AbstractLoggerTest.php:15
    • > PHP Warning
      require(wp-content/plugins/vimeography/vendor/mustache/mustache/test/../vendor/yaml/lib/sfYamlParser.php): failed to open stream: No such file or directory in wp-content/plugins/vimeography/vendor/mustache/mustache/test/bootstrap.php on line 16
    • > PHP Fatal error
      Uncaught Error: Class 'PHPUnit_Framework_TestCase' not found in wp-content/plugins/vimeography/vendor/mustache/mustache/test/Mustache/Test/Exception/UnknownHelperExceptionTest.php:12
    • > PHP Fatal error
      Uncaught Error: Class 'Mustache_Test_FunctionalTestCase' not found in wp-content/plugins/vimeography/vendor/mustache/mustache/test/Mustache/Test/Functional/HigherOrderSectionsTest.php:16
    • > PHP Fatal error
      Uncaught Error: Class 'PHPUnit_Framework_TestCase' not found in wp-content/plugins/vimeography/vendor/mustache/mustache/test/Mustache/Test/Functional/InheritanceTest.php:16
    • > PHP Warning
      file_get_contents(wp-content/plugins/vimeography/vendor/vimeo/vimeo-api/example/config.json): failed to open stream: No such file or directory in /var/www/wordpress/wp-content/plugins/vimeography/vendor/vimeo/vimeo-api/example/init.php on line 35
    • > PHP Fatal error
      Uncaught Exception: We could not locate your client id or client secret in "wp-content/plugins/vimeography/vendor/vimeo/vimeo-api/example/config.json". Please create one, and reference config.json.example in /var/www/wordpress/wp-content/plugins/vimeography/vendor/vimeo/vimeo-api/example/init.php:38

User-side errors 0% from 1 test

🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
Please take a look at the following user-side issues
    • > GET request to /wp-admin/admin.php?page=vimeography-edit-galleries
    • > Console-api (warning) in wp-content/plugins/vimeography/lib/admin/app/dist/index.9ed1f11011322d08d9e4.js?ver=1.0+0:4315
    Initialization of sharing external failed: ScriptExternalLoadError: Loading script failed.\n(error: /wp-admin/admin.php?page=vimeography-edit-galleries)
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=vimeography-pro
    • > Network (severe)
    https://play.andoto.com/embed.js?id=mKKE3FL2g3bAG - Failed to load resource: net::ERR_NAME_NOT_RESOLVED

Optimizations

Plugin configuration Passed 29 tests

readme.txt Passed 16 tests

Don't ignore readme.txt as it is the file that instructs WordPress.org on how to present your plugin to the world
5 plugin tags: video, vimeo, vimeo gallery, video gallery, gallery

vimeography/vimeography.php Passed 13 tests

Analyzing the main PHP file in "Vimeography: Vimeo Video Gallery WordPress Plugin" version 2.3.2
77 characters long description:
Vimeography is the easiest way to set up a custom Vimeo gallery on your site.

Code Analysis 5% from 3 tests

File types 0% from 1 test

🔸 Test weight: 35 | This is a short overview of programming languages used in this plugin, detecting executable files
Almost there! Just fix the following issues
  • Do not distribute dangerous files with your plugin
    • .ms - Maxwell Script in Maxwell Render
      • wp-content/plugins/vimeography/vendor/mustache/mustache/test/fixtures/templates/alpha.ms
      • wp-content/plugins/vimeography/vendor/mustache/mustache/test/fixtures/templates/beta.ms
44,305 lines of code in 306 files:
LanguageFilesBlank linesComment linesLines of code
JSON50016,299
PHP1772,6605,93612,241
CSS1614836010,334
JavaScript397764502,849
Mustache5125701,445
PO File3280330751
SVG1009311
Markdown222032
YAML24028
XML12015

PHP code Passed 2 tests

This plugin's cyclomatic complexity and code structure detailed below
There were no cyclomatic complexity issued detected
Cyclomatic complexity
Average complexity per logical line of code0.27
Average class complexity6.57
▷ Minimum class complexity1.00
▷ Maximum class complexity101.00
Average method complexity2.33
▷ Minimum method complexity1.00
▷ Maximum method complexity27.00
Code structure
Namespaces5
Interfaces7
Traits0
Classes169
▷ Abstract classes74.14%
▷ Concrete classes16295.86%
▷ Final classes00.00%
Methods765
▷ Static methods577.45%
▷ Public methods65185.10%
▷ Protected methods395.10%
▷ Private methods759.80%
Functions50
▷ Named functions612.00%
▷ Anonymous functions4488.00%
Constants87
▷ Global constants1112.64%
▷ Class constants7687.36%
▷ Public constants76100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

Often times overlooked, PNG files can occupy unnecessary space in your plugin
70 PNG files occupy 0.29MB with 0.09MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
lib/admin/assets/js/mce-button.png1.30KB0.37KB▼ 71.82%
lib/admin/assets/img/icons/playlist.png1.49KB0.65KB▼ 56.47%
lib/shared/assets/css/textures/highlight.png0.39KB0.36KB▼ 9.00%
lib/admin/assets/css/plugins/jquery-ui/smoothness/images/ui-bg_glass_65_ffffff_1x400.png0.10KB0.10KB▼ 5.71%
lib/shared/assets/css/Material/sprite_kpi_2x.png1.44KB1.17KB▼ 18.82%