IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Fonctions et variable non reconnues dans le fichier ClassLoader.php sous ubuntu - apcu


Sujet :

Langage PHP

  1. #21
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2022
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2022
    Messages : 46
    Points : 18
    Points
    18
    Par défaut
    J'ai refait des essais, ce matin . J'ai juste rechargé Intelephense, et le programme fonctionne à nouveau. Par contre, getName() est toujours souligné.

  2. #22
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 757
    Points : 2 991
    Points
    2 991
    Par défaut
    Bonjour

    Citation Envoyé par samclia Voir le message
    J'ai refait des essais, ce matin . J'ai juste rechargé Intelephense, et le programme fonctionne à nouveau. Par contre, getName() est toujours souligné.
    Que dire de plus... relis-moi; j'ai déjà expliqué pourquoi.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  3. #23
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2022
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2022
    Messages : 46
    Points : 18
    Points
    18
    Par défaut
    Si le code est mal écrit, l'IDE peut être perdu et ne pas pouvoir définir la méthode incriminée. Mais ce n'est pas pour cela que le code ne pourra être exécuté. Donc le code de la méthode " getMethetodParams" serait mal écrit?

  4. #24
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2022
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2022
    Messages : 46
    Points : 18
    Points
    18
    Par défaut
    Un autre formateur m'a indiqué de préciser que $Param est de type ReflectionParameter. Les
    soulignements ont disparus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     /** 
      * @var ReflectionParameter $param 
      */
    foreach ($methodParameters as $param) {
       $paramName = $param->getName();
       $paramType = $param->getType()->getName();
       if (array_key_exists($paramType, $this->services)) {
          $params[$paramName] = $this->services[$paramType];
       }
    }

  5. #25
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 757
    Points : 2 991
    Points
    2 991
    Par défaut
    Voilà, c'est ce que je disais, il faut que l'éditeur puisse comprendre ton code et pour cela il faut l'aider.

    Il n'exécute pas le code, Il le lit uniquement. Il ne peut pas deviner le type complexe d'une variable, il faut le lui dire, c'est ce que tu as fais.

    Sous PHP 8, il est à mes yeux, de développeur strict et donc sévère, assassin de ne pas déclarer le type de ses variables, le type retourné par une fonction, etc. Nous sommes en 2024, nous avons un langage PHP de plus en plus typé et c'est heureux. C'est une aberration de continuer à programmer "sale" dès lors que c'est un nouveau code et pas du legacy qui doit encore tourner sur des serveurs d'il y a 15 ans ou plus.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  6. #26
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 321
    Points : 642
    Points
    642
    Par défaut
    Peut-être une piste :
    Avant PHP 7.1, la méthode getType() appelée sur l'objet ReflectionParameter (param->getType() dans le code proposé) retournait un objet de type ReflectionType qui ne possède pas de méthode getName().
    Après PHP 7.1, cette méthode peut retourner un objet de type ReflectionNamedType qui possède bien une méthode getName().
    https://www.php.net/manual/fr/class.reflectiontype.php

    Si tu as plusieurs interpréteurs PHP installé sur ton poste, vérifie dans les paramètres de ton éditeur que tu utilises le même exécutable php que celui utilisé pour exécuter ton code :
    - https://code.visualstudio.com/docs/languages/php
    - https://www.jetbrains.com/help/phpst...hp-interpreter

  7. #27
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2022
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2022
    Messages : 46
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    j'ai bien les même versions de php sur VSCodium et sur ubuntu
    Sur VSCodium, c'est bien la version 8.1.2 de php qui est configurée.
    Nom : Capture d’écran du 2024-02-21 17-47-09.resized.png
Affichages : 38
Taille : 25,8 Ko
    et php -v donne:
    Nom : Capture d’écran du 2024-02-21 17-47-39.resized.png
Affichages : 36
Taille : 56,0 Ko

  8. #28
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2022
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2022
    Messages : 46
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par cavo789 Voir le message
    Voilà, c'est ce que je disais, il faut que l'éditeur puisse comprendre ton code et pour cela il faut l'aider.

    Il n'exécute pas le code, Il le lit uniquement. Il ne peut pas deviner le type complexe d'une variable, il faut le lui dire, c'est ce que tu as fais.

    Sous PHP 8, il est à mes yeux, de développeur strict et donc sévère, assassin de ne pas déclarer le type de ses variables, le type retourné par une fonction, etc. Nous sommes en 2024, nous avons un langage PHP de plus en plus typé et c'est heureux. C'est une aberration de continuer à programmer "sale" dès lors que c'est un nouveau code et pas du legacy qui doit encore tourner sur des serveurs d'il y a 15 ans ou plus.
    Les vidéos du formateur datent un petit peu. Il avait sur son PC, PHP7 et PHP8. Il a travaillé sous PHP7 pendant les sept premières vidéos et a proposé une présentation des nouveautés de PHP8 dans la dernière vidéo. Je n'ai pas compris cette démarche car les participants à ces vidéos en direct étaient déjà en PHP8, pour certains. De son côté son IDE ne déclarait aucune erreur (pour getName()). Depuis quel version de PHP, peut-on déclarer le type de ses variables?

  9. #29
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 757
    Points : 2 991
    Points
    2 991
    Par défaut
    Avec précision je n'en sais rien mais déjà sous php 7.x (https://www.php.net/manual/fr/langua...clarations.php).

    J'ai quand même des doutes sur ton formateur, c'est un gars qui n'est pas très strict et pas très attaché à enseigner la bonne façon de programmer. Il devrait repasser son certificat d'aptitude.

    Que diable ! Comment peut-on ne pas typer ses variables ? 😉

    Parle lui de Rectorphp, s'il ne connaît pas, fuis ses cours 😅

    Note : que son IDE n'affiche pas d'erreurs ne veut strictement rien dire. Exempt de toutes extensions, vscode (un éditeur ici) ne verrait rien lui non plus.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  10. #30
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2022
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2022
    Messages : 46
    Points : 18
    Points
    18
    Par défaut
    Ce n'est pas mon formateur référent et je ne peux donc pas le contacter. On a accès à des "lives" en replay, sur différents sujets (au libre choix).
    Ce que j'aurais au moins retenu, c'est:
    - le typage est indispensable pour adopter une bonne pratique en PHP
    - être prudent vis à vis des informations fournies par les IDE.
    Merci pour ton accompagnement.

Discussions similaires

  1. [PHP 5.4] Variables non lues dans le fichiers routes.xml
    Par MrAlexan14 dans le forum Langage
    Réponses: 15
    Dernier message: 16/05/2014, 19h22
  2. Variable non reconnue dans une boucle
    Par Runsh63 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/11/2011, 10h33
  3. copie d'une variable non reconnue dans une fonction
    Par paragoge dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 27/10/2009, 13h30
  4. Réponses: 2
    Dernier message: 15/12/2008, 18h04
  5. variable non reconnue dans une requête sql
    Par sanatou dans le forum C++
    Réponses: 3
    Dernier message: 13/12/2006, 17h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo