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
Install script ran successfully
Server metrics [RAM: ▲2.78MB] [CPU: ▲18.80ms] Passed 4 tests
A check of server-side resources used by Appful - WordPress to Native iOS/Android App in 5 Minutes
No issues were detected with server-side resource usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 5.25 ▲1.79 | 58.24 ▲21.57 |
Dashboard /wp-admin | 6.45 ▲3.11 | 76.15 ▲16.59 |
Posts /wp-admin/edit.php | 6.49 ▲3.13 | 68.00 ▲23.17 |
Add New Post /wp-admin/post-new.php | 8.98 ▲3.10 | 106.83 ▲13.87 |
Media Library /wp-admin/upload.php | 6.36 ▲3.13 | 61.88 ▲30.29 |
Server storage [IO: ▲1.82MB] [DB: ▲0.00MB] Passed 3 tests
A short overview of filesystem and database impact
This plugin installed successfully
Filesystem: 566 new files
Database: no new tables, 7 new options
New WordPress options |
---|
widget_recent-comments |
widget_recent-posts |
db_upgraded |
theysaidso_admin_options |
appful_children |
can_compress_scripts |
widget_theysaidso_widget |
Browser metrics Passed 4 tests
Checking browser requirements for Appful - WordPress to Native iOS/Android App in 5 Minutes
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,877 ▲131 | 14.35 ▼0.21 | 1.76 ▲0.05 | 41.38 ▲0.37 |
Dashboard /wp-admin | 2,286 ▲106 | 5.73 ▲0.09 | 89.80 ▲1.04 | 40.36 ▼0.37 |
Posts /wp-admin/edit.php | 2,188 ▲91 | 2.08 ▲0.10 | 38.76 ▲3.98 | 35.56 ▲0.72 |
Add New Post /wp-admin/post-new.php | 1,563 ▲35 | 22.42 ▼0.88 | 673.94 ▲4.54 | 56.70 ▼16.72 |
Media Library /wp-admin/upload.php | 1,488 ▲85 | 4.29 ▲0.07 | 95.40 ▼1.28 | 46.78 ▲7.26 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
It is recommended to fix the following
- The uninstall procedure has failed, leaving 7 options in the database
- widget_recent-posts
- widget_theysaidso_widget
- appful_children
- theysaidso_admin_options
- db_upgraded
- can_compress_scripts
- widget_recent-comments
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
The following issues need your attention
- 1× PHP files output non-empty strings when accessed directly via GET requests:
- > /wp-content/plugins/appful-app/appful-app.php
- 218× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Twig\\Sandbox\\SecurityError' not found in wp-content/plugins/appful-app/lib/vendor/twig/twig/src/Sandbox/SecurityNotAllowedPropertyError.php:19
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Http\\Message\\StreamInterface' not found in wp-content/plugins/appful-app/lib/vendor/guzzlehttp/psr7/src/LazyOpenStream.php:14
- > PHP Fatal error
Uncaught Error: Class 'Twig\\TokenParser\\AbstractTokenParser' not found in wp-content/plugins/appful-app/lib/vendor/twig/twig/src/TokenParser/AutoEscapeTokenParser.php:25
- > PHP Fatal error
Uncaught Error: Class 'Twig\ode\\Expression\\AbstractExpression' not found in wp-content/plugins/appful-app/lib/vendor/twig/twig/src/Node/CheckToStringNode.php:27
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Http\\Message\\UriInterface' not found in wp-content/plugins/appful-app/lib/vendor/guzzlehttp/psr7/src/Uri.php:17
- > PHP Fatal error
Uncaught Error: Class 'Twig\ode\\Expression\\Binary\\AbstractBinary' not found in wp-content/plugins/appful-app/lib/vendor/twig/twig/src/Node/Expression/Binary/ConcatBinary.php:17
- > PHP Fatal error
Uncaught Error: Class 'Twig\ode\ode' not found in wp-content/plugins/appful-app/lib/vendor/twig/twig/src/Node/IfNode.php:22
- > PHP Fatal error
Uncaught Error: Class 'Twig\ode\\Expression\\AbstractExpression' not found in wp-content/plugins/appful-app/lib/vendor/twig/twig/src/Node/Expression/InlinePrint.php:20
- > PHP Fatal error
Uncaught Error: Interface 'AppfulPlugin\\Api\\Handlers\\RequestHandler' not found in wp-content/plugins/appful-app/includes/api/handlers/TagSyncRequestHandler.php:11
- > PHP Fatal error
Uncaught Error: Interface 'AppfulPlugin\\Api\\Handlers\\RequestHandler' not found in wp-content/plugins/appful-app/includes/api/handlers/CommentSyncRequestHandler.php:11
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
No browser errors were detected
Optimizations
Plugin configuration 97% from 29 tests
readme.txt 94% from 16 tests
It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
Attributes that need to be fixed:
- Tags: Too many tags (20 tag instead of maximum 10); only the first 5 tags are used in your directory listing
appful-app/appful-app.php Passed 13 tests
The principal PHP file in "Appful - WordPress to Native iOS/Android App in 5 Minutes" v. 3.1.15 is loaded by WordPress automatically on each request
132 characters long description:
Appful® is the number 1 plugin for turning your WordPress Content into a native, beautiful app on iOS & Android in under 5 minutes.
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is an overview of programming languages used in this plugin; dangerous file extensions are not allowed
No dangerous file extensions were detected38,169 lines of code in 542 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 500 | 6,415 | 10,094 | 32,108 |
Markdown | 17 | 1,268 | 0 | 3,650 |
JSON | 12 | 0 | 0 | 1,406 |
CSS | 1 | 73 | 110 | 595 |
JavaScript | 3 | 25 | 2 | 139 |
YAML | 3 | 41 | 33 | 139 |
Twig | 4 | 4 | 0 | 113 |
reStructuredText | 1 | 8 | 5 | 10 |
make | 1 | 4 | 0 | 9 |
PHP code Passed 2 tests
A short review of cyclomatic complexity and code structure
Everything seems fine, there were no complexity issues found
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.40 |
Average class complexity | 7.11 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 166.00 |
Average method complexity | 2.24 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 33.00 |
Code structure | ||
---|---|---|
Namespaces | 57 | |
Interfaces | 38 | |
Traits | 3 | |
Classes | 437 | |
▷ Abstract classes | 11 | 2.52% |
▷ Concrete classes | 426 | 97.48% |
▷ Final classes | 92 | 21.60% |
Methods | 2,321 | |
▷ Static methods | 346 | 14.91% |
▷ Public methods | 2,024 | 87.20% |
▷ Protected methods | 52 | 2.24% |
▷ Private methods | 245 | 10.56% |
Functions | 398 | |
▷ Named functions | 185 | 46.48% |
▷ Anonymous functions | 213 | 53.52% |
Constants | 118 | |
▷ Global constants | 6 | 5.08% |
▷ Class constants | 112 | 94.92% |
▷ Public constants | 100 | 89.29% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
PNG files should be compressed to save space and minimize bandwidth usage
2 PNG files occupy 0.04MB with 0.01MB in potential savings
Potential savings
Compression of 2 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
frontend/assets/logo_bg.png | 18.02KB | 19.37KB | 0.00% |
frontend/assets/logo.png | 22.79KB | 9.78KB | ▼ 57.11% |