2017-10-10 2 views
-2

ich bin nicht sicher, ob dies in PHP-Namespaces möglich ist. Bitte helfen Sie mirPHP Namespace Konvention

// folder structure 
app 
-- ModelsFolder // the models folder 
---- ComponentsFolder // some traits 
------ Traits::class 
---- User::class 
---- OtherModel::class 

die Klassen nur als Namensraum der App-Ordner verwenden

// User class 
<?php 
namespace App; 

in meinem Controller verwende ich die Klasse ..

<?php 

namespace App\Http\Controllers; 

use App\User; // import class 
use App\OtherModel; 

Ich frage mich, ob diese Einstellung ist möglich, weil es mir FatalError sagt die Class 'App\User' not found gibt.

Ich verwende psr-4 in meinem Composer-Projekt. hier

+1

Können Sie den Autoload-Abschnitt Ihrer composer.json einfügen? –

Antwort

2

Namespaces sind von Verzeichnisstruktur

User-Modell

//User class 

<?php 
namespace App\ModelsFolder; 

In Ihrem Controller

<?php 
namespace App\Http\Controllers; 
use App\ModelsFolder\User; // import class 
use App\ModelsFolder\OtherModel; 
+0

so ist es nicht möglich, so zu tun? .. – Hitori

+1

Nein, wenn Sie die Ordnerstruktur ändern Sie müssen Ihre Namespaces entsprechend ändern, verzeihen Sie meine Formatierung es ist nicht einfach auf Handy –

+0

zu formatieren Wenn Sie App \ User verwenden möchten Sie müssten Ihre Modelle um eine Verzeichnisebene nach oben verschieben –