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... } } |
对我来说,为了解决错误:
如果您使用的是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 |
在
您可以使用关键字
在定义类之前,在文件顶部可以编写
例如:
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中遇到了此问题,并且解决了安装
1.-确保已安装php的7.1版本,我使用此命令在ubuntu中选择正确的php版本:
1 | update-alternatives --set php /usr/bin/php7.1 |
注意:如果尚未安装
2.-要安装软件包XML,使用了以下命令:
1 | apt-get install php7.1-xml |
3.-在我的情况下,使用以下命令重新启动apache服务器:
1 | service apache2 restart |
我希望能有所帮助,这挽救了我的一天。