Skip to content

Fix multiple PHPStan issues level 2#3131

Closed
kwizer15 wants to merge 1 commit intojeedom:developfrom
kwizer15:feat/phpstan-fix-lvl2
Closed

Fix multiple PHPStan issues level 2#3131
kwizer15 wants to merge 1 commit intojeedom:developfrom
kwizer15:feat/phpstan-fix-lvl2

Conversation

@kwizer15
Copy link
Copy Markdown
Contributor

Description

Cette PR corrige plusieurs avertissements PHPStan niveau 2 dans le code Jeedom pour améliorer la qualité du code et la sécurité des types.

Principales corrections apportées :

  • Remplacement de static:: par self:: dans les classes DB et cache pour les propriétés statiques privées, conformément aux bonnes pratiques PHP
  • Correction des conversions de types avec des casts explicites (int) et (float) pour éviter les erreurs de type
  • Suppression de paramètres inutilisés dans les appels de méthodes (cmdColor, paramètres superflus)
  • Correction des signatures de méthodes avec les bons types de paramètres dans la documentation PHPDoc
  • Amélioration de la gestion des dates avec des corrections dans la logique de calcul de dates
  • Correction des erreurs de concaténation de chaînes dans les messages de log
  • Amélioration de la vérification des types d'objets dans les conditions

Ces modifications n'impactent pas la fonctionnalité existante mais rendent le code plus robuste et conforme aux standards de qualité PHP.

Suggested changelog entry

Correction d'avertissements PHPStan niveau 2 : amélioration de la sécurité des types et nettoyage du code

Related issues/external references

N/A

Types of changes

  • Bug fix (non-breaking change which fixes)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
    • This change is only breaking for integrators, not for external standards or end-users.
  • Documentation improvement

PR checklist

@zoic21
Copy link
Copy Markdown
Contributor

zoic21 commented Jan 30, 2026

Je suis pas sur au niveau des changement de static en self de mémoire ca pose soucis lors de l'utilisation de la classe avec plusieurs base de données.

@pifou25
Copy link
Copy Markdown
Contributor

pifou25 commented Feb 2, 2026

En effet: static permet d'étendre la classe par héritage et surcharger les méthodes / attributs, alors que self ne le permet pas. Si vous avez un cas d'usage avec plusieurs bases de données ça serait bien de le documenter, on pourrait ajouter un TU pour le vérifier. Sinon à l'inverse self est évalué à la compilation (vs au runtime pour static) c'est sans doute mieux pour l'utilisation d'une unique bdd, ce qui est notre cas à tous.

source

@Salvialf Salvialf changed the base branch from alpha to develop March 31, 2026 18:11
@kwizer15 kwizer15 force-pushed the feat/phpstan-fix-lvl2 branch from a7fb3ee to ddfd571 Compare April 16, 2026 20:47
@Mips2648
Copy link
Copy Markdown
Collaborator

Bonjour,

Je souhaite qu'on puisse débloquer cette PR et la clôturer ou la merge, mais on ne peut pas garder des PR ouvertes indéfiniment.
Pour cela, je propose de ne garder que ce qui est "évident" et sans risque dans l'immédiat et de reporter à une prochaine version le reste

Donc à supprimer de cette PR:

  • Remplacement de static:: par self:: dans les classes DB et cache pour les propriétés statiques privées, conformément aux bonnes pratiques PHP

  • Correction des conversions de types avec des casts explicites (int) et (float) pour éviter les erreurs de type

  • Amélioration de la gestion des dates avec des corrections dans la logique de calcul de dates

A garder:

  • Suppression de paramètres inutilisés dans les appels de méthodes (cmdColor, paramètres superflus)

  • Correction des signatures de méthodes avec les bons types de paramètres dans la documentation PHPDoc

Points que je n'ai pas retrouvé (donc je dirais à ne pas garder pour l'instant):

  • Correction des erreurs de concaténation de chaînes dans les messages de log

  • Amélioration de la vérification des types d'objets dans les conditions

De manière générale, je suggère d'y aller petit à petit dans ce genre de modifications, d'avoir des PR avec un scope beaucoup plus restreint sinon on arrivera pas à faire progresser celles-ci.

Donc ne pas re-soumettre une PR qui adresse tous les points restants (ni 5 différentes d'un coup), mais une à la fois avec la prochaine "priorité" dans la liste; sinon c'est trop compliqué de trouver les bonnes personnes qui vont reviews

@kwizer15 est-ce que cela te convient? peux-tu adapter la PR en conséquence?
merci

@kwizer15
Copy link
Copy Markdown
Contributor Author

kwizer15 commented Apr 17, 2026 via email

@Mips2648 Mips2648 closed this Apr 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants