![]() Server : Apache/2.4.62 (Unix) OpenSSL/1.0.2k-fips System : Linux server1.richineiserver.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : fdshops ( 1003) PHP Version : 8.2.21 Disable Function : NONE Directory : /home/fdshops/public_html/vendor/arcanedev/log-viewer/src/Tables/ |
<?php declare(strict_types=1); namespace Arcanedev\LogViewer\Tables; use Arcanedev\LogViewer\Contracts\Table as TableContract; use Arcanedev\LogViewer\Contracts\Utilities\LogLevels as LogLevelsContract; /** * Class AbstractTable * * @author ARCANEDEV <arcanedev.maroc@gmail.com> */ abstract class AbstractTable implements TableContract { /* ----------------------------------------------------------------- | Properties | ----------------------------------------------------------------- */ /** @var array */ private $header = []; /** @var array */ private $rows = []; /** @var array */ private $footer = []; /** @var \Arcanedev\LogViewer\Contracts\Utilities\LogLevels */ protected $levels; /** @var string|null */ protected $locale; /** @var array */ private $data = []; /* ----------------------------------------------------------------- | Constructor | ----------------------------------------------------------------- */ /** * Create a table instance. * * @param array $data * @param \Arcanedev\LogViewer\Contracts\Utilities\LogLevels $levels * @param string|null $locale */ public function __construct(array $data, LogLevelsContract $levels, $locale = null) { $this->setLevels($levels); $this->setLocale(is_null($locale) ? config('log-viewer.locale') : $locale); $this->setData($data); $this->init(); } /* ----------------------------------------------------------------- | Getters & Setters | ----------------------------------------------------------------- */ /** * Set LogLevels instance. * * @param \Arcanedev\LogViewer\Contracts\Utilities\LogLevels $levels * * @return $this */ protected function setLevels(LogLevelsContract $levels) { $this->levels = $levels; return $this; } /** * Set table locale. * * @param string|null $locale * * @return $this */ protected function setLocale($locale) { if (is_null($locale) || $locale === 'auto') { $locale = app()->getLocale(); } $this->locale = $locale; return $this; } /** * Get table header. * * @return array */ public function header() { return $this->header; } /** * Get table rows. * * @return array */ public function rows() { return $this->rows; } /** * Get table footer. * * @return array */ public function footer() { return $this->footer; } /** * Get raw data. * * @return array */ public function data() { return $this->data; } /** * Set table data. * * @param array $data * * @return $this */ private function setData(array $data) { $this->data = $data; return $this; } /* ----------------------------------------------------------------- | Main Methods | ----------------------------------------------------------------- */ /** * Prepare the table. */ private function init() { $this->header = $this->prepareHeader($this->data); $this->rows = $this->prepareRows($this->data); $this->footer = $this->prepareFooter($this->data); } /** * Prepare table header. * * @param array $data * * @return array */ abstract protected function prepareHeader(array $data); /** * Prepare table rows. * * @param array $data * * @return array */ abstract protected function prepareRows(array $data); /** * Prepare table footer. * * @param array $data * * @return array */ abstract protected function prepareFooter(array $data); /* ----------------------------------------------------------------- | Other Methods | ----------------------------------------------------------------- */ /** * Get log level color. * * @param string $level * * @return string */ protected function color($level) { return log_styler()->color($level); } }