%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/mail/lib/controller/ |
| Current File : /home/bitrix/www/bitrix/modules/mail/lib/controller/base.php |
<?php
namespace Bitrix\Mail\Controller;
use Bitrix\Mail\Internals\Entity\UserSignature;
use Bitrix\Mail\Internals\UserSignatureTable;
use Bitrix\Main\Engine\Binder;
use Bitrix\Main\Engine\Controller;
abstract class Base extends Controller
{
protected function init()
{
parent::init();
Binder::registerParameterDependsOnName(
UserSignature::class,
function($className, $id)
{
return UserSignatureTable::getById($id)->fetchObject();
}
);
}
/**
* @param array $array
* @param int $levels
* @param int $currentLevel
* @return array
*/
protected function convertArrayKeysToCamel(array $array, $levels = 0, $currentLevel = 0)
{
$result = [];
foreach($array as $key => $value)
{
if($levels > 0 && is_array($value) && $currentLevel < $levels)
{
$currentLevel++;
$value = $this->convertArrayKeysToCamel($value, $levels, $currentLevel);
$currentLevel--;
}
$result[$this->toCamelCase($key)] = $value;
}
return $result;
}
/**
* @param array $array
* @param int $levels
* @param int $currentLevel
* @return array
*/
protected function convertArrayKeysToUpper(array $array, $levels = 0, $currentLevel = 0)
{
$result = [];
foreach($array as $key => $value)
{
if($levels > 0 && is_array($value) && $currentLevel < $levels)
{
$currentLevel++;
$value = $this->convertArrayKeysToUpper($value, $levels, $currentLevel);
$currentLevel--;
}
$result[$this->toUpperCase($key)] = $value;
}
return $result;
}
/**
* @param string $string
* @return string
*/
protected function toCamelCase($string)
{
if(is_numeric($string))
{
return $string;
}
$string = str_replace('_', ' ', strtolower($string));
return lcfirst(str_replace(' ', '', ucwords($string)));
}
/**
* @param string $string
* @return string
*/
protected function toUpperCase($string)
{
if(is_numeric($string))
{
return $string;
}
return strtoupper(preg_replace('/(.)([A-Z])/', '$1_$2', $string));
}
}