【问题标题】:Using XmlReader with Yii - Class 'backend\components\XMLReader' not found将 XmlReader 与 Yii 一起使用 - 找不到类 'backend\components\XMLReader'
【发布时间】:2018-06-07 22:44:50
【问题描述】:

我有这个错误:

PHP 致命错误 – yii\base\ErrorException 类 'backend\components\XMLReader' 未找到。

我正在使用框架 Yii 并希望在组件中使用 XMLReader

<?php 

namespace backend\components;

class XMLRead {

    public function parse() {
        // Instanciation de la classe XMLReader
        try {
            $xml = new XMLReader();
        } catch (Exception $e) {
            $e->getMessage();
        } 
    } 
} 

【问题讨论】:

  • 到目前为止您尝试过什么?你能分享那个代码吗?
  • ?php 命名空间后端\组件;使用 Yii; class XMLRead{ public function parse(){ // 实例化 XMLReader try{ $xml = new XMLReader(); } 捕捉(异常 $e){ $e->getMessage(); }
  • @elmehdim'fallah 你使用的是什么 libxml 版本??
  • 我正在使用 XMLReader
  • 实际上我的版本中有 libxml 版本 2.6.22。我也面临这个问题

标签: php yii yii2 xmlreader


【解决方案1】:

这是因为您在 backend\components 命名空间内使用了 XMLReader 类,因此 XMLReader 被解释为 backend\components\XMLReader。您应该使用前导反斜杠来指示应该使用来自全局命名空间的类:

$xml = new \XMLReader();

或者使用文件头部的use 语句导入这个类:

<?php 

namespace backend\components;

use XMLReader;

class XMLRead {

    public function parse() {
        // Instanciation de la classe XMLReader
        try {
            $xml = new XMLReader();
        } catch (Exception $e) {
            $e->getMessage();
        } 
    } 
} 

您可以在documentation 中阅读有关命名空间的更多信息。

【讨论】:

    【解决方案2】:

    您应该使用 XmlReader 进行示例

    use omgdef\fias\console\base\XmlReader;

    不知道你用的是哪个包。但是因为这是有效的

    https://github.com/OmgDef/yii2-fias

    这里还有一些来自 repo 的示例

    https://github.com/OmgDef/yii2-fias/blob/aa8980fb40a003697d873df3829b4a440923144f/console/controllers/FiasController.php

    您应该使用项目中的命名空间

    【讨论】:

      猜你喜欢
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 2010-10-28
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多