103 lines
2.1 KiB
PHP
103 lines
2.1 KiB
PHP
<?php
|
|
/**
|
|
* Класс преобразования типа значения поля класса в тип поля таблицы
|
|
* @package core
|
|
*/
|
|
class Primitive
|
|
{
|
|
public $value;
|
|
public $name;
|
|
public function __construct ($name = "")
|
|
{
|
|
$this->name = $name;
|
|
}
|
|
|
|
// Преобразование из внешнего вормата
|
|
public function setString ($value)
|
|
{
|
|
$this->value = $value;
|
|
}
|
|
|
|
// Преобразование из формата базы данных
|
|
public function setRes ($res, $key)
|
|
{
|
|
$this->value = $res->getString ($key);
|
|
}
|
|
|
|
public function __toString ()
|
|
{
|
|
return ((string) $this->value);
|
|
}
|
|
|
|
// Преобразование во внешний формат
|
|
public function getString ()
|
|
{
|
|
return $this->__toString ();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Отображение поля таблицы в целое число
|
|
* @package core
|
|
*/
|
|
class Int4 extends Primitive {
|
|
public function setRes ($res, $key) {
|
|
$this->value = $res->getInt ($key);
|
|
}
|
|
|
|
public function setString ($value) {
|
|
$this->value = ((int) $value);
|
|
}
|
|
}
|
|
|
|
/* Foreign key */
|
|
class FKey extends Int4 {}
|
|
|
|
/**
|
|
* Отображение поля таблицы в дату - время
|
|
*/
|
|
class Date extends Primitive
|
|
{
|
|
public function setRes ($res, $key)
|
|
{
|
|
$this->value = $res->getInt ($key);
|
|
}
|
|
|
|
public function setString ($value)
|
|
{
|
|
$this->value = 0;
|
|
if ($tmp = explode("/",$value,3)) {
|
|
if ($tmp[1] && $tmp[0] && $tmp[2]) {
|
|
if (checkdate($tmp[1], $tmp[0], $tmp[2])) {
|
|
$this->value = mktime(0, 0, 0, $tmp[1], $tmp[0], $tmp[2]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public function getString ()
|
|
{
|
|
return date ("d/m/Y", $this->value);
|
|
}
|
|
}
|
|
|
|
/**
|
|
*
|
|
*/
|
|
class Password extends Primitive
|
|
{
|
|
public function setRes ($res, $key)
|
|
{
|
|
$this->value = $res->getString($key);
|
|
}
|
|
|
|
public function setString ($value)
|
|
{
|
|
$this->value = md5($value);
|
|
}
|
|
|
|
public function getString ()
|
|
{
|
|
return $this->value;
|
|
}
|
|
}
|