• [^] # Re: Je n'ai rien contre ton projet

    Posté par . En réponse à la dépêche Sortie de SMI 0.9.9y. Évalué à 5. Dernière modification le 23 octobre 2012 à 15:07.

    Oui je peux tenter d’être plus précis en restant succinct.
    Ceci dit je vais tenter de faire moins de faute cette fois ci.

    1. Il y a un souci sur toutes les requêtes SQL. Il n'y a aucune protection, elles sont éparpillées à travers toute l'application, mélanger au HTML. C'est d'autant plus dommage qu'une partie du code déportes bel et bien les SQL dans des fonctions distincte.
      C'est une pratique utile dès que l'on à plusieurs layouts à gérer.
      Aussi, le coup des noms de table en constantes me pique les yeux à la lecture du code, et m'effraie quand je songe à son usage.
      Lib simple et efficace pour accéder à sa bdd Idiorm (il est souvent cité celui là) / redbean (le principe est séduisant mais à l'usage je suis plus sceptique).

    2. Il y à énormément de fichier ultra répétitif. C'est un problème récurrent chez les débutants car pour eux une page HTML (une adresse dans mon browser) == un fichier dans l'arborescence.
      De là découle diverses solutions pour s’en accommoder cahin caha.
      En général les solutions font beaucoup de copy / paste comme ici, cela n'aide pas la maintenance.
      Si tu ouvres le dossier age, puis les fichiers aff_notesc.php / aff_rescocl.php / barloc_maj.php les contenus sont pratiquement identique à 95%.
      On aurait pu faire autrement avec un front controler avec soit un fichier de config, soit des controlers indépendant. Là je peux pas en dire beaucoup plus faudrait pousser l'analyse.
      Lib simple et efficace pour ce faire Slim.

    3. Comme pour les SQL la gestion des ressources statiques types css / javascript est mélangé dans le HTML. Elles sont déclarées à l'endroit où ces ressources sont nécessaires, c'est déclaratif.
      Une manière plus astucieuse de procéder, qui requiert aussi un frontcontroler, et de procéder par injection.
      Pour tel pattern d'url (action / ce qu'il te plaira), injecter telle liste de ressource dans le HTML.
      Là je n'ai pas de lib, mais c'est relativement simple à implémenter et encore une fois cela évite les lourdeurs.

    Enfin, je m'étonne des 70 mo de l'appli. Mais voilà quelques raisons :
    - le dossier classe (equivalent de vendors/) contient la version compressé et non compressé de PHPExcel
    - le dossier install contient toutes les précédentes versions de la bases de données. Elles sont toutes non compressées. C'est dommage sachant les miracles de gzip sur le texte.

    Enfin suite, car je n'ai vu cela qu'en ouvrant les fichiers sql.
    Il y a du HTML dans la bases de données en quantité impressionnante, pas juste un b / a / p ici et là.
    Non en fait, on dirait des corps de pages entiers.
    Ou comment se compliquer la vie lors des mises à jours…

    bref quoi. Le plus important c'est que ça marche, mais de la à release un trou de sécurité ambulant et difficile à maintenir je ne sais pas si c'est un cadeau pour ces utilisateurs, et je sais qu'en tant développeur php ce n'est pas un cadeau pour moi, ni pour ce langage, ni sa réput.

    PS : j'espère ne pas vous avoir trop défoncer tes yeux avec mes fautes, lecteurs, si tel devait être le cas…
    Bah ramasses-les et puis c'est tout, je n'ai pas de SAV moi.