Laravel 5.1 PHP DOMDocument() clase no encontrada

3 minutos de lectura

avatar de usuario
usuario3023925

Estoy usando la clase DOMDocument() incorporada de PHP para hacer un web-scraping simple. Sin embargo, funciona en mi sitio 4.2, pero no en mi 5.1 (ambos están en la misma instalación de PHP).

Aquí está el error:

No se encontró la clase ‘App\Http\Controllers\III_Ranks\DOMDocument’

Aquí está mi controlador:

<?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...
    }
}

Me imagino que esto es un problema de espacio de nombres, pero no tengo idea de cómo acceder a DOMDocument()

Gracias por cualquier ayuda.

En Laravel 5.1, debe prefijar el nombre de la clase con el prefijo de espacio de nombres global ‘\’.

Entonces tu código actualizado:

<?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...
    }
}

  • Funcionó para mí. También necesitaba usar una barra delante de DOMXpath me gusta $xpath = new \DOMXpath($list1);

    – manian

    14 de agosto de 2018 a las 14:03


avatar de usuario
Hider B.

Para mí, con el fin de resolver el error: DOMDocument() class not found. tuve que instalar el extensión DOM.

Si está utilizando PHP 5:

Puede hacerlo en Debian/Ubuntu usando:

sudo apt-get install php5-dom

Y en Centos/Fedora/Red Hat:

yum install php-xml

Si está utilizando PHP 7:

Para Ubuntu:

apt-get install php7.0-xml

Para CentOS/Fedora/Red Hat:

yum install php70w-xml

  • Para el uso de Laravel 5.6: apt-get install php7.1-xml

    – glembo

    10 de abril de 2018 a las 8:11

avatar de usuario
fénix404

Probado en Laravel 5.4

puedes usar la palabra clave use :

En la parte superior del archivo antes de definir la clase que puede escribir use DOMDocument; en vez de new \DOMDocument();

Por ejemplo:

<?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 {
...

qué es esto ‘…’ ?

tuve este problema en laravel 5.6 en un servidor con Ubuntu 16.04y resolví este problema instalando el xml paquete para php7.1 versión, esto no me funciona en la php7.2 versión no sé por qué.

1.– Asegúrese de tener instalada la versión 7.1 de php, uso este comando para seleccionar la versión correcta de php en ubuntu:

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

Nota: En caso de que no tengas instalado el php7.1 versión, necesita instalarlo antes del comando anterior, en ese caso puede usar este comando: apt-get install php7.1

2.– Para instalar el paquete XML se utilizó el siguiente comando:

apt-get install php7.1-xml

3.– Reinicia tu servidor apache, en mi caso con este comando:

service apache2 restart

Espero ser útil, esto me salvó el día.

Tuve el mismo problema con Amazon Linux 2 (LAMP) con marco laravel

Encuentre a continuación los pasos para resolver problemas:

 sudo systemctl stop httpd 
 sudo yum install  php-xml
 sudo systemctl start httpd

¿Ha sido útil esta solución?

Laravel 5.1 PHP DOMDocument() clase no encontrada

3 minutos de lectura

avatar de usuario
usuario3023925

Estoy usando la clase DOMDocument() incorporada de PHP para hacer un web-scraping simple. Sin embargo, funciona en mi sitio 4.2, pero no en mi 5.1 (ambos están en la misma instalación de PHP).

Aquí está el error:

No se encontró la clase ‘App\Http\Controllers\III_Ranks\DOMDocument’

Aquí está mi controlador:

<?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...
    }
}

Me imagino que esto es un problema de espacio de nombres, pero no tengo idea de cómo acceder a DOMDocument()

Gracias por cualquier ayuda.

En Laravel 5.1, debe prefijar el nombre de la clase con el prefijo de espacio de nombres global ‘\’.

Entonces tu código actualizado:

<?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...
    }
}

  • Funcionó para mí. También necesitaba usar una barra delante de DOMXpath me gusta $xpath = new \DOMXpath($list1);

    – manian

    14 de agosto de 2018 a las 14:03


avatar de usuario
Hider B.

Para mí, con el fin de resolver el error: DOMDocument() class not found. tuve que instalar el extensión DOM.

Si está utilizando PHP 5:

Puede hacerlo en Debian/Ubuntu usando:

sudo apt-get install php5-dom

Y en Centos/Fedora/Red Hat:

yum install php-xml

Si está utilizando PHP 7:

Para Ubuntu:

apt-get install php7.0-xml

Para CentOS/Fedora/Red Hat:

yum install php70w-xml

  • Para el uso de Laravel 5.6: apt-get install php7.1-xml

    – glembo

    10 de abril de 2018 a las 8:11

avatar de usuario
fénix404

Probado en Laravel 5.4

puedes usar la palabra clave use :

En la parte superior del archivo antes de definir la clase que puede escribir use DOMDocument; en vez de new \DOMDocument();

Por ejemplo:

<?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 {
...

qué es esto ‘…’ ?

tuve este problema en laravel 5.6 en un servidor con Ubuntu 16.04y resolví este problema instalando el xml paquete para php7.1 versión, esto no me funciona en la php7.2 versión no sé por qué.

1.– Asegúrese de tener instalada la versión 7.1 de php, uso este comando para seleccionar la versión correcta de php en ubuntu:

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

Nota: En caso de que no tengas instalado el php7.1 versión, necesita instalarlo antes del comando anterior, en ese caso puede usar este comando: apt-get install php7.1

2.– Para instalar el paquete XML se utilizó el siguiente comando:

apt-get install php7.1-xml

3.– Reinicia tu servidor apache, en mi caso con este comando:

service apache2 restart

Espero ser útil, esto me salvó el día.

Tuve el mismo problema con Amazon Linux 2 (LAMP) con marco laravel

Encuentre a continuación los pasos para resolver problemas:

 sudo systemctl stop httpd 
 sudo yum install  php-xml
 sudo systemctl start httpd

¿Ha sido útil esta solución?