致命错误:未捕获错误:类' maimana \ App'找不到 - slim3

时间:2017-04-26 04:56:14

标签: php slim autoload

我正在关注亚历克斯的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');
   }     
 }

任何人都知道发生了什么?

1 个答案:

答案 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

相关问题