我有一些PHP类,其定义如下:
module1Model.php
namespace App\Modules\module1\models;
class module1Model
{
//... methods etc.
}
module2Model.php
namespace App\Modules\module2\models;
class module2Model
{
//... methods etc.
}
在其他一些类中,我想使用这些命名空间。所以我在页面顶部放置了以下几行:
someClass.php
namespace App\Modules\someClass\controllers;
use App\Modules\module1\models; // Works
use App\Modules\module2\models; // Fails
use Core\Logger\TextLogger; // Works
class somceClass
{
//... methods etc.
}
所以在someClass
我正在尝试use
module1
和module2
模型。从技术上讲,它们不在同一名称空间中。只是部分。但是为什么它给我一个关于它的错误.. ??
什么是解决这个问题的好方法?我知道我可以将其添加到第二行:
use App\Modules\module2\models as module2; // Now works
但我真的不喜欢这样做,因为我没有像我在其他所有类中那样(使用as
关键字)。这感觉很不协调。
还有其他方法让这项工作......?或者我真的被迫在我的所有as
声明中使用use
关键字......? : - (
答案 0 :(得分:1)
我想你想要使用模型类,而不是它们的整个命名空间。如果是这样,那么以下工作正常:
use App\Modules\module1\models\module1Model;
use App\Modules\module2\models\module2Model;
示例:
namespace App\Modules\module1\models {
class module1Model
{
//... methods etc.
}
}
namespace App\Modules\module2\models {
class module2Model
{
//... methods etc.
}
}
namespace App\Modules\someClass\controllers {
use App\Modules\module1\models\module1Model;
use App\Modules\module2\models\module2Model;
use Core\Logger\TextLogger;
class somceClass
{
//... methods etc.
}
}