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

  1. #21
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Pyramidev Voir le message
    Il ne faut pas confondre :
    • la compilation, qui consiste à transformer du code d'un langage vers un autre, en général du langage machine et
    • l'analyse statique du code, qui permet de détecter des erreurs sans l'exécuter.
    Pas forcément. Certains langages sont conçus justement pour que la phase de compilation "valide" le code au maximum. Par exemple en Haskell, il n'y a pas vraiment d'analyseur statique et hlint donne uniquement des suggestions de syntaxe (ou les erreurs détectées par le compilateur).

  2. #22
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    alors je connais mieux PHP que Python, mais ce que tu décris ressemble méchamment à une compilation, quand bien même le but n'est pas de produire un exécutable...ce qui n'est d'ailleurs pas la finalité d'un compilateur, c'est d'ailleurs bien souvent la tâche d'un linker. Mais tous les codes PHP en sont pas "compilables" car c'est un langage très souple.
    Si j'en crois WikiPedia, Python "favorise la programmation impérative structurée, fonctionnelle et orientée objet. Il est doté d'un typage dynamique fort" alors que PHP "est un langage peu typé et souple et donc facile à apprendre par un débutant"...certes il a beaucoup évolué depuis ses débuts, mais il garde toute sa souplesse.
    Pour apporter un peu d'eau au moulin, il est tout à fait possible de trouver les analyseurs de codes statiques pour PHP (et c'est même recommandé d'en avoir un dans sa boite à outil). Phan et PHPStan sont les deux que je connais mais il en existe d'autres. Ces outils n’exécutent pas ni ne compilent le code PHP, PHPStan utilise les classes de Reflection (et donc marche mieux avec du code fortement typé) et Phan se base sur l'AST que PHP possède depuis sa version 7.

    PHP est certes un langage faiblement typé historiquement, mais je recommande fortement d'utiliser autant que possible les typehints dans les définitions de fonctions et méthodes ainsi que de déclarer leur type de retour, ca rend le code tellement plus lisible et maintenable. Depuis PHP7.2 le modèle objet de PHP est vraiment très complet et c'est dommage de ne pas s'en servir.

  3. #23
    Expert éminent
    Avatar de Pyramidev
    Homme Profil pro
    Développeur
    Inscrit en
    Avril 2016
    Messages
    1 471
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 471
    Points : 6 109
    Points
    6 109
    Par défaut
    Citation Envoyé par Mrsky Voir le message
    Oh, je vois qu'il y a même les types génériques et les types union.
    C'est dommage que cela implique de passer par des commentaires mais, en attendant que PHP ait des annotations standards pour gérer ces cas, ce n'est déjà pas mal.

  4. #24
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    c'est très bien que des outils cherchent à valider le code PHP, je suis pour, par contre ça reste d'une capacité limitée

    il ne voit rien à redire à ce code tout bête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php 
    
    $a = 1;
    	
    function test() {
    	 $a++;
    }
    
    echo test();
    https://phpstan.org/r/fdc76484-e22b-...7-1a7ae8018ff1

    ce même code sous Delphi me retourne 1 warning et 2 conseils

    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
    program Project1;
    
    {$APPTYPE CONSOLE}
    
    var
      a: Integer;
    
    function test(): Integer;
    var
      a: Integer; // simule l’absence du "global" en PHP
    begin
      Inc(a);
    end;
    
    begin
      WriteLn(test());
    end.
    [dcc32 Conseil] Project1.dpr(12): H2077 La valeur affectée à 'a' n'est jamais utilisée
    [dcc32 Avertissement] Project1.dpr(13): W1035 La valeur de retour de la fonction 'test' peut être indéfinie
    [dcc32 Conseil] Project1.dpr(6): H2164 La variable 'a' est déclarée mais jamais utilisée dans 'Project1'

    Cependant, de part la nature du langage, il serait difficile d'obtenir autant d'informations sur un projet PHP.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #25
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 29
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par Mrsky Voir le message
    En revanche ça ouvre la voie à un nodeJS-like pour PHP et ça c'est très cool.
    Pour être intervenu plusieurs fois sur de grand projets pour rectifier le tir après les dégâts faits par la mode NodeJS, pour moi, cette phrase sonne un peu comme: "j'ai la grippe, ensuite j'aurai le cancer, et ça c'est cool".

Discussions similaires

  1. Quel certificat après avoir travaillé pour une association?
    Par dré kam dans le forum Droit du travail
    Réponses: 1
    Dernier message: 23/07/2018, 09h01
  2. Réponses: 52
    Dernier message: 27/03/2018, 10h37
  3. Réponses: 0
    Dernier message: 20/11/2012, 16h14
  4. Réponses: 0
    Dernier message: 19/11/2012, 15h25
  5. un moyen pour supprimer un fichier après l'avoir ouvert
    Par ZeProgrammator dans le forum ASP.NET
    Réponses: 8
    Dernier message: 09/10/2009, 09h16

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