I'm getting Slim Application Error:
Class 'Slim\App\Controllers\MainController' not found
This seems to be the same as others posts except, they don't have the 'Slim' in front. I think that's why it is failing.
project structure
/src
/Controllers
MainController.php
/vendor
/public
index.php
composer.json
{
"require": {
"slim/slim": "^3.12"
},
"autoload": {
"psr-4" : {
"App\\" : "src/"
}
}
}
index.php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
require '../vendor/autoload.php';
$configuration = [
'settings' => [
'displayErrorDetails' => true,
],
];
$c = new \Slim\Container($configuration);
$app = new \Slim\App($c);
require_once('../settings.php');
require_once('../dependencies.php');
require_once('../routes.php');
$app->run();
dependencies.php
use Slim\App;
use Slim\Container;
use App\Controllers;
$container = $app->getContainer();
$container['MainController'] = function ($c)
{
return new App\Controllers\MainController;
};
/src/Controllers/MainController.php
namespace App\Controllers;
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
class MainController
{
public function search(Request $request, Response $response, $args)
{
$response->write("Hello");
return $response;
}
}