Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

[Framework SC] les scenarios en php

Cette partie est dédiée à la programmation sur le logiciel JEEDOM
Avatar de l’utilisateur
Patrick
Helper
Messages : 1029
Inscription : 29 août 2014, 15:21
Localisation : Savoie

Re: [Framework SC] les scenarios en php

Message par Patrick » 27 sept. 2017, 23:49

Merci Djul !!!!!

Comme d'habitude, toujours aussi réactif :) :D :lol: :P

Encore Merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii ! :P ;)
ßêta-Testeur / Développeur plugin / Modérateur du Forum EnOcean

En domotique ou en informatique, il n'y a pas de problème, mais seulement des solutions à trouver...
Pour contribuer au développement des plugins et tutos : Paypal

Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 28 sept. 2017, 02:57

De rien :D
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 19 oct. 2017, 15:38

Update du framework SC v0.94 en ligne :D


ATTENTION, CHANGEMENT DE SYNTAXE !

Depuis la v0.91 Le framework n'est plus statique. Voir ce post:
viewtopic.php?f=27&t=17645&start=260#p491514


------------


Changelog v0.94 :

- Ajout du support de JPI v0.94

http://rulistaff.free.fr/sc/doc/?class-sc_jpi


------------


* Pour installer / mettre à jour le framework :

- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :

Code : Tout sélectionner

eval(file_get_contents("http://rulistaff.free.fr/sc/install"));
- Sauvegarder le scénario
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation


------------


ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).

rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:

Code : Tout sélectionner

chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 29 oct. 2017, 15:57

Update du framework SC v0.95 en ligne :D


------------


Changelog v0.95 :

- Ajout du support de JPI v0.95

http://rulistaff.free.fr/sc/doc/?class-sc_jpi


------------


* Pour installer / mettre à jour le framework :

- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :

Code : Tout sélectionner

eval(file_get_contents("http://rulistaff.free.fr/sc/install"));
- Sauvegarder le scénario
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation


------------


ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).

rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:

Code : Tout sélectionner

chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html
[/quote]
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

beber49
Timide
Messages : 197
Inscription : 26 janv. 2017, 20:11

Re: [Framework SC] les scenarios en php

Message par beber49 » 15 nov. 2017, 12:42

Salut à tous,

J'ai 2 problèmes ici avec ce merveilleux framework et les capteurs de mouvement Xiaomi (des detecteurs de porte fonctionnent nickel :) ) :

1er, le détail :
$detecteurs_etat = array('#[Gateway Bureau][Chambre Parents Baie Vitree][Mouvement]#', '#[Gateway Salon][Veranda][Mouvement]#');
$sc->setLog('compteur : ' . count($detecteurs_etat)); => FONCTIONNE
$sc->setLog('compteur : ' . count($detecteurs_etat) . ' et c'est tout.'); => NE FONCTIONNE PAS

2ème, le détail :
for ($i = 0; $i < count($detecteurs_etat); $i++) {
$interrupteur = $sc->getEquipement($detecteurs_etat[$i]);
$sc->setLog($interrupteur); => FONCTIONNE
$sms=getCond($detecteurs_etat[$i]); => NE FONCTIONNE PAS
}

Quand ça ne fonctionne pas, le "en cours" de l'exection ne finit jamais et je n'ai pas de log, je suis contraint de l'arrêter.

Une idée ?

Merciii !

Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 15 nov. 2017, 16:29

Je suis loin de chez moi jusqu'a fin décembre.
Je vais regarder ça quand je rentre.
A tu essayer avec le debug activé pour avoir le log détaillé des erreurs php ?
( pour activer le debug : http://rulistaff.free.fr/sc/doc/?Utilisation )
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 16 nov. 2017, 11:27

Je viens de regarder plus en détail ton code posté et il y a des erreurs de syntaxes :

Code : Tout sélectionner

$sc->setLog('compteur : ' . count($detecteurs_etat) . ' et c'est tout.'); => NE FONCTIONNE PAS
Normal que ça ne fonctionne pas car tu n'as pas échappé le guillemet simple dans une zone texte.
Il faut faire :

$sc->setLog('compteur : ' . count($detecteurs_etat) . ' et c\'est tout.');
ou
$sc->setLog('compteur : ' . count($detecteurs_etat) . " et c'est tout.");

Ensuite

Code : Tout sélectionner

$sms=getCond($detecteurs_etat[$i]);
La fonction getCond sert à évaluer une expression Jeedom (String) et retourne un boolean (true ou false).
http://rulistaff.free.fr/sc/doc/?class-sc#_getCond

Hors là il y a juste une commande envoyée dedans...
Pour exécuter une commande il faut utiliser la fonction setCmd :
http://rulistaff.free.fr/sc/doc/?class-sc#_setCmd

Et je te conseille vivement d'activer le DEBUG lors de la création de ton bloc code (Voir post précédent ci-dessus)
Cela te permettra de voir dans le log scenario_execution de Jeedom le détail des erreur de syntaxes ainsi que le bloc code et le numéro de ligne concerné.

;)
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

beber49
Timide
Messages : 197
Inscription : 26 janv. 2017, 20:11

Re: [Framework SC] les scenarios en php

Message par beber49 » 17 nov. 2017, 10:58

Merci beaucoup, c'était bien vu, j'étais fatigué ;-).

vodnok
Timide
Messages : 20
Inscription : 04 févr. 2015, 19:14

Re: [Framework SC] les scenarios en php

Message par vodnok » 27 nov. 2017, 13:52

Et je ne découvre ça que maintenant :-)

Je vais tester ça

Merci

Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 02 déc. 2017, 23:17

Update du framework SC v0.95c en ligne :D


------------


Changelog v0.95c :

- Ajout du support de JPI v0.954

http://rulistaff.free.fr/sc/doc/?class-sc_jpi


------------


* Pour installer / mettre à jour le framework :

- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :

Code : Tout sélectionner

eval(file_get_contents("http://rulistaff.free.fr/sc/install"));
- Sauvegarder le scénario
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation


------------


ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).

rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:

Code : Tout sélectionner

chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 02 janv. 2018, 22:42

Update du framework SC v0.95d en ligne :D


------------


Changelog v0.95d :

- Ajout du support de JPI v0.958

http://rulistaff.free.fr/sc/doc/?class-sc_jpi


------------


* Pour installer / mettre à jour le framework :

- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :

Code : Tout sélectionner

eval(file_get_contents("http://rulistaff.free.fr/sc/install"));
- Sauvegarder le scénario
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation


------------


ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).

rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:

Code : Tout sélectionner

chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 24 janv. 2018, 03:24

Update du framework SC v0.95e en ligne :D


------------


Changelog v0.95e :

- Ajout du support de JPI v0.96

http://rulistaff.free.fr/sc/doc/?class-sc_jpi


------------


* Pour installer / mettre à jour le framework :

- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :

Code : Tout sélectionner

eval(file_get_contents("http://rulistaff.free.fr/sc/install"));
- Sauvegarder le scénario
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation


------------


ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).

rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:

Code : Tout sélectionner

chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 02 févr. 2018, 23:52

Update du framework SC v0.96 en ligne


------------


Changelog v0.96 :

- Ajout du support de JPI v0.965

http://rulistaff.free.fr/sc/doc/?class-sc_jpi


------------


* Pour installer / mettre à jour le framework :

- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :

Code : Tout sélectionner

eval(file_get_contents("http://rulistaff.free.fr/sc/install"));
- Sauvegarder le scénario
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation


------------


ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).

rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:

Code : Tout sélectionner

chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

Avatar de l’utilisateur
Jeandhom
Actif
Messages : 1386
Inscription : 20 oct. 2015, 17:32

Re: [Framework SC] les scenarios en php

Message par Jeandhom » 03 févr. 2018, 11:01

Update Ok.
Merci.

Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 09 févr. 2018, 21:59

Update du framework SC v0.97 en ligne :D


------------


Changelog v0.97 :

- Ajout d'un début de librairie : files
Avec une première fonction permettant de générer un lien de téléchargement (avec une durée de validité) d'un fichier local

http://rulistaff.free.fr/sc/doc/?class-sc_files

- Ajout du support de JPI v0.967

http://rulistaff.free.fr/sc/doc/?class-sc_jpi

- Ajout de la fonction générique ASK_MMS dans la librairie JPI

http://192.168.100.1/sc/doc/?class-sc_jpi#_ASK_MMS

------------


* Pour installer / mettre à jour le framework :

- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :

Code : Tout sélectionner

eval(file_get_contents("http://rulistaff.free.fr/sc/install"));
- Sauvegarder le scénario
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation


------------


ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).

rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:

Code : Tout sélectionner

chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 11 févr. 2018, 17:42

Update du framework SC v0.97b en ligne :D


------------


Changelog v0.97b :

- Librairie : files
Correction de la fonction makeDownloadUrl
Ajout des paramètres $address, $https et $port
Afin de spécifier l'adresse où joindre Jeedom

http://192.168.100.1/sc/doc/?class-sc_f ... ownloadUrl

http://rulistaff.free.fr/sc/doc/?class-sc_files

- Ajout du support de JPI v0.9675 (et 0.9676)

http://rulistaff.free.fr/sc/doc/?class-sc_jpi

------------


* Pour installer / mettre à jour le framework :

- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :

Code : Tout sélectionner

eval(file_get_contents("http://rulistaff.free.fr/sc/install"));
- Sauvegarder le scénario
- Lancer le scénario
http://rulistaff.free.fr/sc/doc/?Installation


------------


ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).

rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:

Code : Tout sélectionner

chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

Avatar de l’utilisateur
m.georgein
Timide
Messages : 299
Inscription : 18 mars 2016, 23:46
Localisation : 13820

Re: [Framework SC] les scenarios en php

Message par m.georgein » 13 févr. 2018, 12:45

Bonjour djul,

Ton framework étant remarquable et particulièrement intelligent et bien écrit je me suis donc décidé à l'adopter en base pour mes propres classes.

Et c'est là que je bute, apparemment la variable $sc ne passe pas la barrière de classe même si on la met en global, il faudrait donc la passer en paramètre à TOUTES les fonctions et SOUS FONCTIONS. Dans mon cas cela risque d'être injouable (plus de 1000 appel de base).
pour être plus clair j'ai fait ce petit code de test :

Code : Tout sélectionner


class test {
	function log($message) {
		$sc->log($message);
	}
}

test::log("test de message");

J'ai essaye dans ce bout de code de placer des global $sc; un peu partout :) mais rien à faire.
Quelque chose m'échappe ? As tu une idée ? Moi je ne comprends pas (je ne suis pas assez pointu en php).

Merci d'avance
Plateforme :
NUCNUC6i5SYK en VM STRETCH
Version Jeedom 4.0.9
Version PHP 7.0.33-0+deb9u1
Version OS Linux debian9 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux [9.6]
Version database 10.1.26-MariaDB-0+deb9u1

Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 13 févr. 2018, 12:56

Avant le framework était statique et donc SC était global (tout comme la variable $scenario de Jeedom que le framework passait en global)
Un problème s'est alors posé lors de l'exécution de scénarios au sein d'un autre scénario dans le même runtime (start avec l'option sync).
Dans ce cas forcément plus rien ne marchait correctement (les logs n'allaient plus dans le bon scénario et certaines fonctions ne marchaient plus).

Du coup oui, il faut passer $sc à chaque fois dans les fonctions et classes, afin d'être sur que $sc corresponde bien au scénario en cours et non au potentiel scénario parent.

Il te suffit juste de rajouter un constructeur dans ta classe pour stocker la variable sc
Et appeler ta classe systématiquement de manière dynamique dans tes scénarios avec new
Et enfin utiliser -> et plus les ::

edit:

ce qui donnerait :

Code : Tout sélectionner

class test {
	
	private $sc;
	
	function __construct($sc) {
		$this->sc = $sc;
	}

	function log($message) {
		$this->sc->log($message);
	}

	static function statiqueEx($a) {
		return ($a + 10);
	}
}

$test = new test($sc);
$test->log("test de message");

$calcul = test::statiqueEx(5); // retourne 10
J'ai rajouté une fonction statique dans ta classe pour te montrer qu'il est est possible d'utiliser les 2 simultanément.
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

Avatar de l’utilisateur
m.georgein
Timide
Messages : 299
Inscription : 18 mars 2016, 23:46
Localisation : 13820

Re: [Framework SC] les scenarios en php

Message par m.georgein » 13 févr. 2018, 18:31

Merci pour ta réponse détaillée, alors pour résumer :

L'appel aux fonctions de ma classe (mg) est ok avec la syntaxe
mg->mafonction() sous réserve d'avoir déclaré le constructeur et de faire suivre la classe par
$mg = new mg($sc);

A l’intérieur de ma classe, l'appel aux fonctions de sc se fait par $this->sc->fonctionsc()

Un autre soucis, tous mes scénario démarrent par un include_once de ma classe et du coup apparemment l'appel par $sc->fonctionsc ne fonctionne plus avec le message : PHP Fatal error: Call to a member function log() on null in /var/www/html/sc/sc.class.php(1956)
exemple de code :

Code : Tout sélectionner

include_once getRootPath() . '/mg/mg.class.php';

$mg->Message('PAW_TTS', "NR en approche à 9,9 kilomètres.");    //<===== ligne OK

$sc->log('test');                   // ====> Ligne en erreur

Pour finir, quelle syntaxe utiliser pour appeler une fonction de la classe par une autre, j'ai essayé différent modes d'appel et aucun ne fonctionne (self:: $this-> et autres)

Pour être plus clair, j'ai fait un petit code de démo des différents problèmes que me pose cette intégration :

Code : Tout sélectionner


//DEBUG ON
class mg {
	
	private $sc;
	function __construct($sc) {
		$this->sc = $sc;
	}

	function message($message) {
      $this->sc->log("ppel d'une fonction sc depuis une fonction de la classe"); // FONCTIONNE
	}

static function statiqueEx($a) {
		// Appel de la fonction message de la classe
		mg->message("Appel d'une fonction de la classe depuis une autre fonction de la classe"); // NE FONCTIONNE PAS
	}
}
$mg = new mg($sc);

$mg->message("Appel de fonction de la classe depuis l'extérieur de la classe"); // FONCTIONNE

$this->sc->log("Appel de fonction de sc depuis l'extérieur de la classe"); // NE FONCTIONNE PAS (quand la ligne ' include_once ....' de la classe est déclarée

$calcul = mg::statiqueEx(5); // retourne 15 // Appel d'une fonction statique de la classe depuis l'extérieur, FONCTIONNE 

Encore désolé de t'ennuyer avec ces soucis mais avant de remodéliser mes 12000 lignes de codes je préfère être sur des procédures !!!!

Quand j'en aurais fini, si tu as besoin de bouts de code pour la doc (transpo de scénario vers sc ! :D ), ou un coup de main (sc, jpi, darksobre), ce sera avec plaisir.
Plateforme :
NUCNUC6i5SYK en VM STRETCH
Version Jeedom 4.0.9
Version PHP 7.0.33-0+deb9u1
Version OS Linux debian9 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux [9.6]
Version database 10.1.26-MariaDB-0+deb9u1

Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 14 févr. 2018, 17:35

Code : Tout sélectionner

include_once getRootPath() . '/mg/mg.class.php';

$mg->Message('PAW_TTS', "NR en approche à 9,9 kilomètres.");    //<===== ligne OK

$sc->log('test'); 

A quel endroit tu fais ton $mg=new($sc) dans ce code ?
En théorie il n'y a pas de raison que ça ne marche pas, sauf si quelque-part dans ton fichier mg.class.php la variable $sc est écrasée.

Code : Tout sélectionner

static function statiqueEx($a) {
		// Appel de la fonction message de la classe
		mg->message("Appel d'une fonction de la classe depuis une autre fonction de la classe"); // NE FONCTIONNE PAS
	}
Dans une fonction statique il est impossible d'utiliser des fonctions ou des variables non statiques de la classe.
Une fonction statique est une bête fonction autonome, qui est toujours identique (même si tu crées 50 objects différent de ta classe avec new) et si tu veux utiliser $sc ou $mg dedans il faudra donc forcément l'envoyer en paramètre.
Donc tout ce qui est $this-> ne marchera pas dans des fonctions statiques.
Par contre self:: marchera partout dans ta classe (à la condition d'appeler une fonction statique)

http://php.net/manual/fr/language.oop5.static.php
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

Répondre

Revenir vers « Développements sur Jeedom »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 14 invités