2015-10-19 66 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