2015-10-19 62 views
8

我想在一个子目录中使用Slim 3,但似乎无法加载它。所有文件都包含在子目录中,包括composer.json。这里是我的composer.json:类没有发现与作曲家'Slim Slim'

"require": { 
    "slim/slim": "3.0.0-RC1" 
} 

这里是我的脚本:

<?php 
require "vendor/autoload.php"; 
use \Slim\Slim; 

$app = new \Slim\Slim(); 
$app->get('/subdirectory/hello/:name', function ($name) { 
    echo "Hello, $name"; 
}); 
$app->run(); 

我试了很多东西,包括Class Slim not found when installing slim with composerPHP Fatal error: Class 'Slim' not found。不幸的是,他们没有解决我的问题。

我得到的错误是Fatal error: Class 'Slim\Slim' not found in ... on line 5,这对应于$app = new \Slim\Slim();

任何人都知道我错过了什么?

+0

你检查是否有与RC1开放的问题是什么?您是否检查过自动加载器是否正确包含?你检查过自动加载器使用的路径吗?您是否尝试过*自动加载器*? – m02ph3u5

+0

另外,如果你通过* use *导入类,请不要在创建新实例时放置命名空间 – mTorres

回答

13

看来Slim3 is not using Slim as main class name but App

所以,你的代码应该是:

<?php 
require "vendor/autoload.php"; 
use \Slim\App; 

$app = new App(); 
$app->get('/subdirectory/hello/:name', function ($name) { 
    echo "Hello, $name"; 
}); 
$app->run(); 
+0

对我来说它并没有帮助:(同样的错误('致命错误:类'App'未找到.. .') –

+2

@VladaKatlinskaya,你在安装应用程序变量之前是否已经使用了\ Slim \ App语句?如果你这样做了,就问另外一个问题,提到这个解决方案对你不起作用。 – mTorres