Composer autoloader + slim framework - fatal error

2020-04-23 02:58发布

How can I use composer autoloader to load slim? I have it a go below,

composer.json:

{
    "autoload": {
        "psr-4": {
            "Vendor\\Namespace\\": ""
        }
    }
}

index.php:

require dirname(__FILE__).'/vendor/autoload.php';

use \Slim\Slim;

Slim::registerAutoloader();

//Instantiate a Slim application:
$app = new Slim();

//Define a HTTP GET route:
$app->get('/', function () {
    echo "Hello!";
});

$app->get('/hello/:name/', function ($name) {
    echo "Hello, $name";
});

//Run the Slim application:
$app->run();

error:

Fatal error: Class 'Slim\Slim' not found in C:...

Any ideas what have I missed?

2条回答
Summer. ? 凉城
2楼-- · 2020-04-23 03:19

If you prefer to keep slim under ext (as you mentioned here Slim framework - How to autoload Slim/Slim.php instead of using require?) instead of using it as a composer package, I believe this will work:

{
    "autoload": {
        "psr-0": {
            "": "ext/"
        }
    }
}
查看更多
Rolldiameter
3楼-- · 2020-04-23 03:23

You can just use ...

{
    "require": {
        "slim/slim": "2.*"
    }
}

http://docs.slimframework.com/

查看更多
登录 后发表回答