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