PEAR::DB_DataObject

xfox

Guest
PEAR::DB_DataObject

В классе, порожденном от 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;
    }
}
В мануалах этот вопрос практически не освещен =(
Есть правда функция:
fromValue [line 3131]
true | fromValue(string $col, mixed $value)

standard set* implementation.
Пробовал делать функцию setS() и даже set() с двумя параметрами $col и $value, все равно фунции даже не вызываются. мб кто-нибудь сталкивался с этим?

-~{}~ 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 слишком строгой (латиница, кирилица, спецсимволы и пробелы)?
 
Сверху