Zend framework2 ZF2:If教程更改必须在较新的项目中完成
这个问题可能看起来像是基于意见,但我很困惑,也没有发现任何澄清的资源,所以只希望这里的任何机构有更好的想法 我曾在ZF2的测试版期间参与过该项目,并一直工作到第一个稳定版本。我遵循框架应用程序指南来构建项目结构/代码模型、表单和控制器。经过2年的间隔,现在我又得到了一个ZF2项目ZF2库2.2版本,我通过复制我以前的项目源代码文件开发了这个版本。项目正在进行中 但当我签出新版本的骨架应用程序时,我感到困惑,这里的骨架和许多更改都比上一个版本要多。我不知道它们是为了更好,是强制性的还是过度设计的 一些区别是: 在ZF2.0中 表单验证程序就是这样工作的Zend framework2 ZF2:If教程更改必须在较新的项目中完成,zend-framework2,zend-form,zend-db,Zend Framework2,Zend Form,Zend Db,这个问题可能看起来像是基于意见,但我很困惑,也没有发现任何澄清的资源,所以只希望这里的任何机构有更好的想法 我曾在ZF2的测试版期间参与过该项目,并一直工作到第一个稳定版本。我遵循框架应用程序指南来构建项目结构/代码模型、表单和控制器。经过2年的间隔,现在我又得到了一个ZF2项目ZF2库2.2版本,我通过复制我以前的项目源代码文件开发了这个版本。项目正在进行中 但当我签出新版本的骨架应用程序时,我感到困惑,这里的骨架和许多更改都比上一个版本要多。我不知道它们是为了更好,是强制性的还是过度设计的
if (!$this->inputFilter) {
$inputFilter = new InputFilter();
$inputFilter->add(array(
'name' => 'user_id',
'required' => true,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim'),
),
'validators' => array(
------
)));
}
而在ZF2.2中
在ZF2.0中
DB模型就是这样工作的
if (!$this->inputFilter) {
$inputFilter = new InputFilter();
$inputFilter->add(array(
'name' => 'user_id',
'required' => true,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim'),
),
'validators' => array(
------
)));
}
在Module.php中
return array(
'factories' => array(
'Test\Model\UserTable' => function($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$table = new Model\UserTable($dbAdapter);
return $table;
},
),
);
'Application\Model\UserTable' => function($sm) {
$tableGateway = $sm->get('UserTableGateway');
$table = new UserTable($tableGateway);
return $table;
},
'VarietyTableGateway' => function ($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new User());
return new TableGateway('user', $dbAdapter, null, $resultSetPrototype);
},
在模型构造函数中
public function __construct(Adapter $adapter)
{
$this->adapter = $adapter;
$this->resultSetPrototype = new ResultSet();
$this->resultSetPrototype->setArrayObjectPrototype(new User());
$this->initialize();
}
模型就是这样的
$rowset = $this->select(array('id' => $id));
而在ZF2.2中
在Module.php中
return array(
'factories' => array(
'Test\Model\UserTable' => function($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$table = new Model\UserTable($dbAdapter);
return $table;
},
),
);
'Application\Model\UserTable' => function($sm) {
$tableGateway = $sm->get('UserTableGateway');
$table = new UserTable($tableGateway);
return $table;
},
'VarietyTableGateway' => function ($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new User());
return new TableGateway('user', $dbAdapter, null, $resultSetPrototype);
},
不需要模型构造函数设置
模型就是这样查询的
$rowset = $this->tablegateway->select(array('id' => $id));
如果不建议使用较旧的方法,更多或更新的方法只是构建东西的另一种方法。那么问题是什么?我的问题是,正如Zend在教程中将很多东西从2.0更改为2.2一样。因此,如果建议在表单/模型中使用更新的方法,如果是,那么与2.0或它只是另一种工作方式相比有什么优势,我可以自由选择适合我的方法。