Ajout script génération tables en cache
This commit is contained in:
parent
ae025df514
commit
253b15634f
138
batch/setCacheTables.php
Normal file
138
batch/setCacheTables.php
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
#!/usr/bin/php
|
||||||
|
<?php
|
||||||
|
ini_set('memory_limit', '1024M');
|
||||||
|
error_reporting(E_ALL & ~E_NOTICE);
|
||||||
|
|
||||||
|
// Define path to application directory
|
||||||
|
defined('APPLICATION_PATH')
|
||||||
|
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
|
||||||
|
|
||||||
|
// Define application environment
|
||||||
|
defined('APPLICATION_ENV')
|
||||||
|
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
|
||||||
|
|
||||||
|
// Ensure library/ is on include_path
|
||||||
|
set_include_path(implode(PATH_SEPARATOR, array(
|
||||||
|
realpath(APPLICATION_PATH . '/../library'),
|
||||||
|
get_include_path(),
|
||||||
|
)));
|
||||||
|
|
||||||
|
function wsLog() {}
|
||||||
|
|
||||||
|
require_once realpath(dirname(__FILE__)).'/../config/config.php';
|
||||||
|
require_once 'framework/fwk.php';
|
||||||
|
require_once 'framework/common/chiffres.php';
|
||||||
|
require_once 'framework/common/dates.php';
|
||||||
|
require_once 'framework/mail/sendMail.php';
|
||||||
|
require_once 'Metier/insee/classMInsee.php';
|
||||||
|
require_once 'Metier/scores/classMRegression.php';
|
||||||
|
|
||||||
|
//include_once('/var/www/html/ws2/WsEntreprise.php');
|
||||||
|
|
||||||
|
$strInfoScript='Usage : '.basename($argv[0]). " <option> [FICHIERS]
|
||||||
|
Génération du cache des variables courantes si nécessaire.
|
||||||
|
|
||||||
|
Options :
|
||||||
|
-d Mode debug (Verbosité au maximum)
|
||||||
|
-f Forcer la re-Génération du cache
|
||||||
|
";
|
||||||
|
|
||||||
|
$modeDebug=$modeGeneration=false;
|
||||||
|
$argv=$_SERVER['argv'];
|
||||||
|
|
||||||
|
for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
||||||
|
if (substr($argv[$i],0,1)=='-') {
|
||||||
|
switch (substr($argv[$i],1,1)) {
|
||||||
|
case 'd': $modeDebug=true; break;
|
||||||
|
case 'f': $modeGeneration=true; break;
|
||||||
|
case '-':
|
||||||
|
case '?': die($strInfoScript); break;
|
||||||
|
default: die('Option '. $argv[$i] . ' inconnue !'.EOL); break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$iDb=new WDB();
|
||||||
|
|
||||||
|
global $tabVariables;
|
||||||
|
$tdeb=microtime(true);
|
||||||
|
if (!$modeGeneration &&
|
||||||
|
file_exists(DOC_WEB_LOCAL.'tables/tables.bin') &&
|
||||||
|
file_exists(DOC_WEB_LOCAL.'tables/tables.ini') &&
|
||||||
|
filemtime(DOC_WEB_LOCAL.'tables/tables.bin')>filemtime(DOC_WEB_LOCAL.'tables/tables.ini')) {
|
||||||
|
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Lecture du cache...".EOL;
|
||||||
|
$tabVariables=unserialize(file_get_contents(DOC_WEB_LOCAL.'tables/tables.bin'));
|
||||||
|
$nb=count($tabVariables);
|
||||||
|
$duree=round((microtime(true)-$tdeb)*1000,1);
|
||||||
|
if ($modeDebug) {
|
||||||
|
$tailleM=round(memory_get_usage(true)/1024,1);
|
||||||
|
$tailleF=round(filesize(DOC_WEB_LOCAL.'tables/tables.bin')/1024,1);
|
||||||
|
$strFin=" (bin=$tailleF Ko, mem=$tailleM Ko).";
|
||||||
|
} else
|
||||||
|
$strFin='.';
|
||||||
|
echo date('Y/m/d - H:i:s') ." - Lecture du cache en $duree ms : $nb variables$strFin".EOL;
|
||||||
|
} else {
|
||||||
|
// Analyse avec les sections
|
||||||
|
$ini_array = parse_ini_file(DOC_WEB_LOCAL.'tables/tables.ini', TRUE);
|
||||||
|
$tabVariables=array();
|
||||||
|
foreach ($ini_array as $idVar => $tabVar) {
|
||||||
|
|
||||||
|
$idVar=strtoupper($idVar); // Nom= de la variable
|
||||||
|
$source=trim(strtoupper($tabVar['source']));
|
||||||
|
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - [$idVar] Source='$source'...".EOL;
|
||||||
|
|
||||||
|
switch ($source) {
|
||||||
|
case 'SQL':
|
||||||
|
if (!isset($tabVar['sql'])) die("ERREUR : Requête SQL non définie pour [$idVar]");
|
||||||
|
|
||||||
|
$nbRecords=$iDb->query($tabVar['sql']);
|
||||||
|
if ($iDb->getLastErrorNum()>0) die("ERREUR : Requête SQL non fonctionnelle pour [$idVar] (".$iDb->getLastError().')');
|
||||||
|
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - [$idVar] Source='$source' SQL: $nbRecords enregistrements...".EOL;
|
||||||
|
while ($ret=$iDb->fetch(MYSQL_ASSOC)) {
|
||||||
|
// Traitement de la zone libelle
|
||||||
|
if (strtoupper($ret['libelleCase'])=='MAJ')
|
||||||
|
$libelle=trim(ucfirst(strtolower($ret['libelle'])));
|
||||||
|
else
|
||||||
|
$libelle=trim($ret['libelle']);
|
||||||
|
|
||||||
|
// Traitement de la zone article
|
||||||
|
$article=trim($ret['article']);
|
||||||
|
if ($article=='') {
|
||||||
|
if (isset($tabVar['articles']) && strtolower($tabVar['articles'])=='auto') {
|
||||||
|
if (preg_match('/^(a|e|i|o|u|y)/i', $libelle))
|
||||||
|
$article='d\''.$libelle;
|
||||||
|
else
|
||||||
|
$article='de '.$libelle;
|
||||||
|
} else
|
||||||
|
$article=$libelle;
|
||||||
|
} elseif (preg_match('/^(.*)\$/', $article, $matches)) // en $
|
||||||
|
{ $article=trim(preg_replace('/ +/',' ', $matches[1].' '.$libelle));
|
||||||
|
$article=strtr($article, array("' "=>"'"));
|
||||||
|
}
|
||||||
|
$tabVariables[$idVar][trim($ret['code'])]=array('lib'=>$libelle,
|
||||||
|
'art'=>$article,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default: // si <> de blanc, recopie de tableau existant
|
||||||
|
if ($source=='') die("ERREUR : Source non renseignée pour [$idVar]");
|
||||||
|
if (!isset($tabVariables[$source])) die("ERREUR : Source '$source' inexistante pour [$idVar]");
|
||||||
|
$tabVariables[$idVar]=$tabVariables[$source];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$nb=count($tabVariables);
|
||||||
|
$duree=round((microtime(true)-$tdeb)*1000,1);
|
||||||
|
echo date('Y/m/d - H:i:s') ." - Génération du cache en $duree ms : $nb variables.".EOL;
|
||||||
|
if ($modeDebug) {
|
||||||
|
$tailleM=round(memory_get_usage(true)/1024,1);
|
||||||
|
$tailleF=round(filesize(DOC_WEB_LOCAL.'tables/tables.bin')/1024,1);
|
||||||
|
$strFin=" (bin=$tailleF Ko, mem=$tailleM Ko).";
|
||||||
|
} else
|
||||||
|
$strFin='.';
|
||||||
|
if (file_put_contents(DOC_WEB_LOCAL.'tables/tables.bin',serialize($tabVariables)))
|
||||||
|
echo date('Y/m/d - H:i:s') ." - Cache des tables associées généré$strFin".EOL;
|
||||||
|
}
|
||||||
|
|
||||||
|
die();
|
||||||
|
?>
|
Loading…
Reference in New Issue
Block a user