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. #1
    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 Fonctions et variable non reconnues dans le fichier ClassLoader.php sous ubuntu - apcu
    Bonjour,

    En vue de programmer en PHP un programme de type Modèle-vue-contrôleur ,sous ubuntu 22.04, j'ai appris dans un premier temps à créer un dossier vendor.
    A l'intérieur de ce dossier, un autre dossier composer et dans celui-ci la classe ClassLoader, 2 méthodes (acpu_fetch et apcu_add) et une variable ($hit) ne sont pas reconnus
    Le paquet php8.1-acpu est bien installé. Ce paquet apparait avec php -m.
    Voici mon fichier /etc/php/8.1/mods-available/apcu.ini:
    En pièce jointe, la configuartion de apcu dans le fichier phpinfo.php.

    Je travaille avec VSCodium.

    Une idée? Merci.Nom : Capture d’écran du 2024-01-26 14-11-43.png
Affichages : 212
Taille : 72,7 Ko

  2. #2
    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 problème cerné
    Je teste ce programme avec VSCodium et VSCode,
    lorsque je désactive l'extension "PHP Intelephense", les quatre erreurs disparaissent. Y'a-t-il un réglage à effectuer pour garder PHP Intelephense? Que vaut PHP IntelliSense par rapport PHP Intelephense?

  3. #3
    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

    C'est confus... Ton problème est donc un souci vscode qui te dit qu'une variable n'est pas définie, est-ce cela ? Sache tout d'abord qu'il ne s'agit que d'une analyse de code statique et que ton code pourrait être exécutable. Ce n'est pas parce que vscode ne parvient pas à détecter quelque chose que le code n'est pas exécutable.

    Ensuite, si c'est vscode, ce serait bien de poster le message d'erreur exact ou une capture d'écran pour peut-être aider à la compréhension.

    Sache enfin que vscode parvient parfaitement à traiter ton fichier composer.json pour autant que celui-ci existe et soit dans le dossier racine de ton projet.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  4. #4
    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
    Bonjour
    C'est confus... Ton problème est donc un souci vscode qui te dit qu'une variable n'est pas définie, est-ce cela ?
    Oui une variable $hit et deux fonctions acpu_fetch et apcu_add sont déclarées comme non reconnues.
    Si je désactive le module Intelephense, ces erreurs disparaissent. Ce serait donc peut-être cette extension qui serait en cause.
    Ensuite, si c'est vscode, ce serait bien de poster le message d'erreur exact ou une capture d'écran pour peut-être aider à la compréhension.
    Je vous joins deux captures d'écran: La portion du code ou sont affichés et les messages d'erreurs affichés par VSCodium (ce sont les même messages avec VSCode)

    Que faire por éliminer ces détection d'erreurs, alors que intelephense est activé?

    Nom : Capture d’écran du 2024-01-27 10-28-28.png
Affichages : 156
Taille : 39,2 Ko
    Nom : Capture d’écran du 2024-01-27 10-38-26.png
Affichages : 157
Taille : 96,0 Ko

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    est-il utile et possible de tester ton code dans un autre environnement ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  6. #6
    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 Test avec VSCode et phpStorm
    Bonjour,

    j'ai testé le code également avec PhpStorm. Il a aussi souligné une variable mais pas la même que celles de VSCode.
    Malgré ces soulignements, pour l'instant les 2 IDE ont fait fonctionner correctement le programmer: il s'agissait de créer une table de données avec un enregistrement.
    Voici en pièce jointe le fichier cli-config.php traité différemment par VSCode et PhpSorm. Il n'y a pas eu d'erreurs lors de l'exécution, pour l'instant.
    Voici, ce que disait laurentSc, plus haut:
    "Sache tout d'abord qu'il ne s'agit que d'une analyse de code statique et que ton code pourrait être exécutable. Ce n'est pas parce que vscode ne parvient pas à détecter quelque chose que le code n'est pas exécutable.". Cela semple tout à fait correct pour l'instant.
    Nom : Capture d’écran du 2024-01-31 10-42-29.png
Affichages : 123
Taille : 30,6 Ko
    Nom : Capture d’écran du 2024-01-31 10-44-35.png
Affichages : 124
Taille : 42,4 Ko

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    C’est pas copiable. Peux-tu utiliser l’icône pour mettre du code (#) ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  8. #8
    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
    Hello

    Sur ta première capture d'écran, tu as une variable qui est surlignée... Sais-tu où elle est déclarée ? En fait, elle ne l'est nulle part et donc l'éditeur t'en informe.

    L'analyse statique est tout à fait juste ici car il s'agit d'une variable locale à ton script.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  9. #9
    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
    Bonsoisr,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    // bin/doctrine
     
    use Doctrine\ORM\Tools\Console\ConsoleRunner;
    use Doctrine\ORM\Tools\Console\EntityManagerProvider\SingleManagerProvider;
     
    // Adjust this path to your actual bootstrap.php
    require 'public/index.php';
     
    ConsoleRunner::run(
        new SingleManagerProvider($entityManager)
    );

    VScode indique @var \Doctrine\ORM\EntityManager $entityManager
    PhpStorm la décare "undefined". On me propose par le clic gauche de la rendre "global $entityManager". J'ai testé (soulignement disparu) puis je suis revenu en arrière. C'est pas terrible, une déclaration globale?
    En effet, on retrouve la variable dans le fichier indx.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <?php
     
    require_once __DIR__ . '/../vendor/autoload.php';
     
    use App\Entity\User;
    use Doctrine\DBAL\DriverManager;
    use Doctrine\ORM\EntityManager;
    use Doctrine\ORM\ORMSetup;
     
    $paths = ['src/Entity'];
    $isDevMode = true;
     
    // the connection configuration
    $dbParams = [
        'driver'   => 'pdo_mysql',
        'host' => '127.0.0.1',
        'port' =>'3306',
        'user'     => 'root',
        'password' => 'mot_de_passe',
        'dbname'   => 'base_de_données',
    ];
     
    $config = ORMSetup::createAttributeMetadataConfiguration($paths, $isDevMode,null, null, false);
    $connection = DriverManager::getConnection($dbParams, $config);
    $entityManager = new EntityManager($connection, $config);
     
    $user = new User();
    $user->setName("Gray")
        ->setFirstname("Amanda")
        ->setUsername("Alex Pane")
        ->setPassword(password_hash('test', PASSWORD_BCRYPT))
        ->setEmail("mozefebid@nol.mg")
        ->setBirthDate(new DateTimeImmutable('1985-05-03'));
     
    var_dump($user);  //affichage sur localalhost:8000 - faire un "composer start"
     
    $entityManager->persist($user);
    $entityManager->flush(); //validation de la commande précédente*/
    le programme est simplifié. Je suis en cours de formation.

  10. #10
    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
    Les éditeurs ont raison, ta variable est donc déclarée dans index.php et pas dans le fichier que tu montres.

    Ces alertes sont des notifications d'une programmation "pas folichonne" càd que faire un require d'un script php comme tu le fais, c'est pas génial.

    On fait un require d'une classe OOP en général et pas d'un bout de script. Oui, cela s'exécute (le code fonctionne) mais sur le plan de la propreté du code et d'une approche moderne, moi on est très loin.

    Php a fortement évolué et reste malgré tout très flexible. Les éditeurs ne peuvent pas tout deviner (ta variable déclarée ailleurs) mais l'interpréteur php fera le job.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  11. #11
    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 Adaptation du code
    Je suis en formation. J'ai juste du adapté quelques lignes du programme du formateur suivant la doc (lignes 23 à 25 de l'index.php.
    Il y avait égalment un return $entitity dans l'index.php qui n'existe plus dans la nouvelle doc.
    Et j'ai repris le cli-config de la doc qui a également évolué.
    Qu'aurait-il fallu faire à la place du require?
    Pour prendre la cause du formateur, son code se complexifie au cours du temps. Dans la séance suivante, il introduit des fichiers "contrôleurs" et un fichier "routeur".

  12. #12
    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
    Je n'ai pas dit que le formateur était mauvais, il a un trajet de formation qui visiblement passe par écrire du code "à l'ancienne" et qui je l'espère vous apprendra à écrire propre plus tard.

    Comme ça, à priori, c'est étrange comme choix mais bon, c'est probablement une question de pédagogie et de déroulement de son cours.

    Propre signifie écrire des classes php, des helpers, des contrôleurs,... Avoir un seul fichier index.php comme entrée et pas de code exécutable sans qu'on l'exécute. Cette phrase est bizarre mais réfléchis à ton require index. Que se passe-t-il quand on fait ce require ? On exécute le code qui se trouve dans ce fichier. As-tu demandé d'exécuter le code ? Non. Tu as inclus un fichier et boum, du code s'est exécuté. Beurk et pas propre du tout. Ça, à mon sens, c'est du code à l'ancienne. Depuis des années on ne fait plus ça.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  13. #13
    Membre éclairé
    Homme Profil pro
    Urbaniste
    Inscrit en
    Août 2023
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Août 2023
    Messages : 386
    Points : 788
    Points
    788
    Par défaut
    Que se passe-t-il quand on fait ce require ? On exécute le code qui se trouve dans ce fichier.
    C'est très précisément sur ce mécanisme que s'appuie l'autoloader du projet composer.

    https://github.com/php-fig/fig-stand...3-side-effects

    A file SHOULD declare new symbols (classes, functions, constants, etc.) and cause no other side effects, or it SHOULD execute logic with side effects, but SHOULD NOT do both.

    The phrase "side effects" means execution of logic not directly related to declaring classes, functions, constants, etc., merely from including the file.

    "Side effects" include but are not limited to: generating output, explicit use of require or include, connecting to external services, modifying ini settings, emitting errors or exceptions, modifying global or static variables, reading from or writing to a file, and so on.

  14. #14
    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
    Tu parles de l'autoload et tu as parfaitement raison de mentionner ce point. C'est probablement l'unique exception aujourd'hui je pense.

    Merci pour avoir retrouvé la doc, je l'avais cherché lors de ma réponse sans la trouver.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  15. #15
    Membre éclairé
    Homme Profil pro
    Urbaniste
    Inscrit en
    Août 2023
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Août 2023
    Messages : 386
    Points : 788
    Points
    788
    Par défaut
    Oui l'autloader est mon point d'entrée, mais si tu lis bien, c'est plus nuancé que de dire "faire un require c'est beurk".

  16. #16
    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
    Citation Envoyé par unanonyme Voir le message
    Oui l'autloader est mon point d'entrée, mais si tu lis bien, c'est plus nuancé que de dire "faire un require c'est beurk".
    Oui, j'avais lu mais beurk quand même ;-)

    Tu as un fichier qui fait un require qui lui-même fait un require qui lui-même ... Va-y pour réussir à comprendre qui fait quoi.
    Si la variable $firstName est changé et dans le deuxième et, pourquoi pas tiens, dans le quatrième require en cascade; bonne chance pour retrouver cela.

    Au contraire, si tu codes ton point d'entrée (disons index.php) et que tu fais des requires uniquement pour charger des classes (zéro side effect donc); là, dans ton point d'entrée, tu peux écrire ton code et fait un $employee->setFirstName('John');. Un humain qui lit le code comprends ce qui se passe; zéro phénomène masqué. Dans le premier cas, le code est illisible; de le second, il l'est.

    Tu as encore raison de souligner que la doc prévoit que cela soit possible (soit code exécutable soit définition de fonctions/classes/...) mais ce n'est pas parce que c'est possible que c'est une manière propre de faire. Exemple : en 2024, en PHP 8, il est toujours possible faire des goto ! (https://www.php.net/manual/fr/contro...tures.goto.php)

    Je code en PHP depuis tant d'années que je peux dire, au vu du code qui me passe sous la main (par la force des choses; je deviens senior dans mon équipe) et du code des frameworks que j'utilise, je ne vois plus de require pour du code exécutable.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  17. #17
    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,

    je viens d'obtenir une erreur avec VSCode lorsque Intelephense est activée:
    - getName est soulignée et déclarée Undefined dans l'expression $paramType = $param->getType()->getName();.

    Nom : Capture d’écran du 2024-02-02 13-54-53.png
Affichages : 81
Taille : 23,4 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    /**
         * Resolve a build method's parameters
         *
         * @param string $controller
         * @param string $method
         * @return array
         * @throws \ReflectionException
         */
        private function getMethetodParams(string $controller, string $method): array
        {
            $methodInfos = new ReflectionMethod($controller . '::' . $method);
            $methodParameters = $methodInfos->getParameters();
     
            $params = [];
            foreach ($methodParameters as $param) {
                $paramName = $param->getName();
                $paramType = $param->getType()->getName();
     
     
                if (array_key_exists($paramType, $this->services)) {
                    $params[$paramName] = $this->services[$paramType];
                }
            }
            return $params;
        }
    }
    Le code fonctionne avec VSCode (sans Intelephense) et avec PhpStorm.

    Merci de votre aide.

    PS: C'est mon formateur qui a écrit le programme. Ce programme est en perpétuelle évolution au cours de la formation. Pas évident à suivre. Mais je comprends qu'un programme MVC ne soit pas facile à enseigner.
    Merci de votre aide.

  18. #18
    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

    Il faut que tu comprennes quelque chose d'important ici (et je l'avais mentionné plus haut) : un éditeur fait une analyse statique (=sans l'exécuter) de ton code PHP.

    Si ton code est proprement écrit (tu aurais une classe employee avec des méthodes publiques comme getFirstName()); l'éditeur pourra déterminer que cette fonction existe.

    Si tu dis que cette fonction retourne une valeur type return string;, l'éditeur saura que $age = $employee->getFirstName(); ne peut pas être correct dès lors que $age serait un chiffre.

    Tout ça, c'est possible **uniquement** lorsque le code est proprement écrit. Si getFirstName() ne dit pas ce qu'il retourne, alors $age = $employee->getFirstName() serait "autorisée" par l'éditeur.

    Si tu as des propriétés dans ta classe et une fonction magique nommée __get; l'éditeur ne pourra pas devenir de getLastname serait valide puisque cette méthode n'existe pas en tant que telle.

    Donc, je répète ce que je disais plus haut : un éditeur pourrait indiquer que telle méthode, telle variable n'existe pas alors que si tu exécutes le code; ce dernier fonctionne.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  19. #19
    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
    Citation Envoyé par samclia Voir le message
    Le code fonctionne avec VSCode (sans Intelephense) et avec PhpStorm.
    Note que cette phrase est érronée. VSCode n'exécute pas ton code, il ne fait que l'analyser et affiche des "potentielles" erreurs d'écriture du code. Juste une aide au programmeur. Le code s'exécute soit en ligne de commandes soit, plus que probablement, depuis une page web. VSCode et PhpStorm ne sont que des éditeurs/IDE.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  20. #20
    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,
    Merci pour tes réponses. Je me suis peut-être mal expirimé. Je pense avoir compris l'analyse statique: c'est l'analyse du code que fait l'IDE avant exécution.
    Alors, peut-on dire que l'analyse statique de PhpStorm et de VSCode (sans Intelephense) ne renvoient aucune erreur?
    VSCode avec Intelephense plante à l'exécution. Par contre PhpStorm et pour VSCode (sans Intelephense) exécutent correctement le code. Es-ce correct?
    Et on pourrait très bien avoir des variables ou des méthodes que VSCode analyse "undefined" en statique et un programme qui s'exécute correctement. Ce qui n'est pas le cas avec "->gerName".

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