phplibrary/src/Primitive.php

121 lines
2.7 KiB
PHP

<?php
/**
* Преобразование типов !!! Пересмотреть использование классов!!
* Класс преобразования типа значения поля класса в тип поля таблицы
* @package system
*/
namespace ctiso;
class Primitive {
// varchar
public static function to_varchar($value)
{
return ((string) $value);
}
public static function from_varchar($value)
{
return $value;
}
// int
public static function to_bool($value)
{
return filter_var($value, FILTER_VALIDATE_BOOLEAN);//(int)((bool) $value);
}
public static function from_bool($value)
{
return ((bool) $value);
}
// int
public static function to_int($value)
{
return ((int) $value);
}
public static function from_int($value)
{
return ((string) $value);
}
// date
public static function to_date($value)
{
$result = 0;
$tmp = explode("/", $value, 3);
if (!empty($tmp)) {
if (count($tmp) != 3) return $result;
$year = (int)$tmp[2];
$month = (int)$tmp[1];
$day = (int)$tmp[0];
if ($month != 0 && $day != 0 && $year != 0) {
if (checkdate($month, $day, $year)) {
return mktime(0, 0, 0, $month, $day, $year);
} else {
return 0;
}
}
}
return $result;
}
public static function to_datetime($value)
{
$result = 0;
$tmp = array();
if (preg_match('/(\d+)-(\d+)-(\d+)T(\d+):(\d+)Z/', $value, $tmp)) {
if (checkdate($tmp[2], $tmp[3], $tmp[1])) {
$result = mktime($tmp[4], $tmp[5], 0, $tmp[2], $tmp[3], $tmp[1]);
}
}
return $result;
}
public static function from_date($value)
{
if ($value > 0) {
return date("d/m/Y", $value);
}
return '';
}
public static function from_datetime($value)
{
if ($value > 0) {
return date("Y-m-d\TH:i\Z", $value);
}
return '';
}
// secure
public static function to_secure($value)
{
// Значение приабразуется во время сохранения в базе данных
return $value;
}
public static function from_secure($value)
{
return $value;
}
// array
public static function to_array($value)
{
return (is_array($value)) ? $value : array();
}
public static function from_array($value)
{
return $value;
}
}