GenH.php

Un petit framework pour générer de l'HTML proprement en PHP

a marqué ce sujet comme résolu.

J'ai pas regardé le code, mais peux-tu expliquer le but/l'utilité du projet ?

victor

le but est de m'exercer à la programmation OO, et de me créer un petit framework.

Par exemple, pourquoi ça et pas un moteur de template ?

victor

Je ne sais pas, ce n'est pas fait pour remplacer un moteur de template, c'est juste une base.

Pourquoi indenter l'HTML ?

victor

Pour faire beau :D

Salut !

Comme ce projet ressemble plus à un exercice qu'a un projet avec un but réel, voilà des points à approfondir pour progresser dans la POO en PHP :

  1. Des groupes d'utilisateurs ont créés des standards de formatage et de nommage. Le groupe le plus connu, PHP-FIG, liste ses recommandations dans les PSR-1 et PSR-2. Ces standards sont de très loin les plus utilisées et si tu veux participer à du open-source, je te les recommande. Les textes peuvent sembler chiant, mais il faut que tu les lises. Si tu as du mal, il y a un outil fait pour ça : PHP_CodeSniffer. Parmi ces recommandations :
    1. Les fichiers DEVRAIENT soit déclarer des symboles (classes, fonctions, constantes, etc.) soit causer des effets secondaires (par exemple, générer des sorties, modifier paramètres .ini), mais NE DOIVENT PAS faire les deux.
    2. Les noms des classes DOIVENT être déclarés comme StudlyCaps.
    3. Les noms des méthodes DOIVENT être déclarés comme camelCase.
    4. Le code DOIT utiliser 4 espaces pour l'indentation et aucune tabulation.
  2. Le même groupe a aussi réalisé une PSR sur l'autoloading (PSR-4). Je te laisse les recommandations.
  3. La norme est d'utiliser Composer pour l'autoloading. Ça permet d'utiliser très facilement des librairies tiers et Composer gère l'autoloading (en suivant les PSR-4) comme un grand.
  4. Enfin, la clé pour une bonne librairie, c'est une bonne documentation (et une installation simple, mais ça, c'est Composer s'en occupe).

Ne prend pas ce message comme une critique, mais comme une marche pour aller plus loin dans la POO ! :)

J'ai essayé de suivre au mieux la norme PSR1. Dans le validateur, je n'ai plus que 6 erreurs car j'ai plusieurs classes dans le même fichier.

Ligne Erreur
142 Each class must be in a file by itself
142 Each class must be in a file by itself
156 Each class must be in a file by itself
183 Each class must be in a file by itself
200 Each class must be in a file by itself
217 Each class must be in a file by itself
234 Each class must be in a file by itself

J'ai également commencé à rédiger une partie de la documentation, dans le readme : https://github.com/Drulac/GenH.php/blob/master/README.md
Est-ce bien comme manière de rédiger une doc ?

PS : Vous pouvez aussi me corriger pour mauvais anglais si vous voyez une grosse tâche ;)

+1 -0

Bonjour,

Tes classes pour tes balises sont un peu étranges. Elles ressemblent toutes à ça :

1
2
3
4
5
6
7
8
class Em extends Container
    {
        public function getCode($view)
        {
            $this->setAttribut('em');
            return $this->code($view);
        }
    }

Plutôt que de créer une classe par balise HTML, pourquoi ne pas utiliser la classe container prenant un paramètre attribut dès son initialisation ?

C'est un choix personnel, pour la lisibilité. J'avais fait comme ça au début, mais c'est moins bien lisible, surtout avec la coloration syntaxique. Je réfléchi à une méthode pour réduire le contenu de ces classes, voir qu'elles soit mêmes vides.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte