gpt4 book ai didi

PHP:在 PSR-0 命名空间类中自动加载 PEAR 命名空间类冲突

转载 作者:行者123 更新时间:2023-12-04 16:55:00 26 4
gpt4 key购买 nike

对于我的应用程序,我使用 PSR-0 命名空间。一切都很美好!

在我想使用 Twig 作为模板解析器之前,Twig 使用 PEAR 伪命名空间。像 Twig_Loader_Filesystem。

问题是,当我想在我的命名空间应用程序中使用 Twig 时,如下所示:

<?php
namespace Tact\ViewManager;

class ViewManager {

public function init()
{
$loader = new Twig_Loader_Filesystem($this->templatepath);
$this->twig = new Twig_Environment($loader);
}
}
?>

PHP 会告诉我的自动加载器查找名为 Tact\ViewManager\Twig_Loader_Filesystem 的类。

如何在没有调用类的 PSR-0 命名空间的情况下自动加载 PEAR 命名空间样式类?

我的自动加载器能够同时加载 PEAR 和 PSR-0..

提前致谢!

最佳答案

这是因为您在 Tact\ViewManager命名空间。
伪命名空间类实际上位于全局命名空间中,
所以你应该用 \ 作为前缀调用他们:

$loader = new \Twig_Loader_Filesystem($this->templatepath);

如果 \前缀错误你,你可以这样做:
namespace Tact\ViewManager;

use Twig_Loader_Filesystem;
use Twig_Environment;

class ViewManager {
public function init()
{
$loader = new Twig_Loader_Filesystem($this->templatepath);
$this->twig = new Twig_Environment($loader);
}
}

关于PHP:在 PSR-0 命名空间类中自动加载 PEAR 命名空间类冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12386594/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com