我正在关注亚历克斯的how to build a shopping cart lesson并且一切正常。但后来我不知道我做错了所以我得到了这个错误:
Fatal error: Uncaught Error: Class 'maimana\App' not found in /Applications/MAMP/htdocs/maimana/bootstrap/app.php:13 Stack trace: #0 /Applications/MAMP/htdocs/maimana/public/index.php(3): require() #1 {main} thrown in /Applications/MAMP/htdocs/maimana/bootstrap/app.php on line 13
bootsrap / app.php:
<?php
use Respect\Validation\Validator as v;
use maimana\App as MyApp;
use Slim\Views\Twig;
use Illuminate\Database\Capsule\Manager as Capsule;
session_start();
require __DIR__ . '/../vendor/autoload.php';
$app = new MyApp;
$container = $app->getContainer();
$capsule = new Capsule;
$capsule->addConnection([
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'maimana',
'username' => 'rdp46',
'password' => 'littlelion4696',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => ''
]);
$capsule->setAsGlobal();
$capsule->bootEloquent();
require __DIR__ . '/../app/routes.php';
Myapp / App.php:
namespace maimana;
use DI\ContainerBuilder;
use DI\Bridge\Slim\App as DiBridge;
class App extends DiBridge{
protected function configureContainer(ContainerBuilder $builder)
{
$builder->addDefinitions([
'settings.displayErrorDetails' => true,
]);
$builder->addDefinitions(__DIR__ . '/container.php');
}
}
任何人都知道发生了什么?
答案 0 :(得分:0)
将Myapp
目录重命名为maimana
(注意案例),然后更新composer.json
以自动加载maimana
命名空间。
即。确保你的composer.json有:
"autoload": {
"psr-4": {
"maimana\\": "maimana/"
}
}
这假设maimana
目录位于项目根目录中composer.json
文件所在的位置。更改composer.json
后,您需要运行composer dumpautoload
才能使更改生效。
这是必需的,因为PHP文件所在的目录名与该PHP文件中的类的名称空间之间存在一对一的映射。由于App.php
中的命名空间为maimana
,因此目录必须为maimana
。