lib/models/DataInterfaceLog.php
public function getDataPackage()
    {
        $p = [];
        $p['_'] = [];
        $p['_']['url'] = Url::to(['admin/interface/view-log', 'id' => $this->id, 'package' => 1]);
        $p['_']['id'] = $this->id;
        $p['_']['started'] = isset($this->started) ? date("F d, Y g:i:sa", strtotime($this->started)) : false;
        $p['_']['ended'] = isset($this->ended) ? date("F d, Y g:i:sa", strtotime($this->ended)) : false;
        $p['_']['duration'] = $this->duration;
        $p['_']['status'] = $this->status;
        if ($this->status === 'running' && $this->statusLog->paused) {
            $p['_']['status'] = 'paused';
        }
        $p['_']['estimatedTimeRemaining'] = Date::niceDuration($this->estimateTimeRemaining);
        $p['_']['log_status'] = 'fine';

        $p['_']['menu'] = [];
        $isMostRecent = $this->isMostRecent;
        if ($isMostRecent) {
            if ($this->status === 'success' && !$this->statusLog->cleaned) {
            } elseif ($this->status !== 'running') {
                $p['_']['menu'][] = ['label' => 'Run Again', 'url' => Url::to(['admin/interface/run', 'id' => $this->data_interface_id]), 'attributes' => ['data-handler' => 'background'], 'class' => 'btn-warning'];
            }
        }

        if ($this->statusLog->hasError) {
            $p['_']['log_status'] = 'error';
        } elseif ($this->statusLog->hasWarning) {
            $p['_']['log_status'] = 'warning';
        }
        $p['_']['last_update'] = $this->last_update;
        $p['_']['peak_memory'] = StringHelper::humanFilesize($this->statusLog->peakMemoryUsage);
        $p['progress'] = [
            'total' => $this->statusLog->progressTotal,
            'done' => $this->statusLog->progressDone,
        ];
        if (isset($this->statusLog->ended)) {
            $p['progress']['duration'] = Date::shortDuration($this->statusLog->ended - $this->statusLog->started);
        }
        $p['tasks'] = [];
        foreach ($this->statusLog->tasks as $id => $task) {
            $p['tasks'][$id] = $task->package;
        }
        $p['messages'] = [];
        $lasttime = $started = $this->statusLog->started;
        foreach ($this->statusLog->messages as $key => $message) {
            $key = $key . '-' . substr(md5($key), 0, 5);
            $timestamp = (float) $message['time'];
            $duration = $timestamp - $lasttime;
            $lasttime = $timestamp;
            $fromStart = $timestamp-$started;
            $p['messages'][$key] = [
                'message' => $message['message'],
                'duration' => Date::shortDuration($duration),
                'fromStart' => Date::shortDuration($fromStart),
                'level' => $message['level'],
                'data' => $message['data'],
                'memory' => StringHelper::humanFilesize($message['memory']),
            ];
        }
        $p['output'] = $this->statusLog->commandOutput;

        return $p;
    }
public function getDataPackage()
    {
        $p = [];
        $p['_'] = [];
        $p['_']['url'] = Url::to(['admin/interface/view-log', 'id' => $this->id, 'package' => 1]);
        $p['_']['id'] = $this->id;
        $p['_']['started'] = isset($this->started) ? date("F d, Y g:i:sa", strtotime($this->started)) : false;
        $p['_']['ended'] = isset($this->ended) ? date("F d, Y g:i:sa", strtotime($this->ended)) : false;
        $p['_']['duration'] = $this->duration;
        $p['_']['status'] = $this->status;
        if ($this->status === 'running' && $this->statusLog->paused) {
            $p['_']['status'] = 'paused';
        }
        $p['_']['estimatedTimeRemaining'] = Date::niceDuration($this->estimateTimeRemaining);
        $p['_']['log_status'] = 'fine';

        $p['_']['menu'] = [];
        $isMostRecent = $this->isMostRecent;
        if ($isMostRecent) {
            if ($this->status === 'success' && !$this->statusLog->cleaned) {
            } elseif ($this->status !== 'running') {
                $p['_']['menu'][] = ['label' => 'Run Again', 'url' => Url::to(['admin/interface/run', 'id' => $this->data_interface_id]), 'attributes' => ['data-handler' => 'background'], 'class' => 'btn-warning'];
            }
        }

        if ($this->statusLog->hasError) {
            $p['_']['log_status'] = 'error';
        } elseif ($this->statusLog->hasWarning) {
            $p['_']['log_status'] = 'warning';
        }
        $p['_']['last_update'] = $this->last_update;
        $p['_']['peak_memory'] = StringHelper::humanFilesize($this->statusLog->peakMemoryUsage);
        $p['progress'] = [
            'total' => $this->statusLog->progressTotal,
            'done' => $this->statusLog->progressDone,
        ];
        if (isset($this->statusLog->ended)) {
            $p['progress']['duration'] = Date::shortDuration($this->statusLog->ended - $this->statusLog->started);
        }
        $p['tasks'] = [];
        foreach ($this->statusLog->tasks as $id => $task) {
            $p['tasks'][$id] = $task->package;
        }
        $p['messages'] = [];
        $lasttime = $started = $this->statusLog->started;
        foreach ($this->statusLog->messages as $key => $message) {
            $key = $key . '-' . substr(md5($key), 0, 5);
            $timestamp = (float) $message['time'];
            $duration = $timestamp - $lasttime;
            $lasttime = $timestamp;
            $fromStart = $timestamp-$started;
            $p['messages'][$key] = [
                'message' => $message['message'],
                'duration' => Date::shortDuration($duration),
                'fromStart' => Date::shortDuration($fromStart),
                'level' => $message['level'],
                'data' => $message['data'],
                'memory' => StringHelper::humanFilesize($message['memory']),
            ];
        }
        $p['output'] = $this->statusLog->commandOutput;

        return $p;
    }
Get data package.

@return [[@doctodo return_type:getDataPackage]] [[@doctodo return_description:getDataPackage]]