在zf2中使用Models的好理由?

时间:2014-09-16 10:20:06

标签: model zend-framework2

我在zf2项目上重新考虑了我的代码,我注意到使用Model类(Entity)并不是必需的。 例如,典型的模型是(并且内部没有其他方法):

namespace Application\Model\Entity;
use Application\Model\Entity;

    class User extends Entity{

        const DB_TYPE = 'main';
        public $id;
        public $username;
        public $password;
        public $is_super;


        public function exchangeArray($data)
        {
            $this->id     = (isset($data['id'])) ? $data['id'] : null;
            $this->username = (isset($data['username'])) ? $data['username'] : null;
            $this->password = (isset($data['password'])) ? $data['password'] : null;
            $this->is_super = (isset($data['is_super'])) ? $data['is_super'] : null;

        }
    }

存储库方法将是:

public function fetchAllOrdered($orderby, $asc_desc='asc')
{
    $select = new \Zend\Db\Sql\Select;
    $select->from( 'user' );
    $select->columns(array('*'))->order($orderby.' '.$asc_desc);

    return $this->tableGateway->selectWith($select);
}

我注意到tableGateway不需要模型定义(用于select / insert / update),在任何情况下,从用户表中选择时它将返回一个ArrayObject。在大多数情况下,在进行连接或自定义查询时不使用模型。

例如我的一个缺点是,如果我更新表(添加或删除列),我还应该更新模型。

  • 我为什么要使用模特?
  • 有什么好处?
  • 模型是否会影响查询的效果?

0 个答案:

没有答案