扩展[Namespace] _Model_ [Table]类。它安全吗?

我是新来的PHP和Zend框架,并填写有关下列非常不确定:扩展[Namespace] _Model_ [Table]类。它安全吗?

例如,我有两个表:

表1:箱(ID,高度,宽度,长度,重量)
表2:标签(ID,boxid,文本,位置)

labels.boxid - > box.id

(labels.boxid为primary_key box.id一个foreign_key)

我为两个表都生成了两个单独的标准Zend_Db_Table_Abstract + Model + Mapper类,它们包含所有set,get,fetchAll,fetchList方法。

问题:是安全的盒子模型扩展到LabeledBox模型类是这样的:

class NS_Model_LabeledBoxMapper extends NS_Model_BoxMapper { 

public function fetchAll()

{

$resultSet = $this->getDbTable()->fetchAll();

$entries = array();

foreach ($resultSet as $row) {

$entry = new NS_Model_Box();

...setting box properties code...

//fetching and setting labels for the box

$labels = new NS_Model_Labels();

$entry->setLabels(

$labels->fetchList("boxid='" . $row->id . "'")

);

}

$entries[] = $entry;

}

}

让我终于可以运行:与映射器类这样沿着

class NS_Model_LabeledBox extends NS_Model_Box { 

protected $_labels;

public function setLabels($objs)

{

$this->_labels=$objs;

return $this;

}

public function getLabels()

{

return $this->_labels;

}

public function getMapper()

{

if (null === $this->_mapper) {

$this->setMapper(new NS_Model_LabeledBoxMapper());

}

return $this->_mapper;

}

}

$labeledbox = new NS_Model_LabeledBox(); 

$entries = $labeledbox->fetchAll();

foreach($entries as $entry)

{

echo $entry->getId();

echo $entry->getWeight();

foreach($entry->getLabels() as $lables)

{

echo $lables->getText();

}

}

此代码适合我。 我只是不想被留下来,如果有任何重大变化,可能会影响这个“技巧”(它仍然适用于OOP范例)的ZF的新版本。

回答:

你确实提出了一个关于碰到移动目标的好方法,到目前为止,Zend Framework已经是这样。我在ZF 1.7.x上开始了两个不同的项目,并且由于ZF的变化,已经重写了一些类。当然,这更多的是希望能够与ZF的“稳定”版本保持同步,所以我并不需要。

Zend Framework当然是一个快速移动的框架,这是您在编写代码时需要考虑的事情,特别是因为在2.0.x发布时有关于打破向后兼容性的讨论。

以上是 扩展[Namespace] _Model_ [Table]类。它安全吗? 的全部内容, 来源链接: utcz.com/qa/265611.html

回到顶部