ホームページ  >  記事  >  バックエンド開発  >  think关于php命名空间的问题 求解答啊

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

WBOY
WBOYオリジナル
2016-06-06 20:39:11912ブラウズ

如下图这是目录结构
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 までご連絡ください。