找不到Laravel 5.1 PHP DOMDocument()类

Laravel 5.1 PHP DOMDocument() class not found

我正在使用PHP的内置DOMDocument()类进行一些简单的Web废弃。
但是,它可以在我的4.2站点上运行,但不能在我的5.1站点上运行(两者都在同一PHP安装上)。

这是错误:

Class 'App\\Http\\Controllers\\III_Ranks\\DOMDocument' not found

这是我的控制器:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php

namespace App\\Http\\Controllers\\III_Ranks;

use App\\Http\\Controllers\\Controller;

use Illuminate\\Http\
equest;
use Illuminate\\Http\
esponse;

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

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

谢谢你的帮助。


在Laravel 5.1中,您必须为类名加上全局命名空间前缀" \"。

因此,您更新的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php

namespace App\\Http\\Controllers\\III_Ranks;

use App\\Http\\Controllers\\Controller;

use Illuminate\\Http\
equest;
use Illuminate\\Http\
esponse;

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


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

如果您使用的是PHP 5:

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

1
sudo apt-get install php5-dom

在Centos / Fedora / Red Hat上:

1
yum install php-xml

如果您使用的是PHP 7:

对于Ubuntu:

1
apt-get install php7.0-xml

对于CentOS / Fedora / Red Hat:

1
yum install php70w-xml


Laravel 5.4中测试

您可以使用关键字use

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

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php

namespace App\\Http\\Controllers\\III_Ranks;

use App\\Http\\Controllers\\Controller;

use Illuminate\\Http\
equest;
use Illuminate\\Http\
esponse;

use DOMDocument;

class RanksController extends Controller {
...

这是什么 '...' ?


我对带有laravel框架的Amazon Linux 2(LAMP)有相同的问题

请找到以下步骤解决问题:

1
2
3
 sudo systemctl stop httpd
 sudo yum install  php-xml
 sudo systemctl start httpd

我在使用ubuntu 16.04的服务器上的laravel 5.6中遇到了此问题,并且解决了安装php7.1版本的xml软件包的问题,??这在我不知道为什么的php7.2版本中不起作用。

1.-确保已安装php的7.1版本,我使用此命令在ubuntu中选择正确的php版本:

1
update-alternatives --set php /usr/bin/php7.1

注意:如果尚未安装php7.1版本,则需要在上述命令之前安装它,在这种情况下,可以使用以下命令:apt-get install php7.1

2.-要安装软件包XML,使用了以下命令:

1
apt-get install php7.1-xml

3.-在我的情况下,使用以下命令重新启动apache服务器:

1
service apache2 restart

我希望能有所帮助,这挽救了我的一天。