Вспомогательные классы

В системе есть ряд вспомогательных классов, для часто-используемых операций

  • Format (Kernel\Framework\Format) — Используется для получения форматированного вывода
  • String (Kernel\Framework\String) — различные строковые операции
  • Transfer (Kernel\Framework\Transfer) — curl запросы
  • UploadHelper (Kernel\Framework\UploadHelper) — для работы с references.upload и физическими файлами

Format

use Kernel\Framework\Format;

Глобальные константы формата даты:

"DB_FORMAT"               => "Y-m-d H:i:s"
"DB_FORMAT_RENDER"        => "d.m.Y H:i:s"
"DB_FORMAT_MINUTE"        => "Y-m-d H:i"
"DB_FORMAT_MINUTE_RENDER" => "d.m.Y H:i"
"DB_FORMAT_SHORT"         => "Y-m-d"
"DB_FORMAT_SHORT_RENDER"  => "d.m.Y"
"DB_FORMAT_TIME"          => "H:i"
"DB_FORMAT_TIME_FULL"     => "H:i:s"
"DB_FORMAT_ATOM"          => "Y-m-d\TH:i:sP"

Получить чистый номер телефона без форматирования

String public static function parsePhone(String $phone, String $prepend=»8″)
$phone — форматированный телефон
$prepend — что подставлять перед номером

Пример:

<?php
use Kernel\Framework\Format;
 
Format::parsePhone("+7 (811) 444-33-22");
//Вернет 88114443322
?>

Получить форматированный номер телефона

String public static function renderPhone(String $phone)
$phone — любой формат телефон

Пример:

<?php
use Kernel\Framework\Format;
 
Format::renderPhone("88114443322");
//Вернет +7 (811) 444-33-22
 
Format::renderPhone("+78114443322");
//Вернет +7 (811) 444-33-22
 
Format::renderPhone("+7 (811) 444-33-22");
//Вернет +7 (811) 444-33-22
?>

Получить формат даты по умолчанию для БД

String public static function DBFormat(Bool $onlyDate = false)
$onlyDate — если true то время будет отсекаться

Получить between фильтр для orm

String public static function DateBetween(int|String $valueStart, int|string|null $valueEnd = null, Bool $isShort = false, Bool $appendDay = true)
$valueStart — Дата начала. задается или строкой или timestamp.
$valueEnd — Дата окончания. задается или строкой или timestamp. Если не задан, устанавливается текущая дата и время;
$isShort — если true, то участвовать будет только дата, а время отсекается.
$appendDay — если true, то к valueEnd добавляется один день

Пример:

<?php
use Kernel\Framework\Format;
use Kernel\Database\Database as DB;
$condition = DB::_between(DB::Field("date", "documents.deals"), Format::DateBetween($this->filters->dateMin->get(), $this->filters->dateMax->get()));
?>

Форматированный вывод даты с наклоном на «Сегодня H:i» если заданная дата isNowDay

String public static function renderDate(string|int $stamp, string $format = DB_FORMAT_MINUTE_RENDER)
$stamp — Дата задается или строкой или timestamp.
$format — Формат вывода если не NowDay.

Проверка на текущий день

Bool public static function isNowDay(string|int $stamp)
$stamp — Дата задается или строкой или timestamp.

Проверка на текущий месяц

Bool public static function isNowMonth(string|int $stamp)
$stamp — Дата задается или строкой или timestamp.

Проверка на текущий год

Bool public static function isNowYear(string|int $stamp)
$stamp — Дата задается или строкой или timestamp.

Получить Prototype Field

Field public static function getField(string $structureName, string $fieldName)
$structureName — Название объекта
$fieldName — Название поля

Пример:

<?php
use Kernel\Framework\Format;
$field = Format::getField("documents.orders", "date");
?>

Получить дату без учета timezone. Временная зона устанавливается как на сервере для установки в ORM или других действий.

String public static function setDate(\Kernel\Data\Field $field, String $format, string|int $date = null, int $user_id = null)
$field — Поле объекта
$format — Возвращаемый формат
$date — Дата задается или строкой или timestamp. По умолчанию now.
$user_id — Для получения даты с учетом timezone другого пользователя системы

Пример:

<?php
use Kernel\Framework\Format;
$dateStart = Format::setDate(Format::setField("documents.task", "date_start"), "d.m.Y H:i:s", strtotime($dateStart));
?>

Дату рассчитать с учетом timezone

String public static function getDate(\Kernel\Data\Field $field, string $format, string|int $date = null, int $user_id = null )
$field — Поле объекта
$format — Возвращаемый формат
$date — Дата задается или строкой или timestamp. По умолчанию now.
$user_id — Для получения даты с учетом timezone другого пользователя системы

Пример:

<?php
use Kernel\Framework\Format;
$dateWithTimezone = Format::getDate(Format::getField("documents.task", "date_start"), "d.m.Y H:i:s", strtotime($dateStart));
?>

Вернет массив по времени

Array public static function getTimeTextWithIcons(String $time)
$time — в формате H:i
Пример:

<?php
use Kernel\Framework\Format;
$struct = Format::getTimeTextWithIcons("14:45");
//struct = ["time"=>"14:45", "text"=>"День", "img"=>"/img/cf_ui/day/day.png"];
?>

Вернет массив id от MULTIPOINTER поля или такого же JSON

Array public static function getIds(String $valueJson)
$valueJson — Json строка

Пример:

<?php
use Kernel\Framework\Format;
$id = Format::getIds("[{"id":1},{"id":2}]");
//struct = [1=>1, 2=>2];
?>

String

use Kernel\Framework\String;

Форматированная цена

String public static function money(String $sum)
$num — цена в строковом эквиваленте

Пример:

<?php
use Kernel\Framework\String;
String::money("7276152.5");
//вернет 7'276'152.50 
?>

Автоматический форматированный размера по байтам

String public static function bytes(String $bytes, String $separator=» «)
$bytes — Размер в байтах

Пример:

<?php
use Kernel\Framework\String;
String::bytes("3292528");
//вернет 3.14 MB 
?>

UploadHelper

use Kernel\Framework\UploadHelper;

Ручная загрузка файла в систему

UploadHelper public static function createUpload($blindName, $fileName, $fileTemp)
$blindName — Название структуры в формате documents.orders:2

Пример:

<?php
use Kernel\Framework\UploadHelper;
UploadHelper::createUpload($this->structure->getBlind(), $_FILES["file"]["name"], $_FILES["file"]["tmp_name"]);
//вернет object Entry: References.Uploads
?>
Последние правки: 02.08.2019 16:04:28