Zend\Stdlib\Hydrator
Um objeto Hydrator possui o método hydrate(), que espera dois parâmetros. O primeiro é um array contendo várias sequências de referência ligadas à um valor cada, e o segundo parâmetro é um objeto qualquer. O que irá acontecer no processo do método é inserir o valor de cada referência no atributo que possui o mesmo nome daquela referência.
Como exemplo, se fizéssemos um hydrate entre um array(“name” => “Computer”, “amount” => 10) e um objeto Product com os atributos name e amount, o resultado seria o atributo name do objeto product com valor computador e o atributo amount com o valor 10.
Abaixo segue um bloco de códigos referentes a uma busca em um controller. Repare que ele faz a busca usando um select, normalmente, e depois captura o ResultSet dessa busca e faz um hydrate entre ele e um objeto da classe Objeto. O resultado com certeza é um objeto populado com o valores do ResultSet.
class ExampleController extends AbstractActionController
{
$adapter = $this->getServiceLocator()->get(‘Zend\Db\Adapter\Adapter’);
$select = new Sql($adapter, ‘product’)->select();
$select->where(array(‘id’ => ‘12’));
$select->order(‘name desc’);
$rowset = $productModel->selectWith($select);
$row = $rowset->current();
$objeto = new Entity\Product();
$hydrate = new Zend\Stdlib\Hydrator\ClassMethods(true);
$hydrate->hydrate($row->getArrayCopy(), $objeto);
return array();
}
|