SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

288 Plugins, 197 contribs sur SPIP-Zone, 184 visiteurs en ce moment

Accueil > Documentation > Tutoriaux pour le code de SPIP > Archives tutoriaux code SPIP > La genèse du nouveau compilateur > Un compilateur à critère de boucles incluant du PHP et toute table SQL (...)

Un compilateur à critère de boucles incluant du PHP et toute table SQL (V7)

Archive historique

9 mai 2004 (Date de rédaction antérieure : 9 mai 2004). – par Déesse A.

Ceci est une archive périmée mais qui reste intéressante, parfois autant pour l’article que les commentaires associés.

Remplacement d’une partie du noyau Spip pour étendre son expressivité et augmenter ses performances. Comprend aussi, en option, un mécanisme détruisant automatiquement la plupart des caches rendus obsolètes par une modification dans un article, une rubrique, une brève ou un forum.

Le compilateur de squelettes ici présenté est l’aboutissement d’une travail de 9 mois décrit régulièrement sur ce site (voir le dernier bulletin de santé). On se contente ici d’en signaler les dernières nouveautés.

Le présent compilateur permet donc d’utiliser la balise BOUCLE sur d’autres tables SQL que les tables standards de Spip (par exemple {champs_table_interne=#CHAMP_TABLE_EXTERNE})
pour autant que ces tables soient décrites par un tableau PHP, dont on trouvera
des exemples dans inc_serialbase (et il suffit de rajouter le nom de cette table dans la liste des tables contenue dans ce même fichier pour
qu’elle soit automatiquement déclarée à la réinstallation de Spip). Mais de plus,
on trouvera dans le fichier tablextra.php (à installer impérativement dans ecrire/) un script qui génère automatiquement le formulaire de remplissage des entrées de cette table, et qui la remplit lorsque le formulaire est retourné. On lui donne dans l’URL le nom de la table et le fichier php qui contient sa description.
Ainsi :

tablextra.php?table=spip_breves&file=inc_serialbase

provoquera la construction d’un formulaire de saisie fonctionnellement proche
de ecrire/breve_edit et traitera le retour du formulaire comme
ecrire/breve.

D’autre part, il est possible de référencer certaines variables PHP, en écrivant {titre=$titrevoulu}. Les variables acceptées dans un critère sont celles transmises dans l’URL
ou dans la liste des variables de la balise INCLURE lorsqu’il s’agit d’un squelette
inclus. Ainsi, avec le critère ci-dessus dans un squelette nommé partitre.html, on peut appeler par http partitre.php3?titrevoulu=Un compilateur à critère de boucles incluant du PHP et toute table SQL et voir apparaître l’article portant ce titre. Cette fonctionnalité supplémentaire est assurée au moment de l’exécution du squelette, ce qui n’ajoute aucune passe
supplémentaire en PHP (rappelons qu’au contraire ce compilateur ramène à une seule le nombre de passe PHP lorsque le squelette et les balises utilisées n’en contiennent pas).

Les précédentes versions de ce compilateur s’accompagnaient d’un système de cache à travers MySQL. Ayant appris que plusieurs sites Spip n’avaient pas leur interprète PHP sur la même machine que le serveur SQL, et ayant découvert que
PHP disposait de la primitive flock, cette nouvelle version du cache revient à une stratégie de mise en cache par le système de fichiers, dans le répertoire CACHE. Le recours à flock garantit une gestion correcte des accès concurrents, sans page disparaissant inopinément et sans processus calculant simultanément la même chose. Le répertoire est à nouveau organisé en 16 sous-répertoires nommés par un chiffre hexadécimal,
toutefois le nom des fichiers est différent (c’est le pur MD5 déduit de l’URL,
son charcutage par la version standard pouvant poser problème).

Le système d’invalidation automatique des caches obsolètes, présenté dans les articles précédents, fait appel au serveur SQL
mais peut être désactivé si les sites à serveur SQL distant perçoivent effectivement une dégradation des performances (je serai curieux d’avoir des mesures).
En dehors du Tar de tout le compilateur, figure donc un fichier optionnel invalideur.php3 gérant les appels au serveur SQL pour mémoriser les dépendances des caches. Si on n’installe pas ce fichier dans ecrire/, on aura un gestionnaire de cache comparable à celui du Spip standard (mais déjà avec une gestion plus perfomante).
Si on l’installe, il faut alors supprimer le fichier inc_connect.php3, et procéder comme si on installait une nouvelle version de Spip, afin de déclarer au serveur SQL les tables supplémentaires.

Le Tar est une collection de fichiers remplaçant ceux de la version 1.7 :
j’attends la stabilisation de la 1.7.2 pour converger.

Bonne expérimentation à tous.

Dernière modification de cette page le 23 juin 2007

Retour en haut de la page

Répondre à cet article

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Refonte de l’identité graphique

    10 juillet – 31 commentaires

    Lors de la SPIP Party 2017 à Toulouse, un nouveau contributeur est venu nous présenter son travail sur une refonte du logo. Au delà de la refonte du logo, c’est une toute nouvelle identité graphique pour SPIP que Jordan nous propose. Voici une (...)

  • Enluminures typographiques V3

    25 juillet 2009 – 185 commentaires

    Les Enluminures typographiques V3 permettent d’ajouter au Porte plume les raccourcis typographiques présents dans le Plugin Barre Typographique Enluminée. C’est une extension du PortePlume. Pour la documentation d’usage, se reporter à celle du (...)

  • LinkCheck : vérificateur de liens

    13 février 2015 – 94 commentaires

    Ce plugin permet de chercher et tester l’ensemble des liens présents dans les objets. Vous pourrez donc en quelques clics connaître les liens brisés ou défectueux qui se sont immiscés dans le contenu de votre site SPIP. La vérification s’effectue en (...)

  • Serveur HTTP abstrait

    25 novembre 2013 – commentaires

    Un plugin-outil pour aider les développeurs à implémenter des API orientées REST, basées sur les méthodes HTTP (get, post, put, delete). Ce plugin a pour but premier de normaliser des URL que l’on pourra appeler pour manipuler les données du site. À (...)

  • Agenda Fullcalendar facile

    29 octobre 2016 – 33 commentaires

    Dans un précédent article, nous expliquions comment afficher un agenda Fullcalendar sur son site avec le plugin agenda. Cependant, ceci nécessite des manipulation de squelettes, ce qui n’est pas toujours évident lorsqu’on débute. La présente (...)

Ça spipe par là