Пример #1
0
 public function trace($state, $content)
 {
     if ($state > $this->highestTraceLevel) {
         $this->highestTraceLevel = $state;
     }
     $this->traces[] = FormatHelper::getInstance()->timestamp() . " [" . TraceHelper::getInstance()->traceLevelToString($state) . "] " . $content;
 }
Пример #2
0
 public function setup()
 {
     $objectConfigs = $this->getConfig("Objects");
     $tableConfigs = $this->getConfig("Tables");
     $trace = TraceHelper::getInstance()->getTraceInstance("Database Service");
     /* @var $objects TableModel[] */
     $objects = array();
     foreach ($objectConfigs as $objectConfig) {
         $tableModel = new TableModel();
         $res = $tableModel->setConfig($objectConfig, true);
         if ($res === true) {
             $objects[$objectConfig["ObjectName"]] = $tableModel;
         } else {
             $trace->trace(TraceHelper::TRACE_LEVEL_ERROR, "Error in " . $objectConfig["ObjectName"] . ": " . TableModel::evaluateError($res));
             return false;
         }
     }
     $this->tables = array();
     foreach ($tableConfigs as $tableConfig) {
         $tableModel = new TableModel();
         $res = $tableModel->setConfig($tableConfig);
         if ($res === true) {
             $this->tables[$tableConfig["ObjectName"]] = $tableModel;
         } else {
             $trace->trace(TraceHelper::TRACE_LEVEL_ERROR, "Error in " . $tableConfig["ObjectName"] . ": " . TableModel::evaluateError($res));
             return false;
         }
     }
     //inheritance!
     foreach ($this->getTables() as $table) {
         $inst = $table->getInstance();
         $classes = ReflectionHelper::getInstance()->getInheritanceTree($inst);
         unset($classes[0]);
         foreach ($classes as $class) {
             if (isset($objects[$class])) {
                 $table->addProperties($objects[$class]->getProperties());
             } else {
                 $trace->trace(TraceHelper::TRACE_LEVEL_ERROR, "Base Class not found: " . $class . " for object of type " . $table->getObjectName());
                 return false;
             }
         }
     }
     //assert models are correctly configured
     $successful = true;
     foreach ($this->getTables() as $table) {
         $successful &= $table->testModel($trace);
     }
     if (!$successful) {
         $trace->trace(TraceHelper::TRACE_LEVEL_ERROR, "not all objects could setup correctly.");
         return false;
     }
     //create tables, recover data from existing table, drop table, recreate, and fill again
     foreach ($this->getTables() as $table) {
         //get data from old table;
         $sql = "SELECT * FROM " . $table->getTableName();
         $stmt = $this->executeSql($sql, null, true, true);
         $oldContent = null;
         if ($stmt !== false) {
             $oldContent = $this->fetchAllToArray($stmt);
         }
         //drop table
         if (!$this->dropTableInternal($table->getTableName(), true)) {
             if (is_array($oldContent)) {
                 $trace->trace(TraceHelper::TRACE_LEVEL_ERROR, "Cannot drop table " . $table->getTableName());
                 continue;
             }
         }
         //create new table
         $sql = $table->getCreateTableSql($this->getDatabaseDriver(), $table->getTableName());
         if (!$this->executeSql($sql)) {
             $trace->trace(TraceHelper::TRACE_LEVEL_ERROR, "Cannot create table " . $table->getTableName());
             continue;
         }
         //fill new table if old values exist
         if (is_array($oldContent)) {
             foreach ($oldContent as $entry) {
                 $values = $table->getPreparedValues($this->getDatabaseDriver(), $entry);
                 if (!$this->insertInternal($table->getTableName(), $values)) {
                     $trace->trace(TraceHelper::TRACE_LEVEL_ERROR, "could not insert values: " . json_encode($values));
                 }
             }
         }
     }
     FileHelper::getInstance()->cacheFile(FileHelper::CACHED_FILE_DATASERVICE_TABLES, FileHelper::getInstance()->serializeObject($this->getTables()));
     return true;
 }
Пример #3
0
<?php

/**
 * Created by PhpStorm.
 * User: Florian Moser
 * Date: 04.09.2015
 * Time: 01:58
 */
use famoser\phpFrame\Core\Logging\LogHelper;
use famoser\phpFrame\Core\Tracing\TraceHelper;
use famoser\phpFrame\Helpers\PartHelper;
$logs = LogHelper::getInstance()->getLogs();
$traces = TraceHelper::getInstance()->getFullTrace();
if ($logs != null) {
    foreach ($logs as $log) {
        ?>
        <div class="col-md-12 content message <?php 
        echo PartHelper::getInstance()->getLogClass($log);
        ?>
">
            <div class="col-md-11">
                <?php 
        echo PartHelper::getInstance()->getLogText($log);
        ?>
            </div>
            <div class="col-md-1">
                <button class="close removebutton" data-remove-parent="2">×</button>
            </div>
        </div>
        <?php 
    }