Namespaces und traits

Ich erhalte eine Fehler mit traits und namespaces, denn der Zug kann nicht gefunden werden.

index.php:

require_once 'src/App.php';
use App\main;

$App = new App();

src/App.php

namespace App\main;
require_once __DIR__ . DIRECTORY_SEPARATOR . 'DataBase.php';
/**
 * code
 */

src/DataBase.php

namespace App\DataBase;

require_once __DIR__ . DIRECTORY_SEPARATOR . 'Singleton.php';

class DataBase {
  use Singleton; //or use App\Singleton

  /**
   * code
   */
}

src/Singleton.php

namespace App\Singleton.php;
trait Singleton {
  /**
   * code
   */
}

Aber, wenn ich ausführen, die von Index.php ich bin immer diese Fehlermeldung:

Fatal error: Trait 'App\DataBase\Singleton' not found in (...)

Wie kann ich es beheben?

BEARBEITEN

Php automatisch legen Sie die class-Namen im Namensraum, zum Beispiel:

Bar.php

namespace App;
class Bar {
  /**
   * code
   */
}

Die, wenn Sie rufen Sie dieses Paket, das Sie verwenden können App\Bar, das bedeutet, dass die Klassen gesetzt standardmäßig.

  • use App\main im index.php nichts. App\main ist ein namespace, nicht ein symbol name
Schreibe einen Kommentar