84% serbian-transliteration

Code Review | Transliterator

WordPress plugin Transliterator scored84%from 54 tests.

About plugin

  • Plugin page: serbian-translite...
  • Plugin version: 1.11.3
  • PHP compatiblity: 7.0+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.4-6.4
  • WordPress version: 6.3.1
  • First release: Aug 27, 2020
  • Latest release: Nov 18, 2023
  • Number of updates: 201
  • Update frequency: every 5.9 days
  • Top authors: ivijanstefan (94.03%)creativform (6.47%)

Code review

54 tests

User reviews

65 reviews

Install metrics

3,000+ active /56,182 total downloads

Benchmarks

Plugin footprint 82% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
Install script ran successfully

Server metrics [RAM: ▲1.61MB] [CPU: ▲61.24ms] 75% from 4 tests

A check of server-side resources used by Transliterator
Please take the time to fix the following items
  • CPU: Total CPU usage must kept under 500.00ms (currently 521.41ms on /wp-admin/options-general.php?page=serbian-transliteration)
PageMemory (MB)CPU Time (ms)
Home /4.82 ▲1.36119.15 ▲81.24
Dashboard /wp-admin5.02 ▲1.72101.23 ▲54.07
Posts /wp-admin/edit.php5.06 ▲1.70109.83 ▲63.63
Add New Post /wp-admin/post-new.php7.65 ▲1.77152.58 ▲63.42
Media Library /wp-admin/upload.php4.89 ▲1.6697.26 ▲63.84
Transliteration /wp-admin/options-general.php?page=serbian-transliteration5.03521.41

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

Filesystem and database footprint
The plugin installed successfully
Filesystem: 108 new files
Database: no new tables, 11 new options
New WordPress options
serbian-transliteration-ID
serbian-transliteration
widget_recent-posts
serbian-transliteration-activation
theysaidso_admin_options
serbian-transliteration-term-script
can_compress_scripts
rstr-script_children
widget_recent-comments
widget_theysaidso_widget
...

Browser metrics Passed 4 tests

A check of browser resources used by Transliterator
This plugin has a minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,805 ▲4314.57 ▲0.251.62 ▼0.1738.12 ▼6.41
Dashboard /wp-admin2,202 ▲305.59 ▼0.0798.97 ▼14.7442.25 ▼2.64
Posts /wp-admin/edit.php2,110 ▲101.98 ▲0.0240.27 ▲0.7535.18 ▲1.20
Add New Post /wp-admin/post-new.php1,533 ▲721.11 ▼2.05643.34 ▼24.0050.87 ▼1.21
Media Library /wp-admin/upload.php1,407 ▲44.14 ▼0.08133.43 ▲21.4757.03 ▲10.00
Transliteration /wp-admin/options-general.php?page=serbian-transliteration1,9771.7226.7851.03

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
You still need to fix the following
  • This plugin does not fully uninstall, leaving 7 options in the database
    • rstr-script_children
    • widget_theysaidso_widget
    • can_compress_scripts
    • db_upgraded
    • widget_recent-comments
    • widget_recent-posts
    • theysaidso_admin_options

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 everything seems fine, this is not an exhaustive test

SRP 50% from 2 tests

🔹 Tests weight: 20 | SRP (Single-Responsibility Principle) - PHP files must act as libraries and never output text or perform any action when accessed directly in a browser
Please fix the following items
  • 63× GET requests to PHP files return non-empty strings (only 10 are shown):
    • > /wp-content/plugins/serbian-transliteration/inc/transliteration/bel.php
    • > /wp-content/plugins/serbian-transliteration/inc/transliteration/bs_BA.php
    • > /wp-content/plugins/serbian-transliteration/inc/plugins/elementor.php
    • > /wp-content/plugins/serbian-transliteration/inc/transliteration/kk.php
    • > /wp-content/plugins/serbian-transliteration/inc/settings/sidebar.php
    • > /wp-content/plugins/serbian-transliteration/inc/plugins/data-tables-generator-by-supsystic.php
    • > /wp-content/plugins/serbian-transliteration/serbian-transliteration.php
    • > /wp-content/plugins/serbian-transliteration/inc/Statistic.php
    • > /wp-content/plugins/serbian-transliteration/inc/transliteration/cnr.php
    • > /wp-content/plugins/serbian-transliteration/inc/Functions.php

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a shallow check for browser errors
There were no browser issues found

Optimizations

Plugin configuration 97% from 29 tests

readme.txt 94% from 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
Please fix the following attributes:
  • Tags: Too many tags (12 tag instead of maximum 10); only the first 5 tags are used in your directory listing
You can take inspiration from this readme.txt

serbian-transliteration/serbian-transliteration.php Passed 13 tests

The entry point to "Transliterator" version 1.11.3 is a PHP file that has certain tags in its header comment area
86 characters long description:
All in one Cyrillic to Latin transliteration plugin for WordPress that actually works.

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | Executable files are not allowed as they can serve as attack vectors
Success! There were no dangerous files found in this plugin14,794 lines of code in 78 files:
LanguageFilesBlank linesComment linesLines of code
PHP651,3971,9348,067
PO File72,1452,4545,964
CSS39625458
JavaScript35063305

PHP code Passed 2 tests

This plugin's cyclomatic complexity and code structure detailed below
This plugin has no cyclomatic complexity issues
Cyclomatic complexity
Average complexity per logical line of code0.55
Average class complexity22.80
▷ Minimum class complexity2.00
▷ Maximum class complexity180.00
Average method complexity3.93
▷ Minimum method complexity1.00
▷ Maximum method complexity32.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes50
▷ Abstract classes00.00%
▷ Concrete classes50100.00%
▷ Final classes12.00%
Methods337
▷ Static methods15545.99%
▷ Public methods31392.88%
▷ Protected methods82.37%
▷ Private methods164.75%
Functions92
▷ Named functions2729.35%
▷ Anonymous functions6570.65%
Constants23
▷ Global constants23100.00%
▷ Class constants00.00%
▷ Public constants00.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

Using a strong compression for your PNG files is a great way to speed-up your plugin
No PNG files were detected