поля таблицы - методы

Ноябрь

Новичок
поля таблицы - методы

для реализации такой схемы взаимодействия с базой данных обязательно ли писать собственные классы для каждой таблицы?
нет ли чего-нибудь типа
$t1 = new dbx("bd1","t1");
?
 

zerkms

TDD infected
Команда форума
твой класс вполне может брать метаинформацию и сам, из таблицы
 

Ноябрь

Новичок
но есть ли смысл, если уже существуют готовые классы или библиотеки?
 

AmdY

Пью пиво
Команда форума
Ноябрь есть, ищи ORM, применяется в большинстве популярных фреймворках
 

zerkms

TDD infected
Команда форума
но есть ли смысл, если уже существуют готовые классы или библиотеки?
смотря какую преследовать цель. написание орм, хоть и довольно сложная задача и долгая, но именно поэтому - дающая неплохой экспериенс
 

Ноябрь

Новичок
PHP:
public function testSubselectInJoin()
    {
        $this->criteria->setTable('table');
        $this->criteria->addSelectField('table.*')->addSelectField('foo.id', 'foo_id');

        $criteria = new criteria('zzz');
        $criteria->add('asd', 666);

        $this->criteria->addJoin($criteria, new criterion('x.id', 'table.id', criteria::EQUAL, true), 'x');

        $this->assertEqual($this->select->toString(), "SELECT `table`.*, `foo`.`id` 
AS `foo_id` FROM `table` LEFT JOIN (SELECT * FROM `zzz` 
WHERE `zzz`.`asd` = 666) `x` ON `x`.`id` = `table`.`id`");
    }
заглянул в соседний топик.. что-то не нравится мне эта тема..
я надеялся:) на что-то типа
PHP:
echo $t1->name(1);//имя
$t1->name(1,'новое имя');
echo $t1->name(1);//новое имя
ps
criteria это платформа БД?
 

AmdY

Пью пиво
Команда форума
http://framework.zend.com/manual/en/zend.db.table.html
 

Ноябрь

Новичок
Как думаете, удобно ли работать с таким классом?
PHP:
echo $tbl1 -> name(1);//Cyril
echo $tbl1 -> name(1,'newName');//newName
echo $tbl1 -> name(dbx::ADD,"Cyril");//2
echo $i=$tbl1 -> sname(dbx::TOLAST,"Jakovlev");//2
echo $tbl1 -> name($i).' '.$tbl1 -> sname($i);//Cyril Jakovlev
только я не представляю как это сделать не генерируя код для класса..

зато я представляю как сделать так:
PHP:
echo $tbl1 -> name -> get(1);//Cyril
echo $tbl1 -> name -> set(1,'newName');//newName
echo $tbl1 -> name -> add("Cyril");//2
echo $i = $tbl1 -> sname -> addToLast("Jakovlev");//2
echo $tbl1 -> name -> get($i).' '.$tbl1 -> sname -> get($i);//Cyril Jakovlev
однако первый синтаксис мне нравится больше..
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
:confused:
Один фиг.

-~{}~ 08.02.08 23:48:

Смотрел 10 минут, пытаясь въехать
Ниасилил. :(
 
Сверху