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

Contribuez / Téléchargez Sources et Outils PHP Discussion :

Blog : PhpEcho - Moteur PHP de rendu en une seule classe


Sujet :

Contribuez / Téléchargez Sources et Outils PHP

  1. #21
    Membre expert

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    7 007
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 7 007
    Points : 3 035
    Points
    3 035
    Billets dans le blog
    1
    Par défaut
    echo 'vercorshandisport.org'.DIRECTORY_SEPARATOR.'phpecho'."<br/>"; affiche vercorshandisport.org/phpecho. Ca me semble correct...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  2. #22
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 449
    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 449
    Points : 14 407
    Points
    14 407
    Billets dans le blog
    9
    Par défaut
    ça te semble correct parce que ton site tourne sous linux et que coup de bol, le séparateur de répertoires est identique au séparateur de segments d'une URL.
    va jouer au loto, mon gars
    # Dans la Création, tout est permis mais tout n'est pas utile...

  3. #23
    Membre expert

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    7 007
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 7 007
    Points : 3 035
    Points
    3 035
    Billets dans le blog
    1
    Par défaut
    Là, je sens que j'ignore quelque chose : sur le serveur, il y a bien des répertoires, donc pour moi, c'était correct. Séparateur de segments d'une URL, c'est quoi ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  4. #24
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 449
    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 449
    Points : 14 407
    Points
    14 407
    Billets dans le blog
    9
    Par défaut
    J'ai vu que tu avais plusieurs erreurs dans tes fichiers :
    Les noms sont sensibles à la casse : tu avais laissé : $page = new PhpEcho([DIR_ROOT, 'view Layout.php']); avec un L majuscule alors que ton fichier commençait avec un L minuscule
    Une erreur dans index.php : tu avais mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // ici on va chercher notre classe de moteur de rendu
    include DIR_ROOT.DIRECTORY_SEPARATOR.'vendor'.DIRECTORY_SEPARATOR.'PhpEcho'.DIRECTORY_SEPARATOR.'PhpEcho.php';
    alors que DIR_ROOT se termine déjà par un DIRECTORY_SEPARATOR.

    Quelle version de PHP sur le site ?
    # Dans la Création, tout est permis mais tout n'est pas utile...

  5. #25
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 449
    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 449
    Points : 14 407
    Points
    14 407
    Billets dans le blog
    9
    Par défaut
    Réessaie maintenant stp
    # Dans la Création, tout est permis mais tout n'est pas utile...

  6. #26
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 449
    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 449
    Points : 14 407
    Points
    14 407
    Billets dans le blog
    9
    Par défaut
    Compte tenu de la problématique de laurentSc qui bosse encore sous PHP 5.3+, j'ai mis à jour le billet de blog avec une version de PhpEcho compatible pour les anciennes versions PHP minimum 5.3
    # Dans la Création, tout est permis mais tout n'est pas utile...

  7. #27
    Membre expert

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    7 007
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 7 007
    Points : 3 035
    Points
    3 035
    Billets dans le blog
    1
    Par défaut
    Pourquoi cette magie qui fait que ça marche maintenant ?

    Version PHP du site : 5.6

    Non, mon fichier est bien Login.php (avec un L majuscule)

    J'ai enlevé DIRECTORY_SEPARATOR en trop dans index.php, mais ça marchait déjà avant.

    Tu m'as pas dit ce que c'était les séparateurs de segment dans les URLs...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  8. #28
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 449
    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 449
    Points : 14 407
    Points
    14 407
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Pourquoi cette magie qui fait que ça marche maintenant ?
    à ton avis ?

    Citation Envoyé par laurentSc Voir le message
    Non, mon fichier est bien Login.php (avec un L majuscule)
    Ben ouais p'têt, mais moi je te parlais de layout.php, faut vraiment aller chez le garagiste des yeux mon pote

    Citation Envoyé par laurentSc Voir le message
    J'ai enlevé DIRECTORY_SEPARATOR en trop dans index.php, mais ça marchait déjà avant.

    Tu m'as pas dit ce que c'était les séparateurs de segment dans les URLs...
    une URL est bâtie d'après la norme RFC3986 ou la norme RFC3987, toutes les deux décomposent une ressource internet (au sens générique URI ou IRI) en segments : scheme, host, path, port, query, fragment
    Et la norme fixe que le préfixe de certains segments est /.
    Le préfixe d'un segment query est le ?, ou d'un fragment qui est le #.
    C'est normé, yapuka suivre la norme.
    # Dans la Création, tout est permis mais tout n'est pas utile...

  9. #29
    Membre expert

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    7 007
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 7 007
    Points : 3 035
    Points
    3 035
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    à ton avis ?
    Langue au chat, et en plus, si je corrige mon erreur de nommage de layout.php, ça marche plus...

    Citation Envoyé par rawsrc Voir le message
    Ben ouais p'têt, mais moi je te parlais de layout.php, faut vraiment aller chez le garagiste des yeux mon pote
    J'ai RDV chez l'ophalmo vendredi prochain !

    merci pour ton explication sur les segments des URLs.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  10. #30
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 449
    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 449
    Points : 14 407
    Points
    14 407
    Billets dans le blog
    9
    Par défaut
    Ton souci venait du fait que le code source initial de PhpEcho n'était que pour PHP 7+ et comme tu tournes sous PHP 5.6, cela t'envoyait une page blanche car la syntaxe n'était pas compatible => plantage du parseur PHP 5.6

    C'est la raison pour laquelle j'ai posté une version compatible PHP 5.3+
    # Dans la Création, tout est permis mais tout n'est pas utile...

  11. #31
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 449
    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 449
    Points : 14 407
    Points
    14 407
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    j'ai publié le code source de PhpEcho sur mon espace Github,

    Vous noterez que j'ai légèrement amélioré la version en y ajoutant la possibilité de renvoyer directement du code html sans passer par l'inclusion d'un fichier.
    Je mettrai à jour mon billet avec cette nouvelle fonctionnalité demain et y ajoutant d'autres explications.
    # Dans la Création, tout est permis mais tout n'est pas utile...

  12. #32
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 449
    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 449
    Points : 14 407
    Points
    14 407
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Mise à jour du billet terminée : code source mis à jour et pour les explications, le paragraphe 6.1 - CODE DE RENDU SANS L'INCLUSION DE FICHIER EXTERNE a été ajouté.

    rawsrc
    # Dans la Création, tout est permis mais tout n'est pas utile...

  13. #33
    Membre expert

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    7 007
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 7 007
    Points : 3 035
    Points
    3 035
    Billets dans le blog
    1
    Par défaut
    Merci, et au fait, pourrais-tu expliquer en quoi l'existence de __ToString() permet l'utilisation de $this ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  14. #34
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 449
    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 449
    Points : 14 407
    Points
    14 407
    Billets dans le blog
    9
    Par défaut
    Salut laurentSc

    ce n'est pas la fonction __toString() qui permet l'utilisation de $this, __toString() permet de s'assurer que l'instance de la classe va bien renvoyer du texte quand c'est nécessaire au lieu d'une erreur fatale. C'est cette fonction qui permet de faire echo $page;, $page est une instance de la classe PhpEcho qui implémente la fonction magique __toString().

    L'existence de $this est directement liée aux propriétés du mécanisme d'inclusion de PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        public function __toString()
        {
            if (($this->file !== '') && is_file($this->file)) {
                ob_start();
                include $this->file;    // c'est à cette ligne de code que tout se joue : $this est dispo dans le fichier inclus
                return ob_get_clean();
            } else {
                return $this->code;
            }
        }
    En gros, il faut bien comprendre que le fichier englobé (inclus) a à sa disposition tout ce qui a été défini dans le fichier englobant (celui qui l'inclut)
    # Dans la Création, tout est permis mais tout n'est pas utile...

  15. #35
    Membre expert

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    7 007
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 7 007
    Points : 3 035
    Points
    3 035
    Billets dans le blog
    1
    Par défaut
    Je me replonge dans Phpecho maintenant.

    D'abord
    Citation Envoyé par rawsrc Voir le message
    Qu'est ce qui t'a paru dur à comprendre ?
    Justement ce que tu évoques dans le post précédent (#34), la signification de $this dans Layout.php.
    Je regarde de nouveau la version en ligne : https://vercorshandisport.org/phpecho/index.php. Tu l'avais "magiquement" fait marcher. Ce n'est plus le cas. Je me suis assuré d'avoir la version de la classe Phpecho compatible PHP 5.3+ (je l'ai rechargée) mais rien y fait. Pour info, voici le code source de la page :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  16. #36
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 449
    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 449
    Points : 14 407
    Points
    14 407
    Billets dans le blog
    9
    Par défaut
    Salut laurentSc

    ben si ça fonctionnait et que maintenant ça ne tourne plus c'est que tu y as mis les doigts. Il faut remonter tes tripatouillages un à un pour voir celui qui fait tout planter.
    # Dans la Création, tout est permis mais tout n'est pas utile...

  17. #37
    Membre expert

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    7 007
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 7 007
    Points : 3 035
    Points
    3 035
    Billets dans le blog
    1
    Par défaut
    Salut rawsrc,

    oui, je suis convaincu que j'ai introduit ce dysfonctionnement, mais n'utilisant pas d'outil de versionning, impossible de remonter jusqu'à une version qui marchait .
    Je m'en mords les doigts. Quel outil me conseilles-tu pour que cette mésaventure ne se reproduise pas ? (j'y connais rien, mais j'ai lu que ça peut être assez lourd d'utilisation)
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  18. #38
    Membre expert

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    7 007
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 7 007
    Points : 3 035
    Points
    3 035
    Billets dans le blog
    1
    Par défaut
    Finalement, je viens de retrouver (j'avais oublié que je l'avais fait) une version qui marche . Cela dit, pour me mettre à l'abri de ce genre de mésaventure, je reste intéressé par un conseil sur un outil de versionning.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  19. #39
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 449
    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 449
    Points : 14 407
    Points
    14 407
    Billets dans le blog
    9
    Par défaut
    ce n'est pas ce qui manque ^^
    En local, les mastodontes font très bien l'affaire : GitHub, GitLab, Mercurial, Apache Subversion...
    # Dans la Création, tout est permis mais tout n'est pas utile...

  20. #40
    Membre expert

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    7 007
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 7 007
    Points : 3 035
    Points
    3 035
    Billets dans le blog
    1
    Par défaut
    GitHub étant le seul nom que je connaisse, je l'ai installé. Puis j'ai lu que c'était surtout bien pour les utilisateurs de linux et que pour Windows, il valait mieux mercurial. Je l'ai donc installé aussi. Mais ça s'arrête là. J'essaye de suivre ce tuto : https://dblugeon.developpez.com/tuto...rial/intro/#LI. J'y lis
    Si vous êtes seul, vous devez initier votre dépôt mercurial. Pour cela, placez vous dans le répertoire contenant les sources à versionner désiré et tapez la commande suivante :

    Sélectionnez


    hg init
    ...
    C'est bien gentil, mais où taper cette commande ? J'ai bien mercurial qui s'est rajouté dans mon menu démarrer, mais rien pour lancer le logiciel...
    Quel outil utilises-tu, toi ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. POO en PHP : ne déclarer qu'une seule fois une classe
    Par laurentSc dans le forum Langage
    Réponses: 15
    Dernier message: 14/10/2015, 18h44
  2. Réponses: 1
    Dernier message: 06/01/2010, 10h20
  3. Mapper deux tables sur une seule classe
    Par gorgonite dans le forum Zend_Db
    Réponses: 13
    Dernier message: 30/06/2008, 14h06
  4. Une seule classe public dans un package
    Par bubulemaster dans le forum Débuter
    Réponses: 2
    Dernier message: 30/05/2008, 22h06
  5. Log d'une seule classe en mode debug
    Par Konrad Florczak dans le forum Logging
    Réponses: 5
    Dernier message: 27/09/2006, 17h08

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