Chemin principal : Accueil > SPIP > Squelette > Pourquoi ne pas mettre de PHP dans un squelette, sauf exception

Autres chemins : (Aller directement au contenu de l'article)

  • Accueil > SPIP > Balise > Pourquoi ne pas mettre de PHP dans un squelette, sauf exception
  • Accueil > SPIP > Boucle > Pourquoi ne pas mettre de PHP dans un squelette, sauf exception
  • Accueil > SPIP > Filtres > Pourquoi ne pas mettre de PHP dans un squelette, sauf exception
  • Accueil > SPIP > PHP > Pourquoi ne pas mettre de PHP dans un squelette, sauf exception
  • Accueil > SPIP > SQL > Pourquoi ne pas mettre de PHP dans un squelette, sauf exception

Pourquoi ne pas mettre de PHP dans un squelette, sauf exception

vendredi 10 décembre 2010, mise à jour lundi 9 février 2015, par Maïeul
Suivre la vie du site RSS 2.0 Forum

Je tombe régulièrement sur des squelettes, faits par des gens venant du monde PHP, qui sont pleins de PHP.

Voici quelques bonnes raisons de ne pas faire cela. Et puis aussi des pistes sur comment s’en passer.

Raison 1 : On ne profite pas du cache de SPIP

SPIP dispose d’un système de cache, qui évite de refaire trop souvent des calculs, et donc accélère les pages. Les parties PHP d’un squelette SPIP ne sont pas soumis à ce système, du coup on perd un des avantages de SPIP.

Raison 2 : C’est illisible

Bien souvent, pas toujours, ces « squelettes » sont illisibles, car le code PHP n’est pas bien structuré. Ce n’est pas toujours le cas, mais très souvent. Je pense que les personnes qui utilisent cela « bidouillent » car ils n’arrivent pas à faire ce qu’ils veulent en SPIP. Bien sûr, on pourrait imaginer un squelette SPIPHP lisible, mais je n’en ai jamais vu.

Raison 3 : Ce n’est pas optimisé

Il m’est arrivé de voir des requêtes SQL directement dans un squelette SPIP ! Alors même que SPIP est un méta-langage de requêtes SQL, qui les optimise automatiquement. J’ai vu par exemple des appels via mysql_query() à des champs qui ne seront jamais utilisés dans la page. SPIP lui n’appel que les champs réellement utiles (ceux qu’on insère dans la page avec #CHAMP).

Raison 4 : On ne profite pas de la souplesse des boucles de SPIP

Les boucles de SPIP possèdent des ressources insoupçonnées : récursivité des requêtes, requêtes imbriquées. Certe il est possible de faire cela en SQL / PHP, mais pourquoi ré-inventé la roue, d’autant plus que SPIP, la lecture sera plus claire.

Raison 5 : On ne profite pas de SPIP

Et oui, SPIP c’est prévu pour pouvoir faire directement les requêtes SQL dans la « trame », dans le « moule » de l’affichage souhaité. Si on en profite pas, alors pourquoi prendre SPIP et pas un autre CMS ?

Une exception : pour gérer certains élèments de session

Toute règle à ses exceptions. C’est le cas de la présente règle. On lira un article qui explique pourquoi, pour gérer les sessions, mettre du PHP dans certains squelettes peut-être une solution.

Comment faire

Ceci n’est pas exhaustif, mais je tenterai de donner quelques indications pour les gens venant du monde PHP pour se « convertir » en SPIP.

Voilà, avec ça vous avez les bases pour ne plus mettre de PHP dans vos squelettes (bien sûr, il faut lire les liens ! Ceci n’est pas un tutoriel).

P.-S.

Si d’autres SPIPeurs voient des bonnes raisons, ne pas hésiter à les signaler.

Vos commentaires

  • Le 17 décembre 2013 à 15:16, par Marion En réponse à : Pourquoi ne pas mettre de PHP dans un squelette

    Bonjour,

    Juste une petite remarque sur la Raison 4 : On ne profite pas de la souplesse des boucles de SPIP > « Certe il est possible de faire cela en SQL / PHP, mais pourquoi ré-inventé la roue, » Cette réflexion me laisse un peu perplexe > n’est-ce pas SPIP qui a ré-inventé une syntaxe ? N’est-ce pas du PHP dans le cœur de SPIP qui décode cette syntaxe ?

    Je ne doute pas de l’efficacité et de l’intérêt des boucles SPIP mais on ne peut pas dire que c’est le PHP qui ré-invente la roue !

  • Le 17 décembre 2013 à 15:21, par Maïeul En réponse à : Pourquoi ne pas mettre de PHP dans un squelette

    quand je parlais de réinventer la route, c’est en ce qui concerne les requetes imbriqués et la récursivité pour du MySQL : le faire en PHP, c’est passer à côté des apports de SPIP.

    Ce n’est donc pas PHP qui réinvente la roue, mais la personne qui s’amuse à coder en PHP ce qu’on peut faire en natif SPIP, et qui du coup refait le travail des dev.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

À propos

Titulaire d’un doctorat en théologie et d’un doctorat en histoire, sous la direction conjointe de Frédéric Amsler et d’Élisabeth_Malamut, je commence à partir du 1er août 2017 un travail d’édition critique des Actes de Barnabé.

Dans le cadre de la rédaction de mon mémoire de master puis de ma thèse de doctorat, j’ai été emmené à utiliser LaTeX, et j’ai donc décider de partager mes techniques. En effet, au cours de mes premiers apprentissages, j’ai découvert que les ressources indiquant les outils pour l’utilisation de LaTeX en sciences humaines étaient rares. Ceci m’a conduit à maintenir ou créer plusieurs packages LaTeX et à donner plusieurs formations.

Par ailleurs, je suis membre actif de la communauté SPIP, au sein de laquelle j’administre le site Spip-Contrib. Je propose sur ce site quelques notes sur SPIP, en général à destination de webmestre.

Il m’arrive également de faire un petit peu de Python, de temps en temps.

Enfin, je tiens un blog de réflexions politiques et religieuses.

Maïeul