2017-09-12 2 views
3

J'ai installé emanueleminotto/simple-html-dom via composer.Comment demander l'installation d'un paquet via Composer

Comment puis-je utiliser des classes du package sans avoir d'erreur?

Remarque: j'utilise XAMPP pour exécuter des scripts PHP.

Message d'erreur:

PHP Fatal error: Uncaught Error: Class 'simple_html_dom' not found in C:\xampp\htdocs\Practice\PHP\scrape_1.php:3 Stack trace:

0 {main}

thrown in C:\xampp\htdocs\Practice\PHP\scrape_1.php on line 3

Fatal error: Uncaught Error: Class 'simple_html_dom' not found in C:\xampp\htdocs\Practice\PHP\scrape_1.php:3 Stack trace:

0 {main}

thrown in C:\xampp\htdocs\Practice\PHP\scrape_1.php on line 3

+0

quelle erreur avez-vous? –

Répondre

2

Après l'exécution

$ composer install 

exigent le chargeur automatique généré en vendor/autoload.php en haut de votre fichier de script (ou, pour une application Web, dans le contrôleur avant).

Ensuite, vous aurez toutes les classes autoloaded disponibles dans votre script.

<?php  

require_once __DIR__ . '/vendor/autoload.php'; 

$htmlDom = new simple_html_dom_node(); 

Pour référence, voir https://getcomposer.org/doc/01-basic-usage.md#autoloading.

1

apparemment emanueleminotto/simple-html-dom ne pas utiliser un espace de noms donc par défaut utilise l'espace de noms global. la solution propre serait d'inclure le vendor/autoload.php (créé/généré/mis à jour par compositeur) et utiliser les classes/fonctions en ajoutant \, pour indiquer l'espace de noms global ... sauf si vous travaillez dans l'espace de noms global vous-même, auquel cas vous ne dois pas préfixer.

1

Vous devriez pouvoir les utiliser. Si je vois bien, le paquet entier est vraiment un seul fichier qui est autoloader par le compositeur.

Si vous incluez le fichier vendor/autoload.php dans votre script PHP, vous devriez être en mesure d'utiliser les classes du package.