>  기사  >  백엔드 개발  >  think关于php命名空间的问题 求解答啊

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

WBOY
WBOY원래의
2016-06-06 20:39:11909검색

如下图这是目录结构
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으로 문의하세요.