public function editAction() { $taskService = $this->getServiceLocator()->get('Console\\Service\\TaskService'); $ObjectPropertyHydrator = new ObjectPropertyHydrator(); $form = new TaskForm(); $vars = array('form' => $form); $task_id = $this->params()->fromRoute('task_id', null); if (!empty($task_id)) { $task = $taskService->getTask($task_id); $task_data = $ObjectPropertyHydrator->extract($task); $form->setData($task_data); } $request = $this->getRequest(); if ($request->isPost()) { $post_data = $request->getPost(); $form->setData($post_data); if ($form->isValid()) { $task = new Task(); $ObjectPropertyHydrator->hydrate($form->getData(), $task); $vars['saved_int'] = $taskService->saveTask($task); } } $view_page = new ViewModel($vars); //$view_page = $this->setChildViews($view_page); return $view_page; }
public function update($id, $data) { $hydrator = new ObjectProperty(); $data = $hydrator->extract($data); $this->tableGateway->update($data, array('id' => $id)); return $data; }
public function addJobAction() { if (!$this->getServiceLocator()->get('AuthStatus')->hasIdentity()) { return $this->redirect()->toRoute('login'); } $form = new JobsForm(); $form->get('submit')->setValue('Submit'); /** @var \Zend\Http\PhpEnvironment\Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $validate = new JobsFilter(); $form->setInputFilter($validate->getInputFilter()); $form->setData($request->getPost()); if ($form->isValid()) { $validate->exchangeArray($form->getData()); $hydrator = new Hydrator\ObjectProperty(); $job = new Job(); $data = $hydrator->extract($request->getPost()); $hydrator->hydrate($data, $job); $auth = new AuthAccess(); if ($this->getServiceLocator()->get('AuthStatus')->hasIdentity()) { $job->author = $auth->getRealName(); $job->date_submitted = time(); $this->getJobsTable()->addJob($job); $submission = (string) $this->getJobsTable()->getId(); return $this->redirect()->toRoute('showaddedjob', array('action' => 'showaddedjob', 'param' => $submission)); } else { $this->redirect()->toRoute('login'); } } } return array('form' => $form); }
public function update($id, $data) { $hydrator = new ObjectProperty(); $orderData = $hydrator->extract($data); $items = $orderData['item']; unset($orderData['item']); try { $this->repository->beginTransaction(); $this->repository->update($orderData, $id); $listItemsIds = []; foreach ($items as $item) { if (array_key_exists('id', $item)) { $itemId = $item['id']; $this->repository->updateItem($item, $itemId); } else { $item['order_id'] = $id; $itemId = $this->repository->insertItem($item); } $listItemsIds[] = $itemId; } $this->repository->deleteItemsNotInArray($id, $listItemsIds); $this->repository->commitTransaction(); } catch (Exception $e) { $this->repository->rollbackTransaction(); return false; } return $this->repository->find($id); }
/** * Insert the order resource * @param stdClass $data * @return $order */ public function insert($data) { $hydrate = new ObjectProperty(); $data = $hydrate->extract($data); $orderData = $data; unset($orderData['item']); $items = $data['item']; $tableGateway = $this->repository->getTableGateway(); /** * Watching transactions in orders */ try { $tableGateway->getAdapter()->getDriver()->getConnection()->beginTransaction(); $orderId = $this->repository->insert($orderData); foreach ($items as $item) { $item['order_id'] = $orderId; $this->insertItem($item); } $tableGateway->getAdapter()->getDriver()->getConnection()->commit(); return ['order_id' => $orderId]; } catch (\Exception $e) { $tableGateway->getAdapter()->getDriver()->getConnection()->rollback(); return 'error'; } }
public function insert($data) { $hydrator = new ObjectProperty(); //Hidrate StdClass to array $data->user_id = $this->usersRepository->getAuthenticated()->getId(); $data->created_at = (new \DateTime())->format('Y-m-d'); $data->total = 0; $items = $data->item; unset($data->item); $orderData = $hydrator->extract($data); $tableGateway = $this->repository->getTableGateway(); try { $tableGateway->getAdapter()->getDriver()->getConnection()->beginTransaction(); $order_id = $this->repository->insert($orderData); foreach ($items as $key => $item) { $product = $this->productsRepository->find($item['product_id']); $item['order_id'] = $order_id; $item['price'] = $product->getPrice(); $item['total'] = $items[$key]['total'] = $item['quantity'] * $item['price']; $total += $item['total']; $this->repository->insertItem($item); } $this->repository->update(['total' => $total], $order_id); $tableGateway->getAdapter()->getDriver()->getConnection()->commit(); return ['order_id' => $order_id]; } catch (\Exception $e) { $tableGateway->getAdapter()->getDriver()->getConnection()->rollback(); return 'error'; } }
public function update($id, $data) { $this->find($id); $hydrator = new ObjectProperty(); $this->tableGateway->update($hydrator->extract($data), ['id' => (int) $id]); return $this->find($id); }
public function create($data) { $mapper = new ObjectProperty(); $data = $mapper->extract($data); $this->tableGateway->insert($data); $data['id'] = $this->tableGateway->getLastInsertValue(); return $data; }
/** * Fetch a resource * * @param mixed $ticket_id * @return ApiProblem|TicketEntity */ public function fetch($ticket_id) { $hydrator = new ObjectProperty(); $ticket = new TicketEntity(); $response = $this->client->find($ticket_id); $ticket->exchangeArray($hydrator->extract($response->ticket)); return $ticket; }
public function update($data, $id) { $hydrator = new ObjectProperty(); $data = $hydrator->extract($data); if (!empty($data['password'])) { $bcrypt = new Bcrypt(); $data['password'] = $bcrypt->create($data['password']); } return $this->tableGateway->update($data, $id); }
public function getDocument($id) { $documentTable = new TableGateway('document', $this->adapter); $rs = $documentTable->select(array('id' => intval($id))); if ($rs->count()) { $row = $rs->current(); $ObjectPropertyHydrator = new ObjectPropertyHydrator(); $document = new Document(); $ObjectPropertyHydrator->hydrate($row->getArrayCopy(), $document); return $document; } else { throw new \Exception('data not exsist!'); } }
public function getTask($task_id) { $taskTable = new TableGateway('task', $this->adapter); $rs = $taskTable->select(array('id' => intval($task_id))); if ($rs->count()) { $row = $rs->current(); $ObjectPropertyHydrator = new ObjectPropertyHydrator(); $task = new Task(); $ObjectPropertyHydrator->hydrate($row->getArrayCopy(), $task); return $task; } else { throw new \Exception('data not exsist!'); } }
public function saveAddress(Address $address) { if ($this->checkAddress($address->address)) { // Save now. $addressTable = new TableGateway('address', $this->adapter); $hydrator = new ObjectPropertyHydrator(); $data = $hydrator->extract($address); $addressTable->insert($data); $id = $addressTable->lastInsertValue; return $id; } else { throw new AddressAlreadyExsistException('Address already exsist!'); } }
/** * Returns a collection of items for a page. * * @param int $offset Page offset * @param int $itemCountPerPage Number of items per page * @return array */ public function getItems($offset, $itemCountPerPage) { $params = ['page' => $offset, 'per_page' => $itemCountPerPage]; $result = $this->client->findAll($params); $this->count = $result->count; if (is_array($result->tickets)) { $hydrator = new ObjectProperty(); $tickets = array_map(function ($ticket) use($hydrator) { $array = $hydrator->extract($ticket); $ticket = new TicketEntity(); $ticket->exchangeArray($array); return $ticket; }, $result->tickets); } else { $tickets = []; } return $tickets; }
/** * @param $reverseOauth */ public function auth($reverseOauth) { if ($reverseOauth->getToken($this->request)) { $token = $reverseOauth->getSessionToken(); // token in session } else { $token = $reverseOauth->getError(); // last returned error (array) } $info = $reverseOauth->getInfo(); if ($info) { $em = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager'); $user = $em->getRepository('Application\\Entity\\User')->findOneByEmail($info->email); if ($user) { $user->setLastLogin(time()); $em->persist($user); $em->flush(); $authService = $this->getServiceLocator()->get('Zend\\Authentication\\AuthenticationService'); $authService->getStorage()->write($user); //if it come from other uri then redirect it $traject = new Container('traject'); if ($traject->trajectData) { return $this->redirect()->toRoute('traject/default', ['controller' => 'manage', 'action' => 'success']); } return $this->redirect()->toRoute('board'); } else { $info->firstname = $info->first_name; //to make same name as form elements $info->lastname = $info->last_name; $hydrator = new ObjectProperty(); $data = $hydrator->extract($info); $form = new RegisterForm(); $form->setData($data); $view = new ViewModel(['registerForm' => $form]); $view->setTemplate('user/register/index'); return $view; } } }
public function insert($data) { $hydrator = new ObjectProperty(); $data = $hydrator->extract($data); $order = $data; unset($order['items']); $items = $data['items']; $tableGateway = $this->ordersRepository->getTableGateway(); try { $tableGateway->getAdapter()->getDriver()->getConnection()->beginTransaction(); $orderId = $this->ordersRepository->insert($order); foreach ($items as $item) { $item['order_id'] = $orderId; $this->ordersRepository->insertItem($item); } $tableGateway->getAdapter()->getDriver()->getConnection()->commit(); return ['order_id' => $orderId]; } catch (\Exception $e) { $tableGateway->getAdapter()->getDriver()->getConnection()->rollback(); throw new \Exception(); } }
public function update($id, $data) { $hydrator = new ObjectProperty(); $array = $hydrator->extract($data); $orderData = $array; unset($orderData['item']); $items = $array['item']; $tableGateway = $this->repository->getTablegateway(); try { $tableGateway->getAdapter()->getDriver()->getConnection()->beginTransaction(); $itensAtuais = $this->repository->getOrderItems($id); foreach ($items as $item) { $item['order_id'] = $id; $buscaItem = $this->repository->getOrderItemTablegateway()->select(['order_id' => $item['order_id'], 'product_id' => $item['product_id']]); $idItem = 0; if (count($buscaItem) > 0) { $idItem = (int) $buscaItem->current()->getId(); $this->repository->getOrderItemTablegateway()->update($item, ['id' => $idItem]); } else { $this->repository->insertItem($item); } if (isset($itensAtuais[$idItem])) { unset($itensAtuais[$idItem]); } } foreach ($itensAtuais as $itemExcluir) { $this->repository->getOrderItemTablegateway()->delete(['id' => $itemExcluir['id']]); } $this->repository->update($id, $orderData); $tableGateway->getAdapter()->getDriver()->getConnection()->commit(); return ['order_id' => $id]; } catch (\Exception $exc) { $tableGateway->getAdapter()->getDriver()->getConnection()->rollback(); return 'error'; // echo $exc->getTraceAsString(); } }
public function testExtractDataHydratorStrategy() { $this->populateHydratorStrategyForm(); $hydrator = new Hydrator\ObjectProperty(); $hydrator->addStrategy('entities', new TestAsset\HydratorStrategy()); $this->form->setHydrator($hydrator); $model = new TestAsset\HydratorStrategyEntityA(); $this->form->bind($model); $validSet = array('entities' => array(111, 333)); $this->form->setData($validSet); $this->form->isValid(); $data = $this->form->getData(Form::VALUES_AS_ARRAY); $this->assertEquals($validSet, $data); $entities = $model->getEntities(); $this->assertCount(2, $entities); $this->assertEquals(111, $entities[0]->getField1()); $this->assertEquals(333, $entities[1]->getField1()); $this->assertEquals('AAA', $entities[0]->getField2()); $this->assertEquals('CCC', $entities[1]->getField2()); }
public function exchangeArray($data) { $hydrator = new ObjectProperty(); $hydrator->hydrate($data, $this); }
/** * @param array $item * @return Entity */ protected function createEntity(array $item) { return $this->hydrator->hydrate($item, $this->entityPrototype); }
public function create($data) { $hydrator = new ObjectProperty(); $data = $hydrator->extract($data); return $this->userService->save($data); }
/** * bundle processing 2 */ public function storeAction() { $this->init(); $success = true; if ($success) { $db = new WorkUserEntity(); $row = $db->db()->getWork(); if ($row && $row->create_user) { $success = false; } } $request = $this->getRequest(); if (!$request->isPost()) { $success = false; } if (!$success) { $this->flashMessenger()->addMessage("No allowed"); // $this->flashMessenger()->addMessage("許可されていません。"); return $this->redirect()->toRoute('app', array('controller' => 'failed', 'action' => 'forbidden')); } $form = new WorkUserForm(); $form->startForm(); $filter = new WorkUserFilter(); $token_id = $this->container()->get('token_id'); $this->container()->clear('token_id'); $filter->setCreateToken($token_id); $filter->setStoreInputFilter(); $hydrator = new ObjectProperty(); $post = $request->getPost(); $file = $request->getFiles(); $hydrator->hydrate($file->toArray(), $post); $form->setInputFilter($filter->getInputFilter()); $form->setData($post); $success = $form->isValid(); if (!$success) { $msg = ""; $tmpMsg = ""; $messages = $form->getMessages(); foreach ($messages as $key => $val) { $msg .= $msg ? "\n" : ""; switch ($key) { case 'upload_file': $msg .= $this->translator()->translate("File Error") . "\n"; // $msg .= $this->translator()->translate("【ファイル エラー】") . "\n"; break; case 'token_id': $msg .= $this->translator()->translate("Operation Error") . "\n"; // $msg .= $this->translator()->translate("【操作 エラー】") . "\n"; break; case 'charset': $msg .= $this->translator()->translate("Character Setting Error") . "\n"; // $msg .= $this->translator()->translate("【文字セット 選択エラー】") . "\n"; break; default: $msg .= $this->translator()->translate("Error") . "\n"; // $msg .= $this->translator()->translate("【エラー】") . "\n"; break; } $tmp = current($val); do { if ($tmpMsg == $tmp) { continue; } $msg .= $tmp . "\n"; next($val); $tmpMsg = $tmp; } while ($tmp = current($val)); } $this->flashMessenger()->addMessage($msg); return $this->redirect()->toRoute('app', array('controller' => 'work-user', 'action' => 'start')); } $i = 0; $tmp_name = gv('tmp_name', $file->upload_file); $fp = fopen($tmp_name, 'r'); $line = array(); while ($res = fgetcsv($fp, 1024)) { if (!$success) { break; } // check template if (0 == $i) { ++$i; $success = 'login_id *' == gv('0', $res) && 'user_name *' == gv('1', $res) && 'email *' == gv('2', $res) && 'phone' == gv('3', $res); continue; } if ('utf-8' != $post->charset) { $user_name = mb_convert_encoding(gv('1', $res), 'utf-8', $post->charset); } else { $user_name = gv('1', $res); } $line[] = array('login_id' => gv('0', $res), 'user_name' => $user_name, 'email' => gv('2', $res), 'phone' => gv('3', $res)); } fclose($fp); unlink($tmp_name); if ($success && $line) { $success = $db->insertWorkRecord($this->auth()->getUserInfo(), $line); } else { $this->flashMessenger()->addMessage("Data Error"); // $this->flashMessenger()->addMessage("登録データエラー"); return $this->redirect()->toRoute('app', array('controller' => 'work-user', 'action' => 'start')); } // redirect to list page if ($success) { return $this->redirect()->toRoute('app', array('controller' => 'work-user', 'action' => 'list')); } }
public function update($data, $id) { $hydrator = new ObjectProperty(); $data = $hydrator->extract($data); return $this->tableGateway->update($data, $id); }
<?php require __DIR__ . '/../vendor/autoload.php'; use FUnit as fu; use Zend\Stdlib\Hydrator\ObjectProperty; use Knlv\Zf2\Hydrator\Strategy\DateTimeStrategy; fu::setup(function () { $hydrator = new ObjectProperty(); $strategy = new DateTimeStrategy(); $hydrator->addStrategy('created', $strategy); fu::fixture('strategy', $strategy); fu::fixture('hydrator', $hydrator); }); fu::test('Testing hydrate/extract methods', function () { $hydrator = fu::fixture('hydrator'); $object = new stdClass(); $object->name = 'test'; $object->data = array('data1', 'data2'); $object->created = new DateTime('2015-01-02 10:10:10'); $expected = array('name' => 'test', 'data' => array('data1', 'data2'), 'created' => '2015-01-02 10:10:10'); fu::equal($expected, $hydrator->extract($object), 'Assert extract works'); fu::equal($object, $hydrator->hydrate($expected, new stdClass()), 'Assert hydrate works'); }); fu::test('Test set/get format methods', function () { $strategy = fu::fixture('strategy'); fu::equal($strategy::DEFAULT_FORMAT, $strategy->getFormat(), 'Assert default format if no other set'); $strategy->setFormat(DateTime::ATOM); fu::equal(DateTime::ATOM, $strategy->getFormat(), 'Assert format changed'); }); fu::test('Test set/get timzone methods', function () { $strategy = fu::fixture('strategy');
/** * Update a resource * * @param mixed $id * @param mixed $data * @return ApiProblem|mixed */ public function update($id, $data) { $user = $this->usersRepository->findByUsername($this->getIdentity()->getRoleId()); if ($user->getRole() != "admin") { return new ApiProblem(403, "Access denied for this user."); } $hydrator = new ObjectProperty(); $data = $hydrator->extract($data); return $this->repository->update($data, ['id' => $id]); }
/** * Maps a value to a DynamoDb attribute and returns the array * * @param mixed $value The Value to map to a DynamoDB Data Attribute * * @return array */ protected function _formatValues($values) { foreach ($values as &$datapoint) { if (is_array($datapoint) || is_object($datapoint)) { // Get the properties of the class either from Array hydrator or public properties if (is_object($datapoint)) { if ($datapoint instanceof ArraySerializableInterface) { $hydrator = new ArraySerializable(); } else { $hydrator = new ObjectProperty(); } $datapoint = $hydrator->extract($datapoint); } $datapoint = ['M' => $datapoint]; } elseif (is_numeric($datapoint)) { $datapoint = [Type::NUMBER => $datapoint]; } elseif (is_bool($datapoint)) { $datapoint = [Type::BINARY => (bool) $datapoint]; } else { $datapoint = [Type::STRING => (string) $datapoint]; } } return $values; }
/** * @iterations 20000 * @group extraction */ public function objectPropertyExtract() { $data = $this->objectPropertyHydrator->extract($this->hydratedObject); }
/** * Update a resource * * @param mixed $id * @param mixed $data * @return ApiProblem|mixed */ public function update($id, $data) { $hydrator = new ObjectProperty(); $data = $hydrator->extract($data); return $this->repository->update($data, ['id' => $id]); }
<?php require __DIR__ . '/../vendor/autoload.php'; use FUnit as fu; use Zend\Stdlib\Hydrator\ObjectProperty; use Knlv\Zf2\Hydrator\Strategy\MultilineTextStrategy; fu::setup(function () { $hydrator = new ObjectProperty(); $strategy = new MultilineTextStrategy(); $hydrator->addStrategy('items', $strategy); fu::fixture('strategy', $strategy); fu::fixture('hydrator', $hydrator); }); fu::test('Testing hydrate/extract methods', function () { $hydrator = fu::fixture('hydrator'); $object = new stdClass(); $object->name = 'test'; $object->items = array('item1', 'item2', 'item3', 'item4', 'item5'); $expected = array('name' => 'test', 'items' => <<<EOL item1 item2 item3 item4 item5 EOL ); fu::equal($expected, $hydrator->extract($object), 'Assert extract works'); fu::equal($object, $hydrator->hydrate($expected, new stdClass()), 'Assert hydrate works'); });
/** * set translate file * @return ViewModel */ public function fileStoreAction() { $this->init(); $request = $this->getRequest(); if (!$request->isPost() || 2 > $this->ctrlLv) { exit; } $form = new LanguageForm(); $form->setFileUpForm(); $filter = new LanguageFilter(); $token_id = $this->container()->get('token_id'); $this->container()->clear('token_id'); $filter->setCreateToken($token_id); $filter->setStoreInputFilter(); $hydrator = new ObjectProperty(); $post = $request->getPost(); $file = $request->getFiles(); $hydrator->hydrate($file->toArray(), $post); $form->setInputFilter($filter->getInputFilter()); $form->setData($post); $success = $form->isValid(); if (!$success) { $token_id = make_token_id(); $this->container()->set('token_id', $token_id); $form->get('token_id')->setAttribute('value', $token_id); $values = array('controller' => 'language', 'action' => 'file-store', 'form' => $form, 'label' => 'Translate File', 'max_size' => 524288); $view = new ViewModel($values); $view->setTemplate('/common/file-upload.phtml'); $view->setTerminal(true); return $view; } // ***** save file $dir_name = APP_DIR . '/module/App/language/'; $file_name = gv('name', $file->upload_file); $tmp_name = gv('tmp_name', $file->upload_file); // delete file in server if (file_exists($dir_name . $file_name)) { unlink($dir_name . $file_name); } // re-set file $success = move_uploaded_file($tmp_name, $dir_name . $file_name); if ($success) { $cmd = "msgfmt -o {$dir_name}" . str_replace('.po', '.mo', $file_name) . " " . $dir_name . $file_name; system($cmd, $success); } if (0 === $success) { $message = 'Completed'; // $message = '処理完了'; } else { $message = 'Failed'; // $message = '処理失敗'; } $view = new ViewModel(array('message' => $message)); $view->setTemplate('/common/message.phtml'); $view->setTerminal(true); return $view; }