在我的项目中,我有一个模块文件夹,可以在其中创建作曲家包
我正在制作的模块namespace
是Modules \ View \ View for Modules / View / View.php文件
这是目录布局
Modules
-View
--View.php
--vendor
---autoload.php
当我在View.php中执行此操作时
public function __construct(){
require_once __DIR__.'/vendor/autoload.php';
$this->loader = new Twig_Loader_Filesystem('design');
$this->twig = new Twig_Environment($this->loader);
}
我收到错误: 致命错误:第12行的Modules / View / View.php中找不到类'Modules \ View \ Twig_Loader_Filesystem'
所以我假设这是因为View.php文件有一个命名空间,我去了/Modules/View/vendor/composer/autoload_namespaces.php并更改了
'Twig_' => array($vendorDir . '/twig/twig/lib')
到
'Modules\View\Twig_' => array($vendorDir . '/twig/twig/lib')
它仍然不起作用,但是我仍然100%确定它是因为namespace
因为如果你尝试将其加载到没有namespace
的文件中它可以很快起作用当你添加它时会出现错误
答案 0 :(得分:1)
Twig_Loader_Filesystem的命名空间是什么?
如果它没有命名空间,您可以使用根命名空间(\
)加载它:
$this->loader = new \Twig_Loader_Filesystem('design');
您还可以使用use
关键字:
namespace Modules\View;
use Twig_Loader_Filesystem;
use Twig_Environment;
class View {
public function __construct(){
require_once __DIR__.'/vendor/autoload.php';
$this->loader = new Twig_Loader_Filesystem('design');
$this->twig = new Twig_Environment($this->loader);
}
}