Mustache_Engine没有加载,因设置命名空间而发生冲突?

时间:2015-08-22 21:31:05

标签: php namespaces composer-php libraries

下面的代码是我试图将Mustache加载到Composer库中(这意味着库本身也是由整个项目的作曲家加载的)我正在制作一个项目。

<?php

namespace TradeDefender\SiteEngine;

require '../../vendor/autoload.php';

class MessageEngine{

  function test(){
    $m = new Mustache_Engine;
    return "hello";
  }

}

?>

库本身的目录结构如下所示:

.
├── lib
│   └── TradeDefender
│       ├── Api
│       ├── Conn
│       └── SiteEngine
└── vendor
    ├── composer
    └── mustache

我怀疑是因为我在课堂上设置了一个名称空间,但我不确定如何修复它。错误本身是它无法在SiteEngine文件夹中找到Class Mustache_Engine。自动加载器本身正在加载正常。

有什么想法吗?感谢。

1 个答案:

答案 0 :(得分:0)

问题是我从本地定义的命名空间而不是全局命名空间加载Mustache_Engine。要从全局命名空间加载,我必须放置一个前面的Mustache_Engine,如下所示:

$m = new \Mustache_Engine;