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. #1
    Expert éminent

    Profil pro
    Inscrit en
    avril 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 113
    Points : 6 310
    Points
    6 310
    Par défaut [Cours - Tutoriel] Introduction au langage PHP7 par l'exemple
    Bonjour,

    J'ai mis à l'URL [https://tahe.developpez.com/tutoriels-cours/php7/] un cours intitulé [Introduction au langage PHP7 par l'exemple].

    Il aborde les thèmes suivants :

    • chap 3 : les bases du langage ;
    • chap 5 : les classes ;
    • chap 6 : les interfaces ;
    • chap 7 : les exceptions et erreurs ;
    • chap 9 : les traits ;
    • chap 10 : applications en couches ;
    • chap 12 : utilisation du SGBD MySQL ;
    • chap 16 : programmation internet ( HTTP, SMTP, POP, IMAP) ;
    • chap 17 : services web jSON, XML ;
    • chap 21 : XML ;


    Ces chapitres sont illustrés par 12 versions d’une application de calcul d’impôt qui sert de fil rouge au document :

    • chap 4 : versions 1 et 2, implémentation du calcul d’impôt avec des scripts PHP procéduraux classiques ;
    • chap 8 : version 3, implémentation du calcul d’impôt avec des classes et interfaces ;
    • chap 11 : version 4, implémentation du calcul d’impôt avec une architecture en couches ;
    • chap 13 : version 5, implémentation du calcul d’impôt avec une architecture en couches et une base de données MySQL ;
    • chap14 et 15 : versions 6 et 7, implémentation du calcul d’impôt avec une architecture en couches et une base de données PostgreSQL ;
    • chap 18 et 19 : versions 8 et 9, implémentation du calcul d’impôt avec une architecture client / serveur jSON et une base de données ;
    • chap 20 : version 10, implémentation du calcul d’impôt avec une architecture client / serveur jSON, une base de données et un serveur de cache Redis ;
    • chap 22 : version 11, implémentation du calcul d’impôt avec une architecture client / serveur XML, une base de données et un serveur de cache Redis ;
    • chap 23 : version 12, implémentation du calcul d’impôt avec une architecture web MVC (Model – View – Controller), une base de données et un serveur de cache Redis. Le serveur produit indifféremment et à la demande un flux jSON, XML ou HTML ;


    Le document est destiné à des personnes de niveau débutant ou intermédiaire en PHP.

    Il remplace un document ancien (2015) [Introduction au langage PHP5 par l'exemple] toujours disponible à l'URL [https://tahe.developpez.com/tutoriels-cours/php5/]

    Serge Tahé

  2. #2
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 5 385
    Points : 14 136
    Points
    14 136
    Billets dans le blog
    9
    Par défaut
    Salut Serge

    Merci pour le gros travail accompli parce que c'est toujours très compliqué d'organiser un tel volume de connaissances et en plus c'est un autre tour de force que d'être capable de la restituer à un public débutant. Chapeau bas l'artiste.
    J'ai une remarque à faire concernant le fait que t'aies privilégié pour le rendu l'usage de print en lieu et place de echo.

    Les deux structures du langage ne se comportent pas de la même façon et il faut tenir compte des différences.
    Il est préférable pour le rendu d'utiliser echo pour plusieurs raisons :
    - echo est un poil plus rapide que print,
    - l'écart vient du fait que print se comporte comme une fonction et renvoie toujours une valeur de retour alors qu'echo ne se content que d'afficher,
    - echo permet d’enchaîner les valeurs à afficher : echo $nom, ' ', $prenom, ' 1245 ab', 'c'; alors que print ne le permet pas (l'enchaînement est plus véloce que la concaténation qui nécessite plus d'allocation mémoire))

    Quelques examples :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $x = print 'abc';  // ici $x = 1
    // ce qui va conduire à des trucs de ce genre 
    print print print 25; // cela va afficher 2511 -> bonjour le débogage
    Enfin la notation courte <?= 'abc' ?> est juste l'équivalent de <?php echo 'abc' ?> et comme c'est une recommandation forte depuis PHP 5.4, je te conseille et à vous tous de ne pas utiliser print pour l'affichage et opter pour echo qui a été optimisé pour.
    Bref, print est a utiliser uniquement quand vous avez une excellente raison de le faire.

    ---
    Au sein d'un même script tu devrais éviter de mélanger les notations longues et courtes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $limites = array(9964, 27519, 73779, 156244, 0);
    $result = ["marié" => $marié, "enfants" => $enfants, "salaire" => $salaire] + $result;
    Dorénavant, il est préférable de privilégier la notation tableau standard à tous les langages : [ ... ] à l'ancienne array ( ... ) ; le mot clé array n'est a réserver que pour le typage stricte.


    ---
    Pour les espaces de noms, je t'invite à lire un billet sur mon blog espaces de nom et autoloader/ qui aborde principalement ce sujet, car dans ton code tu fais use \Exemples\Personne; ce qui est fortement déconseillé car la spécification du PHP précise que la structure du langage use attend toujours un chemin absolu (aucun risque de chemin relatif) en conséquence le premier \ est un pléonasme


    ---
    Dans ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // test
    // création d'un tableau d'objets Personne et dérivés
    // pour la simplicité de l'exemple, on ne gère pas les exceptions
    $groupe = array(new Enseignant("Paul", "Langevin", 48, "anglais"), new Personne("Sylvie", "Lefur", 70));
     
    // identité de ces personnes
    for ($i = 0; $i < count($groupe); $i++) {
       print "groupe[$i]=$groupe[$i]\n";
    }
    // fin
    plusieurs remarques :
    - notation longue pour array,
    - il est préférable (et de loin) d'utiliser foreach () pour parcourir intégralement un tableau
    - dans ton code, à chaque tour le moteur doit évaluer count($groupe) et ce autant de fois que de boucles : il aurait été préférable de faire for ($i = 0, $nb = count($groupe) ; $i < $nb ; ++$i) {.


    ---
    Tu dois toujours écrire explicitement la visibilité des fonctions : static function say, se contenter de la visibilité par défaut peut s'avérer risqué : public static function say.


    ---
    Dans la partie Programmation orientée objet, je n'ai pas vu de paragraphe sur le polymorphisme (vu l'heure, je suis peut-être aussi miro ^^)



    Bonne lecture à tous
    # Dans la Création, tout est permis mais tout n'est pas utile...

  3. #3
    Membre éclairé Avatar de viper1094
    Homme Profil pro
    Lycéen
    Inscrit en
    mai 2019
    Messages
    568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : mai 2019
    Messages : 568
    Points : 892
    Points
    892
    Par défaut
    Ca ne m'intéresse absolument pas, mais merci beaucoup pour le partage de savoir qui, j'en suis sur, servira à plein de monde.
    "C'est d'un ennui…"

    Shikamaru Nara

Discussions similaires

  1. [Tutoriel] Introduction au langage Python par l'exemple
    Par Djug dans le forum Général Python
    Réponses: 8
    Dernier message: 14/04/2015, 19h24

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