如何从路径创建自定义命名空间,如Yii 2命名空间?

时间:2016-12-15 22:21:14

标签: php yii namespaces

我发现,在Yii 2中有一个有趣的命名空间应用程序。例如,

use app\assets\AppAsset;

http://www.yiiframework.com/doc-2.0/guide-concept-autoloading.html我找到了信息

  

使用基本项目模板时,您可以将您的课程置于其中   顶级命名空间应用程序,以便它们可以由Yii自动加载   无需定义新别名。这是因为 @app是一个   预定义的别名,以及app \ components \ MyClass等类名   解析为类文件AppBasePath / components / MyClass.php ,   根据刚刚描述的算法。

我还找到了http://www.yiiframework.com/doc-2.0/guide-concept-aliases.html#predefined-aliases

  

@app,当前正在运行的应用程序的基本路径。

而且,当我打电话

print_r(Yii::getAlias("@app"));die;

它的打印

/home/u1326jyq/domains/lifesim.biz/public_html/dev

我是否正确,名称空间app等于/home/u1326jyq/domains/lifesim.biz/public_html/dev

但是,如果我尝试执行像

这样的脚本
use home\u1326jyq\domains\lifesim.biz\public_html\dev\assets\syntaxhighlighter\SyntaxhighlighterAsset;

SyntaxhighlighterAsset::register($this); 

它因500错误而失败。

Yii2中app命名空间的定义在哪里以及如何定义自定义myCustomApp命名空间,它将等于我的路径/home/u1326jyq/domains/lifesim.biz/public_html/dev,将其与代码

use myCustomApp\assets\syntaxhighlighter\SyntaxhighlighterAsset;

必须等于代码

define('__ROOT__', dirname(dirname(__FILE__))); 
require_once(__ROOT__.'/assets/syntaxhighlighter/SyntaxhighlighterAsset'); 

? 非常感谢你!

0 个答案:

没有答案