78% advanced-gutenberg

Code Review | Gutenberg Blocks - PublishPress Blocks Gutenberg Editor Plugin

WordPress plugin Gutenberg Blocks - PublishPress Blocks Gutenberg Editor Plugin scored78%from 54 tests.

About plugin

  • Plugin page: advanced-gutenberg
  • Plugin version: 3.2.1
  • PHP compatiblity: 7.2.5+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.5-6.4
  • WordPress version: 6.3.1
  • First release: Dec 27, 2017
  • Latest release: Nov 8, 2023
  • Number of updates: 327
  • Update frequency: every 6.6 days
  • Top authors: JoomUnited (58.41%)publishpress (35.47%)advancedgutenberg (5.2%)stevejburge (1.53%)

Code review

54 tests

User reviews

187 reviews

Install metrics

30,000+ active /1,451,033 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
The plugin installed gracefully, with no errors

Server metrics [RAM: ▲2.14MB] [CPU: ▲9.43ms] Passed 4 tests

This is a short check of server-side resources used by Gutenberg Blocks - PublishPress Blocks Gutenberg Editor Plugin
This plugin has minimal impact on server resources
PageMemory (MB)CPU Time (ms)
Home /5.32 ▲1.8552.16 ▲11.93
Dashboard /wp-admin5.59 ▲2.2464.14 ▼1.41
Posts /wp-admin/edit.php5.61 ▲2.2561.13 ▲11.72
Add New Post /wp-admin/post-new.php8.38 ▲2.49122.12 ▲31.43
Media Library /wp-admin/upload.php5.45 ▲2.2151.19 ▲15.49
Block Config /wp-admin/admin.php?&page=advgb-video5.4244.36
Block Styles /wp-admin/admin.php?page=advgb_custom_styles5.4247.61
Block Config /wp-admin/admin.php?&page=advgb-table5.4248.76
Block Config /wp-admin/admin.php?&page=advgb-newsletter5.4345.19
Synced Patterns /wp-admin/edit.php?post_type=wp_block5.5649.74
Block Config /wp-admin/admin.php?&page=advgb-columns5.4245.68
Block Config /wp-admin/admin.php?&page=advgb-adv-tabs5.4247.37
Block Config /wp-admin/admin.php?&page=advgb-list5.4245.66
Block Config /wp-admin/admin.php?&page=advgb-testimonial5.4244.85
PublishPress Blocks /wp-admin/admin.php?page=advgb_block_settings5.4746.51

Server storage [IO: ▲8.74MB] [DB: ▲0.07MB] Passed 3 tests

A short overview of filesystem and database impact
This plugin was installed successfully
Filesystem: 282 new files
Database: no new tables, 9 new options
New WordPress options
advanced-gutenberg_wp_reviews_installed_on
db_upgraded
can_compress_scripts
widget_recent-posts
widget_theysaidso_widget
advgb_version
widget_recent-comments
theysaidso_admin_options
advgb_settings

Browser metrics Passed 4 tests

Gutenberg Blocks - PublishPress Blocks Gutenberg Editor Plugin: an overview of browser usage
There were no issues detected in relation to browser resource usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,082 ▲32025.18 ▲10.935.08 ▲3.2927.00 ▼16.87
Dashboard /wp-admin2,253 ▲795.82 ▲0.2893.09 ▼9.9641.93 ▼4.17
Posts /wp-admin/edit.php2,160 ▲601.99 ▲0.0439.64 ▲2.4538.52 ▲3.83
Add New Post /wp-admin/post-new.php6,286 ▲4,76020.70 ▼2.43919.65 ▲231.7837.22 ▼19.33
Media Library /wp-admin/upload.php1,458 ▲584.19 ▼0.0497.08 ▼0.9744.68 ▲2.40
Block Config /wp-admin/admin.php?&page=advgb-video1,0462.1830.8927.88
Block Styles /wp-admin/admin.php?page=advgb_custom_styles1,71712.91163.38183.41
Block Config /wp-admin/admin.php?&page=advgb-table8712.0930.2325.14
Block Config /wp-admin/admin.php?&page=advgb-newsletter1,2091.8339.6628.65
Synced Patterns /wp-admin/edit.php?post_type=wp_block1,1916.4567.1330.13
Block Config /wp-admin/admin.php?&page=advgb-columns1,0722.0929.0124.69
Block Config /wp-admin/admin.php?&page=advgb-adv-tabs1,1931.8943.7727.83
Block Config /wp-admin/admin.php?&page=advgb-list1,0352.1834.3026.10
Block Config /wp-admin/admin.php?&page=advgb-testimonial1,0891.8440.3026.14
PublishPress Blocks /wp-admin/admin.php?page=advgb_block_settings1,55012.47103.08176.07

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

🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
It is recommended to fix the following
  • Zombie WordPress options detected upon uninstall: 9 options
    • db_upgraded
    • widget_recent-posts
    • theysaidso_admin_options
    • advgb_version
    • can_compress_scripts
    • advanced-gutenberg_wp_reviews_installed_on
    • advgb_settings
    • widget_recent-comments
    • widget_theysaidso_widget

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
Everything seems fine, however this is by no means an exhaustive test

SRP 0% from 2 tests

🔹 Tests weight: 20 | It is important to ensure that your PHP files perform no action when accessed directly, respecting the single-responsibility principle
Please take a closer look at the following
  • 2× PHP files perform the task of outputting text when accessed with GET requests:
    • > /wp-content/plugins/advanced-gutenberg/lib/vendor/publishpress/wordpress-version-notices/templates/top-notice/notice.php
    • > /wp-content/plugins/advanced-gutenberg/lib/vendor/publishpress/wordpress-version-notices/templates/menu-link/menu-link-script.php
  • 23× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Interface 'PublishPress\\Psr\\Container\\ContainerExceptionInterface' not found in wp-content/plugins/advanced-gutenberg/lib/vendor/publishpress/psr-container/lib/psr/container/src/NotFoundExceptionInterface.php:14
    • > PHP Notice
      Undefined variable: linkURL in wp-content/plugins/advanced-gutenberg/lib/vendor/publishpress/wordpress-version-notices/templates/top-notice/notice.php on line 2
    • > PHP Fatal error
      Uncaught Error: Interface 'PublishPress\\Psr\\Container\\ContainerExceptionInterface' not found in wp-content/plugins/advanced-gutenberg/lib/vendor/publishpress/pimple-pimple/lib/pimple/pimple/src/Pimple/Exception/FrozenServiceException.php:39
    • > PHP Fatal error
      Uncaught Error: Interface 'PublishPress\\Psr\\Container\\ContainerInterface' not found in wp-content/plugins/advanced-gutenberg/lib/vendor/publishpress/pimple-pimple/lib/pimple/pimple/src/Pimple/Psr11/Container.php:40
    • > PHP Warning
      Class 'PublishPress\\WordpressVersionNotices\\Template\\TemplateInvalidArgumentsException' not found in wp-content/plugins/advanced-gutenberg/lib/vendor/publishpress/wordpress-version-notices/src/deprecated.php on line 24
    • > PHP Warning
      Class 'PublishPress\\WordpressVersionNotices\\Module\\AdInterface' not found in wp-content/plugins/advanced-gutenberg/lib/vendor/publishpress/wordpress-version-notices/src/deprecated.php on line 15
    • > PHP Warning
      Class 'PublishPress\\WordpressVersionNotices\\Module\\TopNotice\\Module' not found in wp-content/plugins/advanced-gutenberg/lib/vendor/publishpress/wordpress-version-notices/src/deprecated.php on line 7
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_html() in wp-content/plugins/advanced-gutenberg/lib/vendor/publishpress/wordpress-version-notices/templates/menu-link/redirect-page.php:4
    • > PHP Fatal error
      Uncaught Error: Interface 'PublishPress\\Psr\\Container\otFoundExceptionInterface' not found in wp-content/plugins/advanced-gutenberg/lib/vendor/publishpress/pimple-pimple/lib/pimple/pimple/src/Pimple/Exception/InvalidServiceIdentifierException.php:39
    • > PHP Fatal error
      Uncaught Error: Interface 'PublishPress\\Psr\\Container\\ContainerExceptionInterface' not found in wp-content/plugins/advanced-gutenberg/lib/vendor/publishpress/pimple-pimple/lib/pimple/pimple/src/Pimple/Exception/ExpectedInvokableException.php:39

User-side errors Passed 1 test

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

Optimizations

Plugin configuration 97% 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: Too many tags (11 tag instead of maximum 10); only the first 5 tags are used in your directory listing
The official readme.txt might help

advanced-gutenberg/advanced-gutenberg.php Passed 13 tests

The entry point to "Gutenberg Blocks - PublishPress Blocks Gutenberg Editor Plugin" version 3.2.1 is a PHP file that has certain tags in its header comment area
101 characters long description:
PublishPress Blocks has everything you need to build professional websites with the Gutenberg editor.

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | Executable files are considered dangerous and should not be included with any WordPress plugin
Good job! No executable or dangerous file extensions detected54,157 lines of code in 169 files:
LanguageFilesBlank linesComment linesLines of code
PO File1113,45817,64627,973
PHP771,6723,24612,380
JavaScript431,1181,0609,511
SVG4032,373
JSON14001,412
CSS207041508

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.55
Average class complexity30.05
▷ Minimum class complexity1.00
▷ Maximum class complexity696.00
Average method complexity4.96
▷ Minimum method complexity1.00
▷ Maximum method complexity78.00
Code structure
Namespaces17
Interfaces6
Traits0
Classes34
▷ Abstract classes12.94%
▷ Concrete classes3397.06%
▷ Final classes26.06%
Methods304
▷ Static methods5819.08%
▷ Public methods25985.20%
▷ Protected methods30.99%
▷ Private methods4213.82%
Functions72
▷ Named functions4765.28%
▷ Anonymous functions2534.72%
Constants27
▷ Global constants2177.78%
▷ Class constants622.22%
▷ Public constants6100.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
58 PNG files occupy 0.05MB with 0.03MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
assets/blocks/recent-posts/icons/4-4.png0.37KB0.11KB▼ 70.79%
assets/blocks/recent-posts/icons/np-3-1.png0.35KB0.10KB▼ 72.65%
assets/blocks/recent-posts/icons/np-1-5-r.png0.36KB0.10KB▼ 71.70%
assets/blocks/columns/icons/100-12-12.png0.15KB0.15KB0.00%
assets/blocks/recent-posts/icons/np-3-3.png0.36KB0.11KB▼ 70.89%