84% full-text-search

Code Review | Full-Text Search

WordPress plugin Full-Text Search scored84%from 54 tests.

About plugin

  • Plugin page: full-text-search
  • Plugin version: 2.13.0
  • PHP compatiblity: 7.2+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.5-6.4
  • WordPress version: 6.3.1
  • First release: Mar 1, 2021
  • Latest release: Oct 18, 2023
  • Number of updates: 115
  • Update frequency: every 8.4 days
  • Top authors: ishitaka (100%)

Code review

54 tests

User reviews

2 reviews

Install metrics

100+ active /5,531 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Checking the installer triggered no errors
This plugin's installer ran successfully

Server metrics [RAM: ▲0.59MB] [CPU: ▲1.48ms] Passed 4 tests

Analyzing server-side resources used by Full-Text Search
No issues were detected with server-side resource usage
PageMemory (MB)CPU Time (ms)
Home /4.06 ▲0.6042.88 ▲3.09
Dashboard /wp-admin3.90 ▲0.6052.31 ▲3.42
Posts /wp-admin/edit.php3.96 ▲0.5946.64 ▲1.72
Add New Post /wp-admin/post-new.php6.49 ▲0.6085.20 ▼2.33
Media Library /wp-admin/upload.php3.83 ▲0.5939.58 ▲6.08
Full-Text Search /wp-admin/options-general.php?page=full-text-search3.7337.20

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

A short overview of filesystem and database impact
No storage issues were detected
Filesystem: 122 new files
Database: 1 new table, 7 new options
New tables
wp_full_text_search_posts
New WordPress options
widget_theysaidso_widget
db_upgraded
theysaidso_admin_options
widget_recent-comments
can_compress_scripts
full_text_search_options
widget_recent-posts

Browser metrics Passed 4 tests

An overview of browser requirements for Full-Text Search
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,793 ▲3214.18 ▼0.111.70 ▼0.3543.77 ▼4.13
Dashboard /wp-admin2,199 ▲225.56 ▼0.0086.89 ▼14.7537.76 ▼4.28
Posts /wp-admin/edit.php2,101 ▲12.03 ▲0.0734.93 ▼0.7532.30 ▼3.32
Add New Post /wp-admin/post-new.php1,529 ▲123.33 ▲0.24662.83 ▼19.1451.93 ▼6.14
Media Library /wp-admin/upload.php1,404 ▲74.20 ▲0.0293.61 ▼7.5540.06 ▼3.49
Full-Text Search /wp-admin/options-general.php?page=full-text-search1,1051.8831.0633.29

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

🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
The following items require your attention
  • The uninstall procedure has failed, leaving 6 options in the database
    • widget_recent-posts
    • widget_theysaidso_widget
    • can_compress_scripts
    • db_upgraded
    • theysaidso_admin_options
    • widget_recent-comments

Smoke tests 75% 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 50% 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
Almost there! Just fix the following items
  • 34× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'Smalot\\PdfParser\\PDFObject' not found in wp-content/plugins/full-text-search/vendor/smalot/pdfparser/src/Smalot/PdfParser/XObject/Image.php:41
    • > PHP Fatal error
      Uncaught Error: Class 'Smalot\\PdfParser\\PDFObject' not found in wp-content/plugins/full-text-search/vendor/smalot/pdfparser/src/Smalot/PdfParser/Font.php:41
    • > PHP Fatal error
      Uncaught Error: Class 'Smalot\\PdfParser\\Element' not found in wp-content/plugins/full-text-search/vendor/smalot/pdfparser/src/Smalot/PdfParser/Element/ElementNumeric.php:41
    • > PHP Fatal error
      Uncaught Error: Class 'Smalot\\PdfParser\\Encoding\\AbstractEncoding' not found in wp-content/plugins/full-text-search/vendor/smalot/pdfparser/src/Smalot/PdfParser/Encoding/MacRomanEncoding.php:40
    • > PHP Fatal error
      Uncaught Error: Class 'Smalot\\PdfParser\\Element' not found in wp-content/plugins/full-text-search/vendor/smalot/pdfparser/src/Smalot/PdfParser/Element/ElementArray.php:43
    • > PHP Fatal error
      Uncaught Error: Class 'Smalot\\PdfParser\\Encoding\\AbstractEncoding' not found in wp-content/plugins/full-text-search/vendor/smalot/pdfparser/src/Smalot/PdfParser/Encoding/WinAnsiEncoding.php:40
    • > PHP Fatal error
      Uncaught Error: Class 'Smalot\\PdfParser\\Element' not found in wp-content/plugins/full-text-search/vendor/smalot/pdfparser/src/Smalot/PdfParser/Element/ElementName.php:42
    • > PHP Fatal error
      Uncaught Error: Class 'PhpCsFixer\\Finder' not found in wp-content/plugins/full-text-search/vendor/smalot/pdfparser/.php-cs-fixer.php:6
    • > PHP Fatal error
      Uncaught Error: Class 'Smalot\\PdfParser\\Element' not found in wp-content/plugins/full-text-search/vendor/smalot/pdfparser/src/Smalot/PdfParser/Element/ElementBoolean.php:41
    • > PHP Warning
      require_once(wp-content/plugins/full-text-search/vendor/automattic/jetpack-autoloader/src/jetpack-autoloader/class-autoloader.php): failed to open stream: No such file or directory in wp-content/plugins/full-text-search/vendor/automattic/jetpack-autoloader/src/autoload.php on line 4

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
No browser issues were found

Optimizations

Plugin configuration 96% from 29 tests

readme.txt Passed 16 tests

The readme.txt file is undoubtedly the most important file in your plugin, preparing it for public listing on WordPress.org
4 plugin tags: search, full-text, fulltext, mroonga

full-text-search/full-text-search.php 92% from 13 tests

The primary PHP file in "Full-Text Search" version 2.13.0 is used by WordPress to initiate all plugin functionality
Please take the time to fix the following:
  • Domain Path: The domain path folder does not exist ("/languages")

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 detected14,415 lines of code in 116 files:
LanguageFilesBlank linesComment linesLines of code
PHP1002,0535,21412,912
Markdown62070599
CSS26121339
YAML3580240
JSON100208
JavaScript115181
XML22226
make14410

PHP code Passed 2 tests

Cyclomatic complexity and code structure are the fingerprint of this plugin
This plugin has no cyclomatic complexity problems
Cyclomatic complexity
Average complexity per logical line of code0.53
Average class complexity21.46
▷ Minimum class complexity1.00
▷ Maximum class complexity213.00
Average method complexity4.53
▷ Minimum method complexity1.00
▷ Maximum method complexity83.00
Code structure
Namespaces12
Interfaces0
Traits0
Classes81
▷ Abstract classes11.23%
▷ Concrete classes8098.77%
▷ Final classes11.25%
Methods467
▷ Static methods9820.99%
▷ Public methods37780.73%
▷ Protected methods337.07%
▷ Private methods5712.21%
Functions86
▷ Named functions7688.37%
▷ Anonymous functions1011.63%
Constants19
▷ Global constants736.84%
▷ Class constants1263.16%
▷ Public constants1191.67%

Plugin size Passed 2 tests

Image compression Passed 2 tests

All PNG images should be compressed to minimize bandwidth usage for end users
There are no PNG files in this plugin