xfox
Guest
PEAR:
B_DataObject
В классе, порожденном от DB_DataObject хочу добавить свои обработчики SetXXXX и
GetXXXX для установки и получения значения из определенных полей бд (например чтобы прозрачно преобразовывать строку через strupper). Перегрузить get удается, а вот set почему-то не работает
В мануалах этот вопрос практически не освещен =(
Есть правда функция:
-~{}~ 21.06.04 19:20:
Все. Разобрался. Судя по всему setXXXX вызывается только при установке значений через setFrom() =(
-~{}~ 22.06.04 17:39:
Интересный момент нашел... Такое ощущение, что в DB_DataObject не правильно происходит валидация полей типа DB_DATAOBJECT_STR, точнее она не производится, так как параметры для Validate::string($string, $option) передаются не правильно ($option должен быть массивом, а передают строку) Мб конечно класс Validate в alpha версии... В любом случае, не кажется ли вам проверка DB_DATAOBJECT_STR слишком строгой (латиница, кирилица, спецсимволы и пробелы)?

В классе, порожденном от DB_DataObject хочу добавить свои обработчики SetXXXX и
GetXXXX для установки и получения значения из определенных полей бд (например чтобы прозрачно преобразовывать строку через strupper). Перегрузить get удается, а вот set почему-то не работает
PHP:
class DataObjects_my extends DB_DataObject
{
var $id; // int(11) not_null primary_key auto_increment
var $s;
//
// пропущено
function getS()
{
return strtoupper($this->s);
}
function setS($value)
{
$this->s=strtolower($value);
return true;
}
}
Есть правда функция:
Пробовал делать функцию setS() и даже set() с двумя параметрами $col и $value, все равно фунции даже не вызываются. мб кто-нибудь сталкивался с этим?fromValue [line 3131]
true | fromValue(string $col, mixed $value)
standard set* implementation.
-~{}~ 21.06.04 19:20:
Все. Разобрался. Судя по всему setXXXX вызывается только при установке значений через setFrom() =(
-~{}~ 22.06.04 17:39:
Интересный момент нашел... Такое ощущение, что в DB_DataObject не правильно происходит валидация полей типа DB_DATAOBJECT_STR, точнее она не производится, так как параметры для Validate::string($string, $option) передаются не правильно ($option должен быть массивом, а передают строку) Мб конечно класс Validate в alpha версии... В любом случае, не кажется ли вам проверка DB_DATAOBJECT_STR слишком строгой (латиница, кирилица, спецсимволы и пробелы)?