Intégration d'une librairie dans un plugin
Bonjour,
Je réalise un plugin dont le but est de parser des pages défini d'un site pour en extraire des données. Pour simplifier cette tâche je me base sur la lib simple_html_dom (http://simplehtmldom.sourceforge.net), le parse est lancé toute les nuits via une tâche cron sur le serveur. La tâche exécute le fichier plugins/priceParser/cron.php qui contient ça
Pour ce cas j'obtient l'erreur
Je réalise le même teste mais enlevant la partie pluxml
La ça marche, donc petit à petit je commente certaine partie de mon cron.php et je tombe sur la ligne qui pose problème :
Après ça dépasse mes compétences
Je réalise un plugin dont le but est de parser des pages défini d'un site pour en extraire des données. Pour simplifier cette tâche je me base sur la lib simple_html_dom (http://simplehtmldom.sourceforge.net), le parse est lancé toute les nuits via une tâche cron sur le serveur. La tâche exécute le fichier plugins/priceParser/cron.php qui contient ça
<?php
define('PLX_ROOT', '../../');
define('PLX_CORE', PLX_ROOT.'core/');
define('PLX_PLUGINS', PLX_ROOT.'plugins/');
include(PLX_ROOT.'config.php');
include(PLX_CORE.'lib/config.php');
# On verifie que PluXml est installé
if(!file_exists(path('XMLFILE_PARAMETERS'))) {
header('Location: '.PLX_ROOT);
exit;
}
# On inclut les librairies nécessaires
include(PLX_CORE.'lib/class.plx.glob.php');
include(PLX_CORE.'lib/class.plx.utils.php');
include(PLX_CORE.'lib/class.plx.motor.php');
include(PLX_CORE.'lib/class.plx.plugins.php');
include(PLX_PLUGINS.'/priceParser/lib/simple_html_dom.php');
include(PLX_PLUGINS.'/priceParser/priceParser.php');
$plxMotor = plxMotor::getInstance();
$priceParser = $plxMotor->plxPlugins->getInstance('priceParser');
$html = new simple_html_dom();
$requetes = $priceParser->getRequetes();
foreach($requetes as $k=>$v) {
$html->load_file($v['url']);
if($v['method'] == 'class') {
$sellingPrice = $html->find('#'.$v['item'], 0)->plaintext;
} else {
$sellingPrice = $html->find('.'.$v['item'], 0)->plaintext;
}
}
$html->clear();
echo '---'.$sellingPrice.'<br>';
$priceParser->updateSearch();
?>
Pour ce cas j'obtient l'erreur
Fatal error: Call to a member function find() on a non-object in /xxxx/plugins/priceParser/lib/simple_html_dom.php on line 1129
Je réalise le même teste mais enlevant la partie pluxml
<?php
include('simple_html_dom.php');
$url = "http://www.monurl";
echo "parse de l'url ".$url."<br>";
$html = new simple_html_dom();
$html->load_file($url);
$e = $html->find('.price_wot', 0)->plaintext;
$e = preg_replace('#[^0-9[,.]#u', '', $e);
echo $e;
?>
La ça marche, donc petit à petit je commente certaine partie de mon cron.php et je tombe sur la ligne qui pose problème :
$plxMotor = plxMotor::getInstance();
Après ça dépasse mes compétences
J'ai un string de l'array
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Il est prévue que je l'appel soit directement depuis l'url http://monsite/plugins/priceParser/cron.php ou alors en ligne de commande via php-cli.
J'ai un string de l'array
Dans le __construct de la class de mon plugin j'avais ça :
Et c'était la ligne parent::... qui posait problème.
J'ai un string de l'array