首頁  >  文章  >  後端開發  >  think关于php命名空间的问题 求解答啊

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

WBOY
WBOY原創
2016-06-06 20:39:11942瀏覽

如下图这是目录结构
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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn