PHP encore et toujours

L'éléphant, Nantes, France, juil. 2012
L’éléphant

Toujours en train de m’interroger sur la direction à prendre pour le code de Dotclear — avec en tête l’idée de me rapprocher de ce que fait JcDenis sur la branche namespace.

En particulier, la présence du code de protection en début de fichier me laisse un peu perplexe, spécialement pour ceux qui ne contiennent que la définition d’une ou plusieurs classes1 :

if (!defined('DC_RC_PATH')) {
    return;
}

Quand il y a du code direct — ce qui me gêne aussi mais j’y reviendrai à un moment ou à un autre je pense — je peux comprendre qu’on cherche à éviter l’inclusion directe, mais sur la seule définition de classe, non, je ne vois pas.

Peut-être qu’un sorcier de la sécurité pourrait m’éclairer sur ce point ?

Cela dit, avoir du code hors classe dans ces fichiers n’est pas non plus recommandé, puisque ça impose de forcer l’inclusion via un require ou require_once et on sort de l’usage de l’autoloader ! Il va falloir que je m’en occupe une fois que j’aurais fini de faire le tour du code existant2.

PS : J’ai regardé les statistiques fournies par Github sur le dépôt Dotclear et je constate ceci pour la distribution des langages utilisés :

  • JavaScript, 37.7% : jQuery et CKeditor en force :-)
  • PHP, 33.3% : La base côté serveur
  • HTML, 16.9% : Les templates et les thèmes
  • CSS, 8.8% : Les thèmes et le look de l’administration
  • SCSS, 3.0% : Idem que ci-dessus
  • Shell, 0.1% : De quoi construire des releases
  • Other, 0.2% : Probablement les fichiers de traduction, en grande partie

PHP n’est pas majoritaire, étonnant non ?


  1. D’ailleurs il serait bienvenu que je découpe ces fichiers pour ne conserver qu’une classe par fichier, ça fait partie des bonnes pratiques (et probablement du PSR, je n’ai pas vérifié) ↩︎

  2. J’ai justement poussé un commit ce matin à ce sujet :-) ↩︎

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/15468

Haut de page