扩展[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