Browse Source

Encore une amélioration à la gestion du cache des metas: le fichier n'est pas détruit mais seulement anti-daté. Spip le reconstruira lorsqu'il verra qu'il est anti-daté, mais cela permet aux informations considérées comme pérennes d'être accessibles même lorsque la base ne l'est pas pour une raison (panne) ou pour une autre (accès conditionné par la base elle-même). Cette stratégie tempère le défaut d'un cache qui ne fait pas dans le détail des meta (on n'est pas au niveau du Hard, faut faire avec) et pourrait encore être améliorée: les appels de lire_meta() provoquent une relecture complète SQL, c'est excessif (quelques uns sont éliminés avec ce dépot).

Le fichier inc/meta étant à présent systématiquement chargé dans inc/utils, toutes ses inclusions disparaissent, ainsi que deux appels à l'antique lire_meta().
2.0
Committo,Ergo:sum 16 years ago
parent
commit
4adad4632c
  1. 2
      ecrire/action/activer_plugins.php
  2. 1
      ecrire/action/configurer_previsualiseur.php
  3. 1
      ecrire/action/editer_article.php
  4. 1
      ecrire/action/export_all.php
  5. 1
      ecrire/action/ical.php
  6. 1
      ecrire/action/regler_moderation.php
  7. 1
      ecrire/action/tester.php
  8. 1
      ecrire/action/tester_taille.php
  9. 1
      ecrire/balise/formulaire_signature.php
  10. 1
      ecrire/base/convert_sql_utf8.php
  11. 1
      ecrire/base/convert_utf8.php
  12. 2
      ecrire/base/import_all.php
  13. 3
      ecrire/configuration/reducteur.php
  14. 2
      ecrire/exec/admin_plugin.php
  15. 1
      ecrire/exec/config_contenu.php
  16. 2
      ecrire/exec/config_fonctions.php
  17. 2
      ecrire/exec/configuration.php
  18. 1
      ecrire/exec/convert_sql_utf8.php
  19. 1
      ecrire/exec/convert_utf8.php
  20. 2
      ecrire/exec/export_all.php
  21. 1
      ecrire/genie/maintenance.php
  22. 1
      ecrire/genie/optimiser.php
  23. 2
      ecrire/inc/acces.php
  24. 1
      ecrire/inc/actions.php
  25. 1
      ecrire/inc/admin.php
  26. 1
      ecrire/inc/config.php
  27. 1
      ecrire/inc/drapeau_edition.php
  28. 1
      ecrire/inc/export.php
  29. 1
      ecrire/inc/forum_insert.php
  30. 1
      ecrire/inc/genie.php
  31. 1
      ecrire/inc/import.php
  32. 1
      ecrire/inc/invalideur.php
  33. 1
      ecrire/inc/lang.php
  34. 12
      ecrire/inc/meta.php
  35. 1
      ecrire/inc/plugin.php
  36. 2
      ecrire/inc/rubriques.php
  37. 2
      ecrire/inc/utils.php
  38. 4
      ecrire/install/etape_4.php
  39. 2
      ecrire/install/etape_ldap5.php
  40. 1
      ecrire/public/cacher.php

2
ecrire/action/activer_plugins.php

@ -33,7 +33,7 @@ function enregistre_modif_plugin(){
ecrire_plugin_actifs($plugin);
// Chaque fois que l'on valide des plugins, on memorise la liste de ces plugins comme etant "interessants", avec un score initial, qui sera decremente a chaque tour : ainsi un plugin active pourra reter visible a l'ecran, jusqu'a ce qu'il tombe dans l'oubli.
$plugins_interessants = @unserialize(lire_meta('plugins_interessants'));
$plugins_interessants = @unserialize($GLOBALS['meta']['plugins_interessants']);
if (!is_array($plugins_interessants))
$plugins_interessants = array();

1
ecrire/action/configurer_previsualiseur.php

@ -12,7 +12,6 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/meta');
// http://doc.spip.org/@action_configurer_previsualiseur_dist
function action_configurer_previsualiseur_dist() {

1
ecrire/action/editer_article.php

@ -232,7 +232,6 @@ function instituer_article($id_article, $c, $calcul_rub=true) {
$t = strtotime($date);
$p = @$GLOBALS['meta']['date_prochain_postdate'];
if ($t > time() AND (!$p OR ($t < $p))) {
include_spip('inc/meta');
ecrire_meta('date_prochain_postdate', $t);
}
}

1
ecrire/action/export_all.php

@ -12,7 +12,6 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/meta');
include_spip('inc/export');
include_spip('inc/minipres');

1
ecrire/action/ical.php

@ -15,7 +15,6 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/lang');
include_spip('inc/texte');
include_spip('inc/charsets');
include_spip('inc/meta');
include_spip('inc/acces');
// avec le nouveau compilateur tout ceci me semble faisable en squelette.

1
ecrire/action/regler_moderation.php

@ -33,7 +33,6 @@ function action_regler_moderation_dist()
$statut = _request('change_accepter_forum');
spip_query("UPDATE spip_articles SET accepter_forum='$statut' WHERE id_article=". $id_article);
if ($statut == 'abo') {
include_spip('inc/meta');
ecrire_meta('accepter_visiteurs', 'oui');
}
include_spip('inc/invalideur');

1
ecrire/action/tester.php

@ -11,7 +11,6 @@
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/meta');
// Tester nos capacites
// http://doc.spip.org/@action_tester_dist

1
ecrire/action/tester_taille.php

@ -11,7 +11,6 @@
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/meta');
include_spip('inc/headers');

1
ecrire/balise/formulaire_signature.php

@ -170,7 +170,6 @@ function reponse_confirmation($var_confirm = '') {
$confirm = _T('form_pet_signature_validee');
// invalider les pages ayant des boucles signatures
include_spip('inc/invalideur');
include_spip('inc/meta');
suivre_invalideur("id='varia/pet$id_article'");
}
}

1
ecrire/base/convert_sql_utf8.php

@ -17,7 +17,6 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
function base_convert_sql_utf8_dist($titre, $reprise=false)
{
include_spip('inc/meta');
ecrire_meta('convert_sql_utf8','oui','non');
echo install_debut_html($titre);

1
ecrire/base/convert_utf8.php

@ -55,7 +55,6 @@ function base_convert_utf8_dist($titre, $reprise=false)
'spip_messages' => 'titre'
);
include_spip('inc/meta');
if (!$reprise) convert_utf8_init($tables_a_convertir);
echo install_debut_html($titre);

2
ecrire/base/import_all.php

@ -14,7 +14,6 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('base/serial');
include_spip('base/auxiliaires');
include_spip('inc/meta');
// par defaut tout est importe sauf les tables ci-dessous
// possibiliter de definir cela tables via la meta
@ -27,7 +26,6 @@ if (isset($GLOBALS['meta']['IMPORT_tables_noimport'])){
}
}
else{
include_spip('inc/meta');
ecrire_meta('IMPORT_tables_noimport',
serialize($IMPORT_tables_noimport),'non');
}

3
ecrire/configuration/reducteur.php

@ -14,7 +14,6 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/presentation');
include_spip('inc/config');
include_spip('inc/meta');
function configuration_reducteur_dist()
{
@ -203,4 +202,4 @@ function afficher_choix_vignette($process) {
}
?>
?>

2
ecrire/exec/admin_plugin.php

@ -82,7 +82,7 @@ function exec_admin_plugin_dist($retour='') {
$lpf = liste_plugin_files();
$lcpa = liste_chemin_plugin_actifs();
$plugins_interessants = @array_keys(unserialize(lire_meta('plugins_interessants')));
$plugins_interessants = @array_keys(unserialize($GLOBALS['meta']['plugins_interessants']));
if (!is_array($plugins_interessants))
$plugins_interessants = array();

1
ecrire/exec/config_contenu.php

@ -13,7 +13,6 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/presentation');
include_spip('inc/meta');
// http://doc.spip.org/@exec_config_contenu_dist
function exec_config_contenu_dist()

2
ecrire/exec/config_fonctions.php

@ -13,7 +13,6 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/presentation');
include_spip('inc/meta');
// http://doc.spip.org/@exec_config_fonctions_dist
function exec_config_fonctions_dist()
@ -40,7 +39,6 @@ function exec_config_fonctions_dist()
echo creer_colonne_droite('', true);
echo pipeline('affiche_droite',array('args'=>array('exec'=>'config_fonctions'),'data'=>''));
echo debut_droite('', true);
lire_metas();
$reducteur = charger_fonction('reducteur', 'configuration');
# $indexeur = charger_fonction('indexeur', 'configuration');

2
ecrire/exec/configuration.php

@ -13,7 +13,6 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/presentation');
include_spip('inc/meta');
// http://doc.spip.org/@exec_configuration_dist
function exec_configuration_dist(){
@ -27,7 +26,6 @@ function exec_configuration_dist(){
$config = charger_fonction('config', 'inc');
$config();
lire_metas();
pipeline('exec_init',array('args'=>array('exec'=>'configuration'),'data'=>''));

1
ecrire/exec/convert_sql_utf8.php

@ -24,7 +24,6 @@ function convert_utf8_non($action, $message) {
// http://doc.spip.org/@exec_convert_sql_utf8_dist
function exec_convert_sql_utf8_dist() {
include_spip('inc/minipres');
include_spip('inc/meta');
include_spip('inc/charsets');
lire_metas();

1
ecrire/exec/convert_utf8.php

@ -24,7 +24,6 @@ function convert_utf8_non($action, $message) {
// http://doc.spip.org/@exec_convert_utf8_dist
function exec_convert_utf8_dist() {
include_spip('inc/minipres');
include_spip('inc/meta');
include_spip('inc/charsets');
lire_metas();

2
ecrire/exec/export_all.php

@ -13,11 +13,9 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
@ini_set("zlib.output_compression","0"); // pour permettre l'affichage au fur et a mesure
include_spip('inc/flock');
include_spip('inc/actions');
include_spip('inc/export');
include_spip('base/abstract_sql');
include_spip('inc/meta');
include_spip('inc/acces');
// http://doc.spip.org/@exec_export_all_dist

1
ecrire/genie/maintenance.php

@ -33,7 +33,6 @@ function verifier_crash_tables() {
if (spip_connect()) {
include_spip('base/serial');
include_spip('base/auxiliaires');
include_spip('inc/meta');
$crash = array();
foreach (array('tables_principales', 'tables_auxiliaires') as $com) {
foreach ($GLOBALS[$com] as $table => $desc) {

1
ecrire/genie/optimiser.php

@ -52,7 +52,6 @@ function optimiser_base_une_table() {
if ($tables) {
$table_op = intval($GLOBALS['meta']['optimiser_table']+1) % sizeof($tables);
include_spip('inc/meta');
ecrire_meta('optimiser_table', $table_op);
$q = $tables[$table_op];
spip_log("debut d'optimisation de la table $q");

2
ecrire/inc/acces.php

@ -68,7 +68,6 @@ function creer_uniqid() {
// http://doc.spip.org/@renouvelle_alea
function renouvelle_alea() {
$alea = md5(creer_uniqid());
include_spip('inc/meta');
ecrire_meta('alea_ephemere_ancien', @$GLOBALS['meta']['alea_ephemere'], 'non');
ecrire_meta('alea_ephemere', $alea, 'non');
ecrire_meta('alea_ephemere_date', time(), 'non');
@ -84,7 +83,6 @@ function low_sec($id_auteur) {
// Pas d'id_auteur : low_sec
if (!$id_auteur = intval($id_auteur)) {
if (!$low_sec = $GLOBALS['meta']['low_sec']) {
include_spip('inc/meta');
ecrire_meta('low_sec', $low_sec = creer_pass_aleatoire());
}
}

1
ecrire/inc/actions.php

@ -12,7 +12,6 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/meta');
// http://doc.spip.org/@generer_action_auteur
function generer_action_auteur($action, $arg, $redirect="", $mode=false, $att='')

1
ecrire/inc/admin.php

@ -13,7 +13,6 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/headers');
include_spip('inc/meta');
// demande/verifie le droit de creation de repertoire par le demandeur;
// memorise dans les meta que ce script est en cours d'execution

1
ecrire/inc/config.php

@ -12,7 +12,6 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/meta');
//
// Appliquer les valeurs par defaut pour les options non initialisees

1
ecrire/inc/drapeau_edition.php

@ -62,7 +62,6 @@ function lire_tableau_edition () {
// http://doc.spip.org/@ecrire_tableau_edition
function ecrire_tableau_edition($edition) {
include_spip('inc/meta');
ecrire_meta('drapeau_edition', serialize($edition));
}

1
ecrire/inc/export.php

@ -159,7 +159,6 @@ function export_objets($table, $etape, $cpt, $dir, $archive, $gz, $total, $les_r
: '';
$debut = $cpt * _EXPORT_TRANCHES_LIMITE;
include_spip('inc/meta');
while (1){ // on ne connait pas le nb de paquets d'avance
$string = build_while($debut, $table, $prim, $les_rubriques, $les_meres);

1
ecrire/inc/forum_insert.php

@ -11,7 +11,6 @@
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/meta');
include_spip('inc/forum');
include_spip('inc/filtres');
include_spip('base/abstract_sql');

1
ecrire/inc/genie.php

@ -78,7 +78,6 @@ function inc_genie_dist($taches = array()) {
}
if ($tache) {
include_spip('inc/meta');
spip_timer('tache');
touch($lock);
$cron = charger_fonction($tache, 'genie');

1
ecrire/inc/import.php

@ -14,7 +14,6 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/presentation');
include_spip('inc/acces');
include_spip('inc/meta');
include_spip('base/abstract_sql');
// NB: Ce fichier peut ajouter des tables (old-style)

1
ecrire/inc/invalideur.php

@ -14,7 +14,6 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('base/serial');
include_spip('inc/meta');
# estime la taille moyenne d'un fichier cache, pour ne pas les regarder (10ko)
define('_TAILLE_MOYENNE_FICHIER_CACHE', 1024 * 10);

1
ecrire/inc/lang.php

@ -293,7 +293,6 @@ function init_langues() {
$tout = join(',', $tout);
// Si les langues n'ont pas change, ne rien faire
if ($tout != $all_langs) {
include_spip('inc/meta');
$GLOBALS['meta']['langues_proposees'] = $tout;
ecrire_meta('langues_proposees', $tout);
} else $tout = '';

12
ecrire/inc/meta.php

@ -17,10 +17,10 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
function init_metas()
{
// Lire les meta, en cache si disponibles.
if (lire_fichier(_FILE_META, $meta))
// Lire les meta, en cache si present, valide et lisible
if (@filemtime(_FILE_META) AND lire_fichier(_FILE_META, $meta))
$GLOBALS['meta'] = @unserialize($meta);
// si cache absent, le refaire.
// sinon le refaire.
if (!$GLOBALS['meta']) {
if (lire_metas())
ecrire_fichier(_FILE_META,
@ -46,9 +46,9 @@ function lire_metas() {
// http://doc.spip.org/@ecrire_meta
function ecrire_meta($nom, $valeur, $importable = NULL) {
if (!$nom) return;
$GLOBALS['meta'][$nom] = $valeur;
if (!_FILE_CONNECT && !@file_exists(_FILE_CONNECT_INS .'.php')) return;
include_spip('base/abstract_sql');
$res = sql_fetsel("impt,valeur", 'spip_meta', "nom=" . _q($nom));
@ -61,12 +61,12 @@ function ecrire_meta($nom, $valeur, $importable = NULL) {
spip_query("UPDATE spip_meta SET valeur=" . _q($valeur) ."$r WHERE nom=" . _q($nom) );
} else
spip_query("INSERT INTO spip_meta (nom,valeur,impt) VALUES (" . _q($nom) . "," . _q($valeur) ."," . _q($importable) . ')');
spip_unlink(_FILE_META);
@touch(_FILE_META, 0);
}
// http://doc.spip.org/@effacer_meta
function effacer_meta($nom) {
spip_query("DELETE FROM spip_meta WHERE nom='$nom'");
spip_unlink(_FILE_META);
@touch(_FILE_META,0);
}
?>

1
ecrire/inc/plugin.php

@ -19,7 +19,6 @@ define('_FILE_PLUGIN_CONFIG', "plugin.xml");
define('_DIR_PLUGINS_AUTO', _DIR_PLUGINS.'auto/');
// besoin de inc_meta
include_spip('inc/meta');
include_spip('inc/texte');
// lecture des sous repertoire plugin existants

2
ecrire/inc/rubriques.php

@ -12,7 +12,6 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/meta');
// Fonction a appeler lorsque le statut d'un objet change dans une rubrique
// ou que la rubrique est déplacee.
@ -383,7 +382,6 @@ function calculer_prochain_postdate($check= false) {
while ($row = sql_fetch($r))
publier_branche_rubrique($row['id']);
}
include_spip('inc/meta');
$t = sql_fetch(spip_query("SELECT date FROM spip_articles WHERE statut='publie' AND date > NOW() ORDER BY date LIMIT 1"));
if ($t) {

2
ecrire/inc/utils.php

@ -1329,12 +1329,12 @@ function spip_initialisation($pi=NULL, $pa=NULL, $ti=NULL, $ta=NULL) {
// pour le rendre surchargeable, on va provoquer un reecriture
// systematique du noyau ou une baisse de perfs => a etudier)
include_once _DIR_RESTREINT . 'inc/flock.php';
include_spip('inc/meta'); // surchargeable, mais difficilement.
// Duree de validite de l'alea pour les cookies et ce qui s'ensuit.
define('_RENOUVELLE_ALEA', 12 * 3600);
if (_FILE_CONNECT) {
include_spip('inc/meta');
init_metas();
// Forcer le renouvellement de l'alea

4
ecrire/install/etape_4.php

@ -60,9 +60,9 @@ function install_etape_4_dist()
);
# maintenant on connait le vrai charset du site s'il est deja configure
# sinon par defaut inc/meta reglera _DEFAULT_CHARSET
# sinon par defaut lire_meta reglera _DEFAULT_CHARSET
# (les donnees arrivent de toute facon postees en _DEFAULT_CHARSET)
include_spip('inc/meta');
lire_metas();
if ($login) {
include_spip('inc/charsets');

2
ecrire/install/etape_ldap5.php

@ -12,7 +12,6 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/headers');
include_spip('inc/meta');
// http://doc.spip.org/@inc_install_ldap5
function install_etape_ldap5_dist()
@ -24,6 +23,7 @@ function install_etape_ldap5_dist()
else
redirige_par_entete(generer_url_ecrire('install'));
lire_metas();
ecrire_meta('ldap_statut_import', _request('statut_ldap'));
echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"');

1
ecrire/public/cacher.php

@ -92,7 +92,6 @@ function cache_valide(&$page, $date) {
AND isset($GLOBALS['meta']['date_prochain_postdate'])
AND time() > $GLOBALS['meta']['date_prochain_postdate']) {
spip_log('Un article post-date invalide le cache');
include_spip('inc/meta');
include_spip('inc/rubriques');
ecrire_meta('derniere_modif', time());
calculer_prochain_postdate();

Loading…
Cancel
Save