feycot
@feycot

Почему Slim + PHP-DI выдает Fatal error: Cannot declare class при запросе контроллера?

Добрый день, создал проект на SLIM+PHP-DI, подключил `php-di/slim-bridge` и унаследовал приложение

class App extends \DI\Bridge\Slim\App
{
    protected function configureContainer($builder)
    {
        $builder->addDefinitions(dirname(__DIR__) . '/app/config.php');
    }
}


В `index.php` создал объект Приложения и тестовый путь
$app->get('/game/{id}', ['fey\Api\v1\Controllers\GameController', 'show']);


Проблема в том, что почему-то класс контроллера декларируется несколько раз и отдает ошибку. Сам контроллер подключен стандартно через composer PSR-4 автозагрузку

Fatal error: Cannot declare class Api\v1\Controllers\GameController, because the name is already in use in
  • Вопрос задан
  • 302 просмотра
Решения вопроса 1
@LemonFox
stateless mind
Второй аргумент get ожидает callable как я понимаю.
И в вашем случае скорее всего должно быть что-то типа
use Api\v1\Contollers\GameController;

$app->get('/game/{id}', [new GameController(), 'show']);
/* Или
$app->get('/game/{id}', [GameController::class, 'show']);
*/


Callable псевдотип
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы