Yii2 上别名的命名空间与目录结构不同
Namespace with alias on Yii2 different from directory structure
我做了一堆classes,放在目录common/a/b/c里面。
所以,内部文件
Class1.class.php
我有:
<?php
namespace x\y\b\c;
class Class1
...
命名空间不同于目录结构组织,因为我想要那样。 (x\y 应该映射到 common/a 目录)
在我的 common/config/bootstrap.php 我试过这个:
Yii::setAlias('common', dirname(__DIR__));
Yii::setAlias('x/y', '@common/a');
并尝试使用
在另一个文件中导入这个 class
use x\y\b\c\Class1;
没有成功。但是如果我使用:
Yii::$classMap['x\y\b\c\Class1'] = __DIR__ . '/../../common/a/b/c/Class1.class.php';
而不是 setAlias,它有效。
我想知道是否可以在不使用 composer 的情况下使命名空间与目录结构不同,我该怎么做而不是映射 common/a/b/c[=35 中的每个 class =]
在bootstrap.php.
Yii::setAlias('common', dirname(__DIR__));
Yii::setAlias('x/y', dirname(__DIR__).'/models');
在我的 "models" 文件夹中,有文件夹 "b",文件夹 "c" 在文件夹 "b".
中
models > b > c
我有一个名为 "LoginForm.php" 的模型文件,位于文件夹 "c" 中。
此文件的顶部是以下几行。
namespace x\y\b\c;
use Yii;
use yii\base\Model;
class LoginForm extends Model
在我的 SiteController 中我有这个。
use x\y\b\c\LoginForm;
在其中一个动作函数中,我可以成功调用这个模型。
$model = new LoginForm();
我做了一堆classes,放在目录common/a/b/c里面。 所以,内部文件
Class1.class.php
我有:
<?php
namespace x\y\b\c;
class Class1
...
命名空间不同于目录结构组织,因为我想要那样。 (x\y 应该映射到 common/a 目录) 在我的 common/config/bootstrap.php 我试过这个:
Yii::setAlias('common', dirname(__DIR__));
Yii::setAlias('x/y', '@common/a');
并尝试使用
在另一个文件中导入这个 classuse x\y\b\c\Class1;
没有成功。但是如果我使用:
Yii::$classMap['x\y\b\c\Class1'] = __DIR__ . '/../../common/a/b/c/Class1.class.php';
而不是 setAlias,它有效。
我想知道是否可以在不使用 composer 的情况下使命名空间与目录结构不同,我该怎么做而不是映射 common/a/b/c[=35 中的每个 class =]
在bootstrap.php.
Yii::setAlias('common', dirname(__DIR__));
Yii::setAlias('x/y', dirname(__DIR__).'/models');
在我的 "models" 文件夹中,有文件夹 "b",文件夹 "c" 在文件夹 "b".
中models > b > c
我有一个名为 "LoginForm.php" 的模型文件,位于文件夹 "c" 中。 此文件的顶部是以下几行。
namespace x\y\b\c;
use Yii;
use yii\base\Model;
class LoginForm extends Model
在我的 SiteController 中我有这个。
use x\y\b\c\LoginForm;
在其中一个动作函数中,我可以成功调用这个模型。
$model = new LoginForm();