Bonjour,
Je cherche à surcharger la méthode setIsEnable pour détecter les transitions disable > enable et faire un traitement spécifique.
class jElocky extends eqLogic {
...
public function setIsEnable($_isEnable) {
if (!$this->getIsEnable() && $_isEnable) {
$this->update1();
log::add('jElocky', 'debug', get_parent_class($this));
return parent::setIsEnable($_isEnable);
}
...
}
Le code plante sur la ligne return parent::setIsEnable
avec l’erreur:
PHP Fatal error: Uncaught Error: Cannot access parent:: when no class scope is active in /var/www/jeedom_market_master/plugins/jElocky/core/class/jElocky.class.php:134
get_parent_class
affiche bien eqLogic
dans le log. Le code qui précède marche bien. Je ne comprends pas…
Merci d’avance pour toute aide.
Bonjour,
Toujours pas d’explication mais j’ai réalisé le test suivant qui reproduit l’appel à l’action ajax eqLogic save:
<?php
require_once __DIR__ . "/core/php/core.inc.php";
include_file('core', 'authentification', 'php');
@session_start();
$_SESSION['user'] = 'test';
$_SESSION['jeedom_token'] = 'test_token';
@session_write_close();
$GLOBALS['isConnect::'] = true;
$GLOBALS['isConnect::admin'] = true;
$_REQUEST['jeedom_token'] = $_SESSION['jeedom_token'];
$_REQUEST['action'] = 'save';
$_REQUEST['type'] = 'jElocky';
$_REQUEST['eqLogic']='[{"id":"20","isEnable":"1"}]';
require_once __DIR__ . "/core/ajax/eqLogic.ajax.php";
Celui-ci marche parfaitement. Le problème ne semble donc survenir que lorsque le code est exécuté par le serveur web.
Bon et bien le problème n’en est pas vraiment un puisque il n’arrive que sous debugger : environnement Eclipse + Xdebug executé sur serveur apache distant (tournant sur une VM).
Quelqu’un a t’il déjà expérimenté quelque chose de semblable?