Heim  >  Artikel  >  Backend-Entwicklung  >  think关于php命名空间的问题 求解答啊

think关于php命名空间的问题 求解答啊

WBOY
WBOYOriginal
2016-06-06 20:39:11909Durchsuche

如下图这是目录结构
think关于php命名空间的问题 求解答啊

这是 test.class.php 内的代码

<code>php</code><code><?php namespace Common;

class test{
    public function __construct(){

    }
}
</code></code>

这是 IndexController.class.php 下的代码

<code>php</code><code><?php namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $test = new \Common\test();
    }
}
</code></code>

我想达到的效果是在 test.class.php 下不把命名空间命名成 namespace Common\Common; 而是命名为 namespace Common; 也能在 IndexController.class.php 实例化 test.class.php 这样就可以减少一个目录,因为我在另一个业务里有一个目录名是变量 想跳过那个目录 能实现上图的实例吗 真心求解答

回复内容:

如下图这是目录结构
think关于php命名空间的问题 求解答啊

这是 test.class.php 内的代码

<code>php</code><code><?php namespace Common;

class test{
    public function __construct(){

    }
}
</code></code>

这是 IndexController.class.php 下的代码

<code>php</code><code><?php namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $test = new \Common\test();
    }
}
</code></code>

我想达到的效果是在 test.class.php 下不把命名空间命名成 namespace Common\Common; 而是命名为 namespace Common; 也能在 IndexController.class.php 实例化 test.class.php 这样就可以减少一个目录,因为我在另一个业务里有一个目录名是变量 想跳过那个目录 能实现上图的实例吗 真心求解答

能。

推荐一篇文章:《PHP 命名空间 解惑》

如果使用自动加载的话是不能更改自动加载的规则的,你可以利用 import或者vendor来引入类库,没有必要去纠结。如果你真的要这么做 那么类库映射可以帮到你。查看文档:http://document.thinkphp.cn/manual_3_2.html#autoload

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn