Bonjour à tous, je suis en train de développer un plugin qui s’appelle solarman et pour alimenter les équipements je me sers de fichiers créés pour home assistant au format yaml. Chez moi tout va bien mais pour certains utilisateur il apparait une erreur 500 lorsque le plugin tente de parser le fichier yaml, dans le log http_error il y a cette ligne:
Uncaught Error: Call to undefined function yaml_parse_file()
Une recherche sur google me dit qu’il faut installer yaml avec pecl:
une fois installé, tu te met dans le dossier racine de ton projet dans un terminal et généralement tu tapes
composer require [package_name]
lorsque les libs supportent une installation via composer, tu le verras assez vite sur leur page de doc, exemple pour celle-ci: The Yaml Component (Symfony Docs)
composer require symfony/yaml
il va travailler et ca va te créer un dossier vendor et les fichiers composer.json et composer.lock
il suffit ensuite d’inclure le fichier « autoload.php » qui a été généré qui se charge d’inclure toutes les libs demandées et bien sur de faire le use des class voulues:
require_once __DIR__ . '/../../vendor/autoload.php';
use Symfony\Component\Yaml\Yaml;
class maClass extends eqLogic {}
moi je livre le dossier vendor avec le plugin donc il n’y a rien de plus à faire
on peut aussi ne pas le faire et installer composer sur le jeedom de l’utilisateur + installer ces libs lors de l’installation des dépendances du plugin;
je n’en vois pas l’avantage perso: ca ne prend pas énormément de place (juste des fichiers php), ce sont de toutes façons des fichiers du plugins et pas système et il n’y a jamais rien à « compiler » ou autre en fonction de la machine et au moins je suis certain de ce que je livre, pas de plantage d’installation possible dû au contexte de la box jeedom de l’utilisateur.
mais ca serait différent si/quand le core pourra gérer les dépendances composer, ca sera pour le futur.
penses aussi à mettre en place ceci pour être notifié des mises à jour de dépendances à faire (voir le plugin-template avec la config dependabot pour composer)
pour mettre à jour les dépendances manuellement, de nouveau dans un terminal: composer u
pour utiliser la lib yaml en question, le mieux est que tu lises leur doc, c’est complet
Bonjour,
Regarde si en redemarrant jeedom (en vrai apache) ca ne suffit. Perso le yaml je m’en sers sur z2m (jeezigbee) et aucun soucis j’installe php-yaml et redemarrage d’apache).
regarde le plugin z2m le fichier de packages du plugin tu as tout dedans et quasiment juste a recopier pour ton plugin. Jeedom s’occupera de l’installation et du redemarrage.