Journal Tout ce qu’il faut savoir sur le langage PHP

Posté par . Licence CC by-sa.
-95
16
juil.
2018

Le langage PHP a été inventé en automne 1994 par Rasmus Lerdorf, lorsqu’il a créé ce langage, il comptait en faire une utilisation banale : garder les traces des personnes qui venaient consulter son CV sur Internet. Beaucoup d’internautes lui demandèrent ce programme, alors Rasmus Lerdorf mit en ligne en 1995 la première version de ce langage qu’il baptisa Personal Home Page v1.0, plus tard renommé Préprocesseur Hypertexte.

Le PHP est un outil puissant pour la réalisation de sites web intranet et extranet qui permet de rendre des sites web dynamiques. Mais la création de page web n’est pas la seule utilité du PHP. Sa capacité permet aussi de gérer des images, de créer des fichiers PDF (acrobat)… Tout simplement, il permet de sortir un site Internet de l’ordinaire !

Qu’apporte-t-il à votre site Internet et pourquoi utiliser PHP ?

Depuis quand existe-t-il ?

De nombreuses questions à se poser sur le PHP, nous allons tenter de répondre à vos interrogations à travers cet article…

Lire la suite :

  • # Wikipedia

    Posté par . Évalué à 10 (+10/-1).

    La page de Wikipedia donne bien plus d'information (et en plus avec beaucoup plus de précision): PHP

    Pour information, Rasmus Lerdorf baptisa le langage PHP/FI (pour Personal Home Page Tools/Form Interpreter).

  • # Pourquoi ce lien et maintenant ?

    Posté par (page perso) . Évalué à 10 (+11/-0).

    Pourquoi partager un lien qui a maintenant plus de huit ans et demie – une éternité en terme d'informatique ?

    Pour donner un repère temporel, quand l'article a été écrit, la version courante de PHP était la 5.2, il n'y avait ni trait ni espace de noms ni rien de plus moderne, et PHP 4 était déprécié depuis moins de 6 mois.

    La connaissance libre : https://zestedesavoir.com

  • # Autre lien intéressant

    Posté par (page perso) . Évalué à 4 (+4/-2).

    Presque aussi vieux, mais très intéressant également : https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/

  • # réponse aux questions

    Posté par . Évalué à -6 (+7/-15).

    Qu’apporte-t-il à votre site Internet

    de la lenteur

    pourquoi utiliser PHP ?

    Pour ralentir votre site trop rapide, pour soutenir la demande en serveurs physiques/virtuels, pour ajouter de la complexité à votre site web/appli pour être sur que votre client ne vous lachera pas du jour au lendemain, ou que votre patron ne vous virera pas

    Depuis quand existe-t-il ?

    On s'en fiche.

  • # Perte de temps

    Posté par (page perso) . Évalué à 10 (+9/-0). Dernière modification le 16/07/18 à 15:14.

    Cet article est plein d'informations qui sont complètement fausses, ou plus d'actualité depuis plusieurs années. Il faut arrêter de propager des fausses informations ! Que l'on aime PHP ou pas (c'est loin d'être le meilleur langage du monde) il faut au moins lui redonner ce qui lui revient.

    PHP est un langage interprété, c’est à dire qu’il est « traduit » par un serveur (externe) pour que la page Internet soit lisible par votre navigateur

    Ohlalalala, déjà rien qu'ici, cette phrase ne veut rien dire. Bon, pour commencer, PHP n'est plus interprété depuis sa version 7, donc quelques années, de plus avant il pouvait ne plus l'être dès lors qu'on installait APC (ce que tout le monde faisait). Tout ce qu'il y a après le mot "interprété" dans cette phrase est incompréhensible.

    En fait, j'ai arrêté de le lire ici. La personne qui a écrit cet article ne doit pas connaître grand chose ni à PHP, ni au web en général.

    En même temps, ça date de 2009. Faut arrêter ce genre de blagues à troll :)

    • [^] # Re: Perte de temps

      Posté par . Évalué à 3 (+2/-2).

      Bon, pour commencer, PHP n'est plus interprété depuis sa version 7

      Comment ça ? Tu aurais une source à me fournir pour étayer cette affirmation ?

      • [^] # Re: Perte de temps

        Posté par (page perso) . Évalué à 10 (+12/-0).

        J'ai lu le code, personnellement, et même joué avec. Il y a une phase de lexing puis de parsing, tu peux le voir notamment grâce aux fichiers de définition de la grammaire:

        Pour le lexer: https://github.com/php/php-src/blob/4887357269107ed669463c4b95bd755fbbb52490/Zend/zend_ini_scanner.l
        Pour le parser: https://github.com/php/php-src/blob/4887357269107ed669463c4b95bd755fbbb52490/Zend/zend_ini_parser.y

        Ensuite cette phase est décorrélée de la Zend engine, qui est devenue une vraie VM à part entière, qui fonctionne avec un bytecode en entrée (les OPCodes, c'est le même mot que pour les autres VM par ailleurs).

        Je pourrais aller plus loin, notamment sur les passes d'optimisation qu'il fait à la compilation, comme le Dead Code Elimination et quelques autres, sur les optimisations basées sur l'utilisation de la stack plutot que la heap faite par la VM etc…

        Pour voir le code du compilateur (partiel) basé sur l'AST produit par la phase de parsing: https://github.com/php/php-src/blob/4887357269107ed669463c4b95bd755fbbb52490/Zend/zend_compile.c

        Après pour voir tout ce qu'elle fait en terme d'optimisation, et bien faut l'analyser ce code, et là ça devient une tâche un peu plus longue que donner quelques liens.

        Toutes ces modifications ont été apportés par PHP 7 à sa sortie, c'est la grosse différence avec PHP 5.x. Pour information l'extension APC qui existe depuis tellement longtemps que j'en oublie mes mots (on l'utilisait depuis PHP 5.3 ici mais ça existe depuis plus longtemps de mémoire) apportait déjà le caching du bytecode au premier hit pour éviter d'avoir justement la phase de parsing à chaque hit. En réalité PHP n'était plus réellement interprété depuis PHP 5 car il passait déjà par la compilation en une suite d'OPCode avant l'exécution (mais à la différence de PHP 7 il n'avait pas de lexer/parser standard, du code custom à la place, pas de REGEX etc..).

        D'ailleurs chose intéressante, elle est très rapide cette VM, j'ai pas de benchmark récents à te montrer, mais bon, vu qu'à chaque version elle gagne 20% de performances brutes sur les benchmarks de Phoronix, et que déjà il y a quelques année elle se montrait plus rapide que la VM de Python (attention, no troll, je suis conscient que les benchmarks se focalisent toujours sur des algorithmes précis, et qui parfois sont mal implémentés dans tel ou tel langage) - ce qui paraît logique sur un certain nombre de cas d'utilisations parce que PHP type statiquement de plus en plus de choses, et là où le dynamisme disparaît, tout devient plus simple à exécuter - Python reste extrêmement dynamique, beaucoup plus que PHP (d'ailleurs il ressemble plus à JavaScript sur ce point).

        • [^] # Re: Perte de temps

          Posté par . Évalué à 3 (+1/-0).

          D'ailleurs chose intéressante, elle est très rapide cette VM,

          Ahhhhh :)

          et que déjà il y a quelques année elle se montrait plus rapide que la VM de Python

          Ah oui en fait non !

          • [^] # Re: Perte de temps

            Posté par (page perso) . Évalué à 1 (+1/-1). Dernière modification le 17/07/18 à 11:00.

            Ah oui en fait non !

            De mémoire sur certains benchmarks, et Python faut pas se leurrer, c'est un langage sympa mais c'est lent. Et puis de toute façon tout langage ou on peut faire du pansement de singe est à mettre à la poubelle.

  • # PHP

    Posté par . Évalué à 8 (+5/-0). Dernière modification le 16/07/18 à 15:29.

    Attention, il n’existe pas de pages qui ne contiennent que du PHP

    Tu peux avoir un script PHP qui génère du texte. Dans ce cas il n’y a pas de HTML, on pourrait dire (même si c’est pas très clair…) que la page ne contient que du PHP. Non ?

    le PHP sert à rendre le HTML moins limité, il vous permet de réaliser plus de choses,

    Là encore c’est assez bizzarement formulé… je trouve.

    qui n’étaient pas possibles avant sa création.

    Alors là par contre attention. Les pages web dynamiques existaient avant l’apparition de PHP. On parle de CGI. Le langage de prédilection pour ces scripts CGI était le Perl, un langage interprété créé en 1987.

    Cela permet par exemple d’afficher la date du jour à un endroit bien précis du visuel. On parle alors de page dynamique.

    L‘exemple est mal choisi. Pour afficher l’heure, on peut se reposer sur un script client-side, en Javascript. Pas besoin de script server-side en PHP pour ça. Il me semble qu’on ne parle pas de web dynamique lorsqu’il s’agit seulement de script côté client, bien qu’il s’agisse de contenu effectivement dynamique.

    Il s’harmonise parfaitement avec le langage HTML

    Ça c’est surtout grâce au module Apache pour PHP, qui facilite sa mise en place, en le mettant à porté du premier venu. Parce que sinon, aucun langage ne « s’harmonise » plus ou moins bien avec HTML. Des produits comme EasyPHP, qui permet de mettre en place une stack Apache/PHP/MySQL en trois clics sous Windows ont aussi pas mal participé au succès du langage PHP, àmha.

    depuis sa création il a permis une petite révolution pour les sites

    Il a mis la création de contenu web dynamique à la portée du plus grand nombre mais comme je l’ai déjà écrit plus haut, c’était déjà possible de créer du contenu dynamique avant l’apparition de PHP.

    • [^] # Re: PHP

      Posté par . Évalué à 3 (+2/-0).

      Des produits comme EasyPHP, qui permet de mettre en place une stack Apache/PHP/MySQL en trois clics sous Windows ont aussi pas mal participé au succès du langage PHP, àmha.

      J'ajouterai que les hébergements proposaient souvent PHP/MySQL. En particulier Free qui a proposé à ses débuts un hébergement PHP3/MySQL gratuit.
      A mes yeux, le succès de PHP, c'est EasyPHP couplé à des hébergements mutualisés bon marché à la fin des années 90. J'ajouterai des usines à gaz codées avec les pieds comme PHP-Nuke.

      • [^] # Re: PHP

        Posté par (page perso) . Évalué à 3 (+1/-0). Dernière modification le 16/07/18 à 18:25.

        C'est clair que le PHP du début n'était qu'un sous sous Perl. En pratique, ce langage n'aurait jamais du vraiment décoller. C'est aussi pour moi EasyPHP sous Windows qui a fait que cela a marché.

    • [^] # Re: PHP

      Posté par (page perso) . Évalué à 4 (+2/-0).

      c’était déjà possible de créer du contenu dynamique avant l’apparition de PHP.

      C'était même bien mieux en Perl. DBI existait déjà et c'était que du bonheur alors que le code PHP était rempli de mysql_*… Une véritable catastrophe ;-)

      Bref, le succès de PHP est amusant car clairement, il n'apportait techniquement rien sur Perl, au contraire (sauf que comme c'était un sous langage, son mode safe était certainement plus sur). Comme quoi l'emballage est un élément important.

      • [^] # Re: PHP

        Posté par . Évalué à 4 (+1/-0).

        Le propre de PHP, selon moi, c’est d’être totalement monolithique… du moins, ça fait déjà le café sans même aller voir du côté de PEAR.

        il n'apportait techniquement rien sur Perl,

        Il est plus accessible pour le novice en programmation. Perl est plus « beau », et plus puissant, mais PHP se contente de reposer sur des paradigmes de programmation plus basiques. PHP est plus simple. Pas de manipulation de pointeurs par exemple, on peut faire simplement des listes de listes en PHP, là où en Perl on aura des listes de références (vers des listes), la mécanique sous-jacente du passage par référence est exposée, en PHP elle est cachée. Le fait que beaucoup de choses en Perl peuvent être implicites, qu’il n’y a juste pas besoin de les écrire… c’est là une fonctionnalité super-appréciable du langage, mais faut déjà avoir un peu d’expérience en programmation pour en profiter pleinement. Àmha.

        J’ai découvert Perl sur le tard. Clairement, je regrette de ne pas avoir connu plus tôt… même si mon langage de prédilection est Python

        Ceux qui utilisent beaucoup Perl : Perl 6  ? ou on reste sur la version 5 ?

        Pour Python il faut clairement pousser la version 3 selon moi. La 2 a de grosses lacunes que la 3 corrige. Pour Perl j’ai l’impression que la 5 a encore de beau jours devant elle, me trompé-je ?

        • [^] # Re: PHP

          Posté par (page perso) . Évalué à 6 (+4/-0). Dernière modification le 16/07/18 à 23:42.

          Attention, je compare le PHP et le Perl de l'époque ;-)

          Sinon, on ne peut pas comparer Python 2 vs Python 3 avec Perl 5 vs Perl 6. Python 3 est une évolution alors que Perl 6 est un nouveau langage avec très peu de chose en commun si ce n'est les siguils et la philosophie d'être piloté par un linguiste qui aime la pluralité ;-) Les regex sont ré-inventé, la syntaxe change…

          Perl6 n'est pas encore en standard partout et la VM (oui Perl6 tourne en VM) n'est pas encore complètement optimisé. De son coté Perl5 a repris du développement il y a quelques années après un trou de presque 10 ans et pas mal de truc sympa s'y font. Il reste très performant.

          J'avoue que les machins à la Javascript ou Python ou les API pètent régulièrement, cela finit par gonfler. Perso, je suis encore sous Perl5 ou mes programmes d'il y a 15 ans tournent toujours pareil et les nouveaux profitent des nouveaux trucs. Je m'amuse sur quelques scripts Perl6 mais je ne vois pas déployer cela en production sur 200 machines utilisateurs pour le moment.

  • # Compte créé le 13 juillet...

    Posté par (page perso) . Évalué à 6 (+5/-0).

    L'objet n'est-il pas d'améliorer le classement pas les moteurs, linuxfr étant très bien classé, un lien qui pointe depuis linuxfr, ça améliore le classement.

    si c'est ça, c'est raté : un journal négatif n'apparaît pas aux robots si je ne m'abuse.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.