У меня есть общий OAuthComponent
с
namespace App\Controller\Component
мой Middleware Class имеет пространство имен
namespace App\Middleware;
Как я могу использовать пользовательский Компонент в Middleware?
Вы не можете, потому что компонент зависит от контроллера.
Рефакторинг компонента в объекте, который не имеет никакой другой зависимости, кроме запроса и ответа, а затем создает промежуточное программное обеспечение, которое будет использовать этот объект.
сначала импортируйте ваш компонент
use App\Controller\Component\DateComponent;
затем импортировать реестр компонентов
use Cake\Controller\ComponentRegistry;
затем объявить его в новую переменную затем вызвать функцию компонента
$registry = new ComponentRegistry();
$date = new DateComponent($registry);