Пример #1
0
 public function __construct()
 {
     /**
      * Подключаем cache lite
      */
     PsLibs::inst()->CacheLite();
     /*
      * Конфигурируем
      */
     $liteOptions = array('readControl' => true, 'writeControl' => true, 'readControlType' => 'md5', 'automaticSerialization' => true, 'cacheDir' => DirManager::autogen('cache-lite')->absDirPath(), 'lifeTime' => ConfigIni::cacheFileLifetime() * 60, 'caching' => true);
     if (PsLogger::isEnabled()) {
         PsLogger::inst(__CLASS__)->info('Lite options: {}', print_r($liteOptions, true));
     }
     $this->IMPL = new Cache_Lite($liteOptions);
 }
Пример #2
0
 /**
  * Основной метод, выполняющий подключение всех классов из kitcore.
  * Нужно постараться сделать так, чтобы он отрабатывал максимально быстро,
  * так как мы используем его вместо принудительного подключения всех классов
  * через require_once.
  * Возможно для ускорения работы однажды мы так и сделаем.
  */
 public function includeCore()
 {
     if ($this->CALLED) {
         die(__CLASS__ . ' cannot be called twice.');
     }
     $this->CALLED = true;
     /*
      * Засекаем время подключения
      */
     $time = microtime(true);
     /*
      * Сразу подключаем  настройки и утилитные функции
      */
     include_once 'Globals.php';
     include_once 'Defines.php';
     /*
      * Инициализируем глобальные коллекции, так как доступ к ним будет
      * осуществляться из всех методов данного класса.
      */
     $this->PATHES = array();
     $this->INCLUDED = array();
     /*
      * Собираем классы из kitcore, которые нужно подключить.
      * Пути к php-классам будут собраны в переменную класса, чтобы к ним был
      * доступ и из функции autoload.
      */
     self::loadClassPath(__DIR__, $this->PATHES, true);
     /*
      * Подключим слушатель ошибки загрузки файлов, так как классы могут быть
      * загружены не в правильном порядке.
      */
     spl_autoload_register(array($this, '_autoload'));
     /*
      * Начинаем подключение
      */
     foreach ($this->PATHES as $name => $path) {
         if (!array_key_exists($name, $this->INCLUDED)) {
             /*
              * Поставим отметку о том, что файл загружен напрямую.
              * Если этого не случится, то в функции автоподключение это 
              * будет переопределено.
              */
             $this->INCLUDED[$name] = 'Directly';
             include_once $path;
         }
     }
     /*
      * Отключим обработчки ошибок, так как он нам больше не нужен.
      */
     spl_autoload_unregister(array($this, '_autoload'));
     /*
      * Теперь можно использовать логгер для вывода информации о логировании
      */
     if (PsLogger::isEnabled()) {
         $time = microtime(true) - $time;
         PsLogger::inst(__FILE__)->info('File pathes: ' . print_r($this->PATHES, true));
         PsLogger::inst(__FILE__)->info('Include order: ' . print_r($this->INCLUDED, true));
         PsLogger::inst(__FILE__)->info('Total time: ' . $time);
     }
     /*
      * Освободим память
      */
     unset($this->PATHES);
     unset($this->INCLUDED);
 }
Пример #3
0
 /**
  * Сохраняет статистику, собранную профайлером, в файл.
  */
 private function saveProfiler2File($profilerId, PsProfilerInterface $profiler)
 {
     if (!$profiler->isEnabled()) {
         return;
         //---
     }
     $saved = $this->saveToFile($this->getProfilerDi($profilerId), $profiler->getStats());
     //TODO! В данный момент можно делать $profiler->reset(), но мы делаем это в onDestruct, поэтому не будем проверять.
     if (PsLogger::isEnabled() && $saved) {
         PsLogger::inst(__CLASS__)->info("+ {$profilerId}");
         PsLogger::inst(__CLASS__)->info($saved);
     }
 }
Пример #4
0
 /**
  * Метод вызывается перед вызовом метода имплементации
  * 
  * @param type $filterType
  * @param Smarty_Internal_Template $template
  */
 private function onBeforeCall($filterType, Smarty_Internal_Template $template)
 {
     if (PsLogger::isEnabled()) {
         PsLogger::inst(__CLASS__)->info("{} {}.{}({})", pad_right(++$this->CALLTTL . '.', 3, ' '), get_called_class(), $filterType, $template->template_resource);
     }
 }