diff --git a/core/lib/Thelia/Log/AbstractTlogDestination.php b/core/lib/Thelia/Log/AbstractTlogDestination.php index 7aa197fcb..4b859df20 100644 --- a/core/lib/Thelia/Log/AbstractTlogDestination.php +++ b/core/lib/Thelia/Log/AbstractTlogDestination.php @@ -40,20 +40,20 @@ abstract class AbstractTlogDestination $this->_logs = array(); // Initialiser les variables de configuration - $this->_configs = $this->get_configs(); + $this->_configs = $this->getConfigs(); // Appliquer la configuration - $this->configurer(); + $this->configure(); } //Affecte une valeur à une configuration de la destination - public function set_config($name, $value) + public function setConfig($name, $value) { foreach ($this->_configs as $config) { if ($config->name == $name) { $config->value = $value; // Appliquer les changements - $this->configurer(); + $this->configure(); return true; } @@ -63,7 +63,7 @@ abstract class AbstractTlogDestination } //Récupère la valeur affectée à une configuration de la destination - public function get_config($name) + public function getConfig($name) { foreach ($this->_configs as $config) { if ($config->name == $name) { @@ -74,23 +74,23 @@ abstract class AbstractTlogDestination return false; } - public function get_configs() + public function getConfigs() { return $this->_configs; } - public function mode_back_office($bool) + public function SetBackOfficeMode($bool) { $this->flag_back_office = $bool; } //Ajoute une ligne de logs à la destination - public function ajouter($string) + public function add($string) { $this->_logs[] = $string; } - protected function inserer_apres_body(&$res, $logdata) + protected function InsertAfterBody(&$res, $logdata) { $match = array(); @@ -104,18 +104,18 @@ abstract class AbstractTlogDestination // Demande à la destination de se configurer pour être prête // a fonctionner. Si $config est != false, celà indique // que seul le paramètre de configuration indiqué a été modifié. - protected function configurer() + protected function configure() { // Cette methode doit etre surchargée si nécessaire. } //Lance l'écriture de tous les logs par la destination //$res : contenu de la page html - abstract public function ecrire(&$res); + abstract public function write(&$res); // Retourne le titre de cette destination, tel qu'affiché dans le menu de selection - abstract public function get_titre(); + abstract public function getTitle(); // Retourne une brève description de la destination - abstract public function get_description(); + abstract public function getDescription(); } diff --git a/core/lib/Thelia/Log/Destination/TlogDestinationFile.php b/core/lib/Thelia/Log/Destination/TlogDestinationFile.php index 196ffcaa1..7a66adace 100644 --- a/core/lib/Thelia/Log/Destination/TlogDestinationFile.php +++ b/core/lib/Thelia/Log/Destination/TlogDestinationFile.php @@ -45,10 +45,10 @@ class TlogDestinationFile extends AbstractTlogDestination parent::__construct(); } - public function configurer() + public function configure() { - $file_path = $this->get_config(self::VAR_PATH_FILE); - $mode = strtolower($this->get_config(self::VAR_MODE)) == 'a' ? 'a' : 'w'; + $file_path = $this->getConfig(self::VAR_PATH_FILE); + $mode = strtolower($this->getConfig(self::VAR_MODE)) == 'a' ? 'a' : 'w'; if (! empty($file_path)) { if (! is_file($file_path)) { @@ -64,17 +64,17 @@ class TlogDestinationFile extends AbstractTlogDestination } } - public function get_titre() + public function getTitle() { return "Text File"; } - public function get_description() + public function getDescription() { return "Store logs into text file"; } - public function get_configs() + public function getConfigs() { return array( new TlogDestinationConfig( @@ -94,14 +94,14 @@ class TlogDestinationFile extends AbstractTlogDestination ); } - public function ajouter($texte) + public function add($texte) { if ($this->fh) { fwrite($this->fh, $texte."\n"); } } - public function ecrire(&$res) + public function write(&$res) { if ($this->fh) @fclose($this->fh); diff --git a/core/lib/Thelia/Log/Destination/TlogDestinationHtml.php b/core/lib/Thelia/Log/Destination/TlogDestinationHtml.php index a87ce561a..d0896cd26 100644 --- a/core/lib/Thelia/Log/Destination/TlogDestinationHtml.php +++ b/core/lib/Thelia/Log/Destination/TlogDestinationHtml.php @@ -27,51 +27,50 @@ use Thelia\Log\AbstractTlogDestination; class TlogDestinationHtml extends AbstractTlogDestination { - // Nom des variables de configuration - // ---------------------------------- - const VAR_STYLE = "tlog_destinationhtml_style"; - const VALEUR_STYLE_DEFAUT = "text-align: left; font-size: 12px; font-weight: normal; line-height: 14px; float: none; display:block; color: #000; background-color: #fff; font-family: Courier New, courier,fixed;"; + // Nom des variables de configuration + // ---------------------------------- + const VAR_STYLE = "tlog_destinationhtml_style"; + const VALEUR_STYLE_DEFAUT = "text-align: left; font-size: 12px; font-weight: normal; line-height: 14px; float: none; display:block; color: #000; background-color: #fff; font-family: Courier New, courier,fixed;"; - private $style; + private $style; - public function __construct() - { - parent::__construct(); - - } - - public function configurer() - { - $this->style = $this->get_config(self::VAR_STYLE); - } - - public function get_titre() - { - return "Affichage direct dans la page, en HTML"; - } - - public function get_description() - { - return "Permet d'afficher les logs directement dans la page resultat, avec une mise en forme HTML."; - } - - public function get_configs() - { - return array( - new TlogDestinationConfig( - self::VAR_STYLE, - "Style d'affichage direct dans la page", - "Vous pouvez aussi laisser ce champ vide, et créer un style \"tlog-trace\" dans votre feuille de style.", - self::VALEUR_STYLE_DEFAUT, - TlogDestinationConfig::TYPE_TEXTAREA - ) - ); - } - - public function ecrire(&$res) + public function __construct() { - $block = sprintf('
%s
', $this->style, htmlspecialchars(implode("\n", $this->_logs))); + parent::__construct(); + } - $this->inserer_apres_body($res, $block); + public function configure() + { + $this->style = $this->getConfig(self::VAR_STYLE); + } + + public function getTitle() + { + return "Affichage direct dans la page, en HTML"; + } + + public function getDescription() + { + return "Permet d'afficher les logs directement dans la page resultat, avec une mise en forme HTML."; + } + + public function getConfigs() + { + return array( + new TlogDestinationConfig( + self::VAR_STYLE, + "Style d'affichage direct dans la page", + "Vous pouvez aussi laisser ce champ vide, et créer un style \"tlog-trace\" dans votre feuille de style.", + self::VALEUR_STYLE_DEFAUT, + TlogDestinationConfig::TYPE_TEXTAREA + ) + ); + } + + public function write(&$res) + { + $block = sprintf('
%s
', $this->style, htmlspecialchars(implode("\n", $this->_logs))); + + $this->InsertAfterBody($res, $block); } } diff --git a/core/lib/Thelia/Log/Tlog.php b/core/lib/Thelia/Log/Tlog.php index 633b4cb6f..6fa2b03b1 100644 --- a/core/lib/Thelia/Log/Tlog.php +++ b/core/lib/Thelia/Log/Tlog.php @@ -31,6 +31,7 @@ use Thelia\Model\ConfigQuery; * Allow to define different level and output. * * @author Franck Allimant + * @author Manuel Raynaud */ class Tlog Implements TlogInterface { @@ -72,7 +73,7 @@ class Tlog Implements TlogInterface private $linecount = 0; - protected static $ecrire_effectue = false; + protected static $done = false; // directories where are the Destinations Files public $dir_destinations = array(); @@ -89,92 +90,93 @@ class Tlog Implements TlogInterface * @return \Thelia\Log\Tlog */ public static function instance() { - if (self::$instance == false) { - self::$instance = new Tlog(); + if (self::$instance == false) { + self::$instance = new Tlog(); - // On doit placer les initialisations à ce level pour pouvoir - // utiliser la classe Tlog dans les classes de base (Cnx, BaseObj, etc.) - // Les placer dans le constructeur provoquerait une boucle - self::$instance->init(); - } + // On doit placer les initialisations à ce level pour pouvoir + // utiliser la classe Tlog dans les classes de base (Cnx, BaseObj, etc.) + // Les placer dans le constructeur provoquerait une boucle + self::$instance->init(); + } - return self::$instance; + return self::$instance; } protected function init() { - $this->set_level(ConfigQuery::read(self::VAR_LEVEL, self::DEFAULT_LEVEL)); + $this->setLevel(ConfigQuery::read(self::VAR_LEVEL, self::DEFAULT_LEVEL)); - $this->dir_destinations = array( - __DIR__.'/Destination' - //, __DIR__.'/../client/tlog/destinations' - ); + $this->dir_destinations = array( + __DIR__.'/Destination' + //, __DIR__.'/../client/tlog/destinations' + ); - $this->set_prefixe(ConfigQuery::read(self::VAR_PREFIXE, self::DEFAUT_PREFIXE)); - $this->set_files(ConfigQuery::read(self::VAR_FILES, self::DEFAUT_FILES)); - $this->set_ip(ConfigQuery::read(self::VAR_IP, self::DEFAUT_IP)); - $this->set_destinations(ConfigQuery::read(self::VAR_DESTINATIONS, self::DEFAUT_DESTINATIONS)); - $this->set_show_redirect(ConfigQuery::read(self::VAR_SHOW_REDIRECT, self::DEFAUT_SHOW_REDIRECT)); + $this->setPrefix(ConfigQuery::read(self::VAR_PREFIXE, self::DEFAUT_PREFIXE)); + $this->setFiles(ConfigQuery::read(self::VAR_FILES, self::DEFAUT_FILES)); + $this->setIp(ConfigQuery::read(self::VAR_IP, self::DEFAUT_IP)); + $this->setDestinations(ConfigQuery::read(self::VAR_DESTINATIONS, self::DEFAUT_DESTINATIONS)); + $this->setShowRedirect(ConfigQuery::read(self::VAR_SHOW_REDIRECT, self::DEFAUT_SHOW_REDIRECT)); - // Au cas ou il y aurait un exit() quelque part dans le code. - register_shutdown_function(array($this, 'ecrire_si_exit')); + // Au cas ou il y aurait un exit() quelque part dans le code. + register_shutdown_function(array($this, 'writeOnExit')); } // Configuration // ------------- - public function set_destinations($destinations) + public function setDestinations($destinations) { - if (! empty($destinations)) { + if (! empty($destinations)) { - $this->destinations = array(); + $this->destinations = array(); - $classes_destinations = explode(';', $destinations); - $this->loadDestinations($this->destinations, $classes_destinations); - } + $classes_destinations = explode(';', $destinations); + $this->loadDestinations($this->destinations, $classes_destinations); + } } - public function set_level($level) + public function setLevel($level) { $this->level = $level; } - public function set_prefixe($prefixe) + public function setPrefix($prefixe) { $this->prefixe = $prefixe; } - public function set_files($files) + public function setFiles($files) { $this->files = explode(";", $files); $this->all_files = in_array('*', $this->files); } - public function set_ip($ips) + public function setIp($ips) { - if (! empty($ips) && ! in_array($_SERVER['REMOTE_ADDR'], explode(";", $ips))) $this->level = self::MUET; + // isset($_SERVER['REMOTE_ADDR']) if we are in cli mode + if (! empty($ips) && isset($_SERVER['REMOTE_ADDR']) && ! in_array($_SERVER['REMOTE_ADDR'], explode(";", $ips))) $this->level = self::MUET; } - public function set_show_redirect($bool) + public function setShowRedirect($bool) { $this->show_redirect = $bool; } // Configuration d'une destination - public function set_config($destination, $param, $valeur) + public function setConfig($destination, $param, $valeur) { if (isset($this->destinations[$destination])) { - $this->destinations[$destination]->set_config($param, $valeur); + $this->destinations[$destination]->setConfig($param, $valeur); } } // Configuration d'une destination - public function get_config($destination, $param) + public function getConfig($destination, $param) { if (isset($this->destinations[$destination])) { - return $this->destinations[$destination]->get_config($param); + return $this->destinations[$destination]->getConfig($param); } return false; @@ -244,40 +246,41 @@ class Tlog Implements TlogInterface } // Mode back office - public static function mode_back_office($booleen) + public static function SetBackOfficeMode($booleen) { foreach (Tlog::instance()->destinations as $dest) { - $dest->mode_back_office($booleen); + $dest->SetBackOfficeMode($booleen); } } // Ecriture finale - public function ecrire(&$res) + public function write(&$res) { - self::$ecrire_effectue = true; + self::$done = true; // Muet ? On ne fait rien if ($this->level == self::MUET) return; foreach ($this->destinations as $dest) { - $dest->ecrire($res); + $dest->write($res); } } - public function ecrire_si_exit() + //function register into register shutdown function stack + public function writeOnExit() { // Si les infos de debug n'ont pas été ecrites, le faire maintenant - if (self::$ecrire_effectue === false) { + if (self::$done === false) { $res = ""; - $this->ecrire($res); + $this->write($res); echo $res; } } - public function afficher_redirections($url) + public function showRedirect($url) { if ($this->level != self::MUET && $this->show_redirect) { echo " @@ -297,15 +300,15 @@ class Tlog Implements TlogInterface // Permet de déterminer si la trace est active, en prenant en compte // le level et le filtrage par fichier - public function active($level) + public function isActivated($level) { if ($this->level <= $level) { - $origine = $this->trouver_origine(); + $origin = $this->findOrigin(); - $file = basename($origine['file']); + $file = basename($origin['file']); - if ($this->is_file_active($file)) { + if ($this->isActivedFile($file)) { return true; } } @@ -313,7 +316,7 @@ class Tlog Implements TlogInterface return false; } - public function is_file_active($file) + public function isActivedFile($file) { return ($this->all_files || in_array($file, $this->files)) && ! in_array("!$file", $this->files); } @@ -321,7 +324,7 @@ class Tlog Implements TlogInterface /* -- Methodes privees ---------------------------------------- */ // Adapté de LoggerLoginEvent dans log4php - private function trouver_origine() + private function findOrigin() { $origine = array(); @@ -372,11 +375,11 @@ class Tlog Implements TlogInterface $text .= is_scalar($arg) ? $arg : print_r($arg, true); } - $origine = $this->trouver_origine(); + $origine = $this->findOrigin(); $file = basename($origine['file']); - if ($this->is_file_active($file)) { + if ($this->isActivedFile($file)) { $function = $origine['function']; $line = $origine['line']; @@ -390,7 +393,7 @@ class Tlog Implements TlogInterface $trace = $prefixe . $text; foreach ($this->destinations as $dest) { - $dest->ajouter($trace); + $dest->add($trace); } $this->linecount++;