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 :

class_alias


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    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 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut class_alias
    Bonjour,

    je tente de "digérer" le code de PhpEcho (de rawsrc) et y a un truc qui m'intrique :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // on rend directement disponible la classe PhpEcho sur l'espace de nom global
    class_alias('rawsrc\PhpEcho\PhpEcho', 'PhpEcho', false);
    Peux-tu, STP, expliquer ce code, et notamment, pourquoi mettre rawsrc alors qu'il n'est jamais présent dans l'arborescence ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour Laurent,

    1- tu devrais arrêter de te disperser.

    Tu as déjà du mal à te concentrer sur un seul sujet, mais là, tu fais plein de trucs différents en même temps.
    • tantôt WordPress,
    • tantôt la POO
    • tantôt MVC
    • ......

    Ce n'est pas comme ça que tu apprendras quoi que ce soit, car tu vas tout mélanger.

    2- Cela dit, si on se penche sur le TUTO de rawsrc : PhpEcho : moteur de rendu PHP
    Et qu'on va à la rubrique : "6 - CAS PRATIQUE POUR LE MOTEUR DE RENDU PhpEcho"
    On voit :
    Arborescence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    www
      |---index.php              <- Point d'entrée du site, démarrage de l'environnement
    [...]
      |---vendor
      |      |---PhpEcho                
      |             |---PhpEcho.php   <- Classe du moteur de rendu
    Donc, effectivement, on est en droit de se demander pourquoi c'est "namespace rawsrc\PhpEcho;" et pas "namespace vendor\PhpEcho;".

    Et là.... je laisse la place à rawsrc qui va te répondre... (?)
    Dernière modification par Invité ; 21/11/2019 à 17h55.

  3. #3
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    Tu es en train de regarder MVC cas pratique ou PhpEcho ?
    La classe PhpEcho est sur l'espace de nom : namespace rawsrc\PhpEcho;, donc le nom pleinement qualifié est rawsrc\PhpEcho\PhpEcho; d'où l'alias à partir du nom pleinement qualifié.

    @jreaux62
    t'as oublié qu'il essaye en plus de tout le reste les tests unitaires...

    @laurentSc
    t'a mangé du lion ?
    Si tu savais la quantité de connaissances à ingurgiter que tout cela représente, t'es pas au bout de tes peines.

    dans le cas pratique, comme on va chercher directement la définition de la classe à la main :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // ici on va chercher notre classe de moteur de rendu
    include DIR_ROOT.'vendor'.DIRECTORY_SEPARATOR.'PhpEcho'.DIRECTORY_SEPARATOR.'PhpEcho.php';
    l'espace de nom n'a pas trop d'importance, par contre effectivement en cas de présence d'un autoloader basique (sans retraitement des chemins de fichiers), cela aurait été problématique et il aurait fallu :
    • soit, rajouter le dossier rawsrc pour coller à l'espace de nom
    • soit, modifier l'espace de nom en namespace vendor\PhpEcho;


    je suis allé vérifier dans le billet sur le MVC cas pratique et j'avais intégré la première modification pour que l'autoloader puisse faire son boulot :
    Nom : 2019-11-21_195134.jpg
Affichages : 87
Taille : 27,8 Ko

  4. #4
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    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 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    t'a mangé du lion ?
    Ben, oui !
    Plus sérieusement, mon idée est de mettre le paquet sur un seul sujet (la POO, pour commencer) et mettre le reste en sourdine. Comme je traite 2 sujets qui n'ont rien à voir (un perso et un pro), il se peut que j'ai quand même quelques questions sur Wordpress. Qu'en pensez-vous ?

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    @laurentSc
    Lequel de tes projet va être le support à l'apprentissage de la POO ? Si c'est le pro, je t'arrête de suite, si en plus tu as une échéance à respecter, bonne chance.
    Donc logiquement, je pense que c'est le projet perso qui va t'aider avec la POO (n'hésite pas à me corriger).

    Second point : quand tu dis essayer de digérer le code de PhpEcho, tu sous-entends quoi ? Que c'est imbitable ?
    Parce que je ne vois pas trop où est la difficulté. Une simple classe qui stocke des valeurs et les restitue sous format échappé ou pas et qui se transforme automatiquement en string quand c'est nécessaire, ce n'est pas trop compliqué à appréhender, si ?

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    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 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Merci de me répondre.

    Le projet perso, pas la peine, car depuis l'intervention de jreaux62 (été 2018), c'est devenu un site Wordpress...d'où mes questions sur ce sujet quand je souhaite faire évoluer ce site.

    Le pro, d'abord, y a pas d'échéance et l'idée est de développer un outil en PHP (POO et plus tard MVC) avec bdd MySQL. L'idée serait de lire des fichiers csv, d'alimenter une bdd avec leurs contenu (donc création ou mise à jour) et de pouvoir interroger celle-ci. Il me semble que ça peut donc faire un bon sujet, mais pour apprendre les bases, je pars sur un sujet simple : traiter en POO ce qui est demandé dans un TP sur oc.

    PhpEcho, ça ne m'a pas paru imbitable ; j'ai à peu près tout compris. Quand je dis "digérer", ça veut dire me l'approprier, donc savoir l'utiliser. Mais comme je mets la priorité sur le codage en POO, ça risque d'être pour plus tard...

  7. #7
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    laurentSc

    je suis allé voir le tuto et ben, s'il te plait, quand je vois :
    Code HTML : 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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>Mon blog</title>
    	<link href="style.css" rel="stylesheet" /> 
        </head>
     
        <body>
            <h1>Mon super blog !</h1>
            <p>Derniers billets du blog :</p>
     
    <?php
    // Connexion à la base de données
    try
    {
            $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
    }
    catch(Exception $e)
    {
            die('Erreur : '.$e->getMessage());
    }
     
    // On récupère les 5 derniers billets
    $req = $bdd->query('SELECT id, titre, contenu, DATE_FORMAT(date_creation, \'%d/%m/%Y à %Hh%imin%ss\') AS date_creation_fr FROM billets ORDER BY date_creation DESC LIMIT 0, 5');
     
    while ($donnees = $req->fetch())
    {
    ?>
    <div class="news">
        <h3>
            <?php echo htmlspecialchars($donnees['titre']); ?>
            <em>le <?php echo $donnees['date_creation_fr']; ?></em>
        </h3>
     
        <p>
        <?php
        // On affiche le contenu du billet
        echo nl2br(htmlspecialchars($donnees['contenu']));
        ?>
        <br />
        <em><a href="commentaires.php?billet=<?php echo $donnees['id']; ?>">Commentaires</a></em>
        </p>
    </div>
    <?php
    } // Fin de la boucle des billets
    $req->closeCursor();
    ?>
    </body>
    </html>
    c'est tout ce qu'il ne surtout pas faire !

    Tu mélanges dans un même script :
    • du HTML
    • du PDO
    • du SQL
    • du PHP

    en gros ton script ressemble plus à une décharge dans laquelle tu jettes tout.

    Pose autant de questions que tu veux sur la POO, le MVC, PhpEcho (tout ce qui te passe par la tête) mais ne me code pas ton site comme ça.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    ...c'est tout ce qu'il ne surtout pas faire !
    ...ton script ressemble plus à une décharge....
    @rawsrc
    Je te prierai d'être plus PRÉCIS :

    "c'est tout ce qu'il ne surtout pas faire...... car ce script n'a RIEN à voir avec la POO ou le MVC".
    Nuance.

    Sinon, ce script est parfaitement "standard" dans sa construction, et fonctionnel en l'état.
    Donc parler de "décharge" me semble exagéré...

  9. #9
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Oui jreaux62, c'est standard de procéder ainsi quand tu n'es pas dans une démarche orienté objet + MVC où la séparation des responsabilités et des tâches est fondamentale.
    C'est juste que je prépare le terrain avec laurentSc, tu le connais mieux que moi et tu sais de quoi il est capable
    Il veut progresser, c'est parfait mais la pente est ardue et va pas falloir choisir dans un moment de faiblesse une voie de facilité.

    PS : c'est que je suis allé un peu fort avec la décharge, mais bon je n'avais aucune autre métaphore sous la main

  10. #10
    Invité
    Invité(e)
    Par défaut
    C'est justement parce que je connais Laurent qu'il faut être TRÈS PRÉCIS dans ce qu'on dit/écrit.

    PAR CONTRE, tu peux LE TACLER SÉVÈRE puisqu'il va chercher un tuto sur une AUTRE SITE * au lieu d'utiliser LES TIENS !

    * Encore une bonne occasion pour Laurent de dire et faire n'importe quoi......

  11. #11
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    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 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    N'ayez crainte, je ne suis pas allé chercher sur un autre forum comment coder en POO ou MVC ; j'ai juste pensé que l'exercice qu'ils proposaient ferait un bon exercice pour essayer de mettre en œuvre ce que j'ai appris à travers les tutos de rawsrc...

    [EDIT] je n'ai même pas regardé leur code.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Pourquoi le calcul dans ce code ne fonctionne pas ?
    Par aureldelphi35 dans le forum VB.NET
    Réponses: 1
    Dernier message: 04/09/2017, 09h57
  2. Pourquoi besoin de mettre code antispam dans forum ?
    Par JeSouffreAvecLinux dans le forum Sécurité
    Réponses: 1
    Dernier message: 09/09/2009, 19h02
  3. Quel est le problème dans ce code ?
    Par Luther13 dans le forum C
    Réponses: 12
    Dernier message: 26/08/2003, 16h09
  4. Modifier un événement dans le code
    Par HT dans le forum Langage
    Réponses: 6
    Dernier message: 20/06/2003, 09h46
  5. Création multiple table paradox dans le code
    Par scarabee dans le forum C++Builder
    Réponses: 8
    Dernier message: 30/10/2002, 10h17

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