Enable Discovery debug logging for production troubleshooting

- Add DISCOVERY_LOG_LEVEL=debug
- Add DISCOVERY_SHOW_PROGRESS=true
- Temporary changes for debugging InitializerProcessor fixes on production
This commit is contained in:
2025-08-11 20:13:26 +02:00
parent 59fd3dd3b1
commit 55a330b223
3683 changed files with 2956207 additions and 16948 deletions

67
AUTOLOADER_WORKAROUND.md Normal file
View File

@@ -0,0 +1,67 @@
# Autoloader Workaround
This document explains how to use the temporary workaround for the "Uninitialized string offset 0" warning in Composer's ClassLoader.php.
## Problem Description
The application is experiencing warnings like:
```
Warning: Uninitialized string offset 0 in /var/www/html/vendor/composer/ClassLoader.php on line 497
```
This occurs when the Composer ClassLoader tries to process a class name that is empty or null. When it attempts to access the first character of this empty string, PHP generates the "Uninitialized string offset" warning.
## Workaround Implementation
The `autoloader_workaround.php` file provides a temporary solution that:
1. Catches empty class names passed to the autoloader
2. Logs them with stack traces to help identify the source
3. Allows the application to continue running without interruption
## How to Use
### For Web Applications
Add this line at the very beginning of your `public/index.php` file, before any other includes:
```php
require __DIR__ . '/../autoloader_workaround.php';
```
### For Console Applications
Add this line at the beginning of your console entry point (e.g., `console.php`):
```php
require __DIR__ . '/autoloader_workaround.php';
```
### For Docker Environments
If you're using Docker, make sure the workaround file is included in your container and loaded at application startup.
## Logging
When an empty class name is detected, the workaround:
1. Logs detailed information including a stack trace to `empty_class_debug.log` in the project root
2. Also logs a brief message to the PHP error log
Check these logs to identify where empty class names are being generated.
## Next Steps
This is a temporary workaround to prevent the warnings from affecting application functionality. The root cause should still be investigated and fixed. Use the logs generated by this workaround to:
1. Identify which components are generating empty class names
2. Look for patterns in when the issue occurs
3. Fix the underlying code that's generating empty class names
## Removing the Workaround
Once the root cause is fixed, you can remove the workaround by:
1. Removing the include statement from your entry point files
2. Optionally removing the `autoloader_workaround.php` file from your project