-
Notifications
You must be signed in to change notification settings - Fork 0
Feat/object config #7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: alpha
Are you sure you want to change the base?
Conversation
|
Hello |
|
@pifou25 je t’ai refais des commentaire dans la PR en question. Ça doit régler le soucis de façon plus élégante que ce que j’avais pensé au départ. |
b4b474b to
c6e5e1f
Compare
Bravo, c'est exactement ce que je voulais faire :D je ne vois pas bien la différence entre ton objet Je pense faire une nouvelle PR pour jeedom, pour ne pas mélanger avec celle sur le namespace. |
J'ai pas regardé en détail, mais je pense que ce qui change c'est que j'ai eliminé les concatenations dans la config (donc appel a toString). Par contre, pour etre bien clair, cet objet (pour le moment en tout cas) est uniquement destiné a jeedom.config.php |
| 'unfoundScenario' => array('txt' => new Trad( 'Action sur scénario impossible. Scénario introuvable - Vérifiez l\'id :', __FILE__) . ' ', 'replace' => '<label class="danger">::</label>'), | ||
| 'disableScenario' => array('txt' => new Trad( 'Impossible d\'exécuter le scénario :', __FILE__) . ' ', 'replace' => '<label class="danger">::</label>'), | ||
| 'invalidExpr' => array('txt' => new Trad( 'Expression non valide :', __FILE__) . ' ', 'replace' => '<label class="danger">::</label>'), | ||
| 'invalidDuration' => array('txt' => new Trad( 'Aucune durée trouvée pour l\'action sleep ou la durée n\'est pas valide :', __FILE__) . ' ', 'replace' => '<label class="danger">::</label>'), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@pifou25
Typiquement là, on crée l'objet, mais il est directement concatené avec .' '. Donc ca déclenche __toString() et on en reviens au meme probleme :
- appel de translate -> bdd
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
c'est quoi le but de concaténer avec .' ' à quel moment on a décidé de faire ça c'est juste pour déclencher le calcul de la traduction ou bien ? Si c'est que des espaces je vais tous les virer ça va être vite vu 👯♀️
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
J'en sais rien. C'est surement pour intégrer les espaces, y a forcément eu une raison et j'avoue, j'ai pas envie de chercher 😅
6e56009 to
acde31d
Compare
Fix duplicate position parameter in log::getDelta call (proApi)
Fix duplicate position parameter in log::getDelta call
Fix wrong variable check in scenario AJAX eqLogic validation
…e-parameter Fix scenario report theme parameter: use $options instead of $_parameters
[CI] Update PHPStan baseline
Fix PHP 8+ TypeError in cmd::formatValue() when round() receives non-…
[CI] Update PHPStan baseline
45a52e5 to
a53934f
Compare
certes c'est juste une surcouche du translate, mais non moi je l'ai appliqué partout en remplacement de la fonction |
remplace la méthode globale __(x)
a53934f to
6127534
Compare
Pourquoi la supprimer ? Si on fait ca, ca va casser tout les plugins... |
|
Oui ok alors on devra la laisser au moins pour les quelques plugins qui l'utilisent... Mais au moins le core sera propre. |
Hello @kwizer15
Je fais suite à cette discussion sur une PR du core jeedom#2910
Mon but était initialement d'utiliser l'autoloader de composer, et de là j'ai ajouté le chargement automatique des fichiers de configuration. Mais j'ai eu le problème avec
core/config/jeedom.config.phpqui invoque la traduction au travers de __() et donc la db pour avoir la configuration. Donc évidemment problème pour PHPStan.J'ai fait sans ce fichier dans la PR initiale mais j'ai essayé de le corriger de mon côté. Pour cela j'ai remplacé cette fonction par un objet Trad mais ça n'a pas marché non plus. Il semble que PHPStan introspecte l'objet et donc invoque le __toString() dès le chargement.
Pourtant j'ai testé Trad en ligne ici https://onlinephp.io/c/f7229 et ça fait bien ce que je veux.
J'ai donc été obligé d'ajouter une condition dans le code pour sauter cette valeur lors des test avec une constante
PHPSTAN_RUNNINGdéclarée dans le bootstrap du PhpStanC'est lourd et au final ça ne me convient pas. En plus, remplacer la fonction __() par
new Trad()c'était assez lourd ça touche +100 fichiers.Du coup je te soumet la PR sur ton fork pour continuer l'étude :) Tu pense que ça marcherait mieux avec l'interface ArrayAccess ?
PS: en plus sur le upstream ça fait 1 an qu'ils ne mergent plus rien en attente du passage en stable je suppose, on ferait aussi bien de préparer la next 4.6 de notre coté!