找不到 Laravel 5.1 PHP DOMDocument() 类

2022-08-30 16:54:47

我正在使用PHP内置的DOMDocument()类来做一些简单的网络抓取。但是,它适用于我的4.2站点,但不适用于我的5.1(两者都在同一个PHP安装上)。

这是错误:

找不到类“应用程序\Http\控制器\III_Ranks\DOM文档”

这是我的控制器:

<?php

namespace App\Http\Controllers\III_Ranks;

use App\Http\Controllers\Controller;

use Illuminate\Http\Request;
use Illuminate\Http\Response;

class RanksController extends Controller 
{
    public function getRanks()
    {
        $list1 = new DOMDocument();
        //etc...
    }
}

我认为这是一个命名空间问题,但我不知道如何访问DOMDocument()

感谢您的任何帮助。


答案 1

在 Laravel 5.1 中,必须在类名前面加上全局命名空间前缀“\”。

所以你更新的代码:

<?php

namespace App\Http\Controllers\III_Ranks;

use App\Http\Controllers\Controller;

use Illuminate\Http\Request;
use Illuminate\Http\Response;

class RanksController extends Controller 
{
    public function getRanks()
    {
        $list1 = new \DOMDocument();
        //etc...
    }
}

答案 2

对我来说,为了解决错误:.我必须安装DOM扩展DOMDocument() class not found

如果您使用的是 PHP 5:

你可以在 Debian / Ubuntu 上使用以下命令:

sudo apt-get install php5-dom

在 Centos / Fedora / Red Hat 上:

yum install php-xml

如果您使用的是 PHP 7:

对于 Ubuntu:

apt-get install php7.0-xml

对于 CentOS / Fedora / Red Hat:

yum install php70w-xml

推荐