# Инструкция по исправлению ошибки Trait Renderable not found

## Проблема

В `conf/plugins.php` плагин ng-helpers регистрируется как:

```php
'ng-helpers' => 'ng-helpers/src/helpers.php'
```

Это загружает **ТОЛЬКО функции**, но **НЕ загружает** `ng-helpers.php` (который регистрирует автозагрузчик для трейтов и классов).

**Результат:** трейт Renderable не найден при загрузке ng-advanced-captcha.

## Решение

Загрузите обновленные файлы на хостинг `/sites/yrls.ru/`

## Критически важные файлы

### 1. `engine/plugins/ng-helpers/ng-helpers.php`

- Добавлен автозагрузчик для namespace `Plugins\NgHelpers\`
- Регистрирует загрузку трейтов и классов

### 2. `engine/plugins/ng-helpers/src/Traits/Renderable.php`

- Исправлен namespace: `Plugins\NgHelpers\Traits`
- Был: `Plugins\Traits` ❌ (НЕПРАВИЛЬНО)

### 3. `engine/plugins/ng-advanced-captcha/ng-advanced-captcha.php`

- Явно загружает ng-helpers.php ПЕРЕД использованием трейта
- Проверяет существование трейта и загружает вручную если нужно
- Добавлено логирование ошибок

### 4. `engine/plugins/ng-advanced-captcha/src/AdvancedCaptcha.php`

- Исправлен импорт: `use Plugins\NgHelpers\Traits\Renderable;`
- Был: `use Plugins\Traits\Renderable` ❌ (НЕПРАВИЛЬНО)

## Порядок действий

### Шаг 1: Загрузите файлы через FTP/SFTP

Скопируйте с локальной машины на хостинг:

```
C:\OSPanel\home\test.ru\engine\plugins\ng-helpers\ng-helpers.php
→ /sites/yrls.ru/engine/plugins/ng-helpers/ng-helpers.php

C:\OSPanel\home\test.ru\engine\plugins\ng-helpers\src\Traits\Renderable.php
→ /sites/yrls.ru/engine/plugins/ng-helpers/src/Traits/Renderable.php

C:\OSPanel\home\test.ru\engine\plugins\ng-advanced-captcha\ng-advanced-captcha.php
→ /sites/yrls.ru/engine/plugins/ng-advanced-captcha/ng-advanced-captcha.php

C:\OSPanel\home\test.ru\engine\plugins\ng-advanced-captcha\src\AdvancedCaptcha.php
→ /sites/yrls.ru/engine/plugins/ng-advanced-captcha/src/AdvancedCaptcha.php
```

### Шаг 2: Очистите кэш

Выполните на сервере:

```bash
rm -rf /sites/yrls.ru/engine/cache/*
```

### Шаг 3: Перезапустите PHP-FPM (если есть opcache)

```bash
systemctl restart php-fpm
# ИЛИ
systemctl restart php8.1-fpm
# ИЛИ через панель управления хостингом
```

### Шаг 4: Проверьте работу

Откройте сайт в браузере:

- https://yrls.ru/
- https://blog.yrls.ru/ (если уже создан мультисайт)

Ошибка "Trait Renderable not found" должна исчезнуть.

## Диагностика (если ошибка сохраняется)

### 1. Проверьте, что файлы загружены

```
https://yrls.ru/test_autoload.php
```

Должно показать: "✓ ВСЕ РАБОТАЕТ!"

### 2. Проверьте логи PHP на сервере

```bash
tail -f /var/log/nginx/error.log
tail -f /var/log/php-fpm/error.log
```

Ищите строки с `[ng-advanced-captcha]`

### 3. Включите DEBUG логирование

В `ng-advanced-captcha.php` раскомментируйте строки:

```php
// error_log('[ng-advanced-captcha] ng-helpers.php загружен...');
// error_log('[ng-advanced-captcha] Renderable.php загружен вручную');
```

### 4. Проверьте права доступа к файлам

```bash
chmod 644 /sites/yrls.ru/engine/plugins/ng-helpers/ng-helpers.php
chmod 644 /sites/yrls.ru/engine/plugins/ng-helpers/src/Traits/Renderable.php
chmod 644 /sites/yrls.ru/engine/plugins/ng-advanced-captcha/ng-advanced-captcha.php
chmod 644 /sites/yrls.ru/engine/plugins/ng-advanced-captcha/src/AdvancedCaptcha.php
```

## Альтернативное решение (если проблема не решается)

Отключите плагин ng-advanced-captcha временно:

1. Зайдите в **Админ-панель → Управление плагинами**
2. **Деактивируйте** ng-advanced-captcha
3. Убедитесь что сайт работает
4. **Активируйте** снова

Это позволит понять, только ли ng-advanced-captcha вызывает проблему или есть другие плагины с такой же ошибкой.

---

**Дата создания:** 2026-02-15
**Контакты для поддержки:** GitHub Copilot
