Laravel 5.1 PHP DOMDocument()类未找到

use*_*925 19 php laravel laravel-5

我正在使用PHP的内置DOMDocument()类来做一些简单的web-scrapping.但是,它适用于我的4.2站点,但不适用于我的5.1(两者都在相同的PHP安装上).

这是错误:

未找到类'App\Http\Controllers\III_Ranks\DOMDocument'

这是我的控制器:

<?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...
    }
}
Run Code Online (Sandbox Code Playgroud)

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

谢谢你的帮助.

小智 36

在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...
    }
}
Run Code Online (Sandbox Code Playgroud)


Hyd*_* B. 8

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

如果您使用的是PHP 5:

您可以使用以下命令在Debian/Ubuntu上执行此操作:

sudo apt-get install php5-dom
Run Code Online (Sandbox Code Playgroud)

在Centos/Fedora/Red Hat上:

yum install php-xml
Run Code Online (Sandbox Code Playgroud)

如果您使用的是PHP 7:

对于Ubuntu:

apt-get install php7.0-xml
Run Code Online (Sandbox Code Playgroud)

对于CentOS/Fedora/Red Hat:

yum install php70w-xml
Run Code Online (Sandbox Code Playgroud)


Pho*_*404 5

测试在 Laravel 5.4

您可以使用关键字use

在定义类之前的文件顶部,您可以编写use DOMDocument;而不是new \DOMDocument();

例如:

<?php

namespace App\Http\Controllers\III_Ranks;

use App\Http\Controllers\Controller;

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

use DOMDocument;

class RanksController extends Controller {
...
Run Code Online (Sandbox Code Playgroud)

这是什么 '...' ?