Jump to content

Marcio Vinicius Silva

Members
  • Content count

    40
  • Joined

  • Last visited

Community Reputation

4 Comum

1 Follower

About Marcio Vinicius Silva

  • Birthday 06/02/1992

Informações Pessoais

  • Sexo
    Masculino
  • Localização
    São Paulo, SP

Contato

  • Twitter
    @segueomarcio
  • Site Pessoal
    domarcio.com.br
  1. Boa tarde galera! A Akna Software tem em aberto duas vagas para Programador PHP. Se for de interesse de alguém, por favor encaminhe o currículo para o meu email e lá eu tiro qualquer dúvida que possa existir: marcio.vinicius@akna.com. Lembrando que as oportunidades são para atuar em São Paulo, Capital. Abaixo maiores detalhes sobre as vagas. Conhecimentos requeridos: Conhecimento em PHP Código legado: 5.1, 5.3; Novos projetos em andamento: 7.1; Laravel >= 5.2; MySQL; Programação Orientada a Objetos (POO); Git; Linux (A distro que você preferir). Conhecimentos desejáveis: Docker; REST. Pontos importantes: CLT; Vale Refeição, Vale Alimentação e Vale Transporte; Ambiente divertido e galera do bem. Conforme dito, para mais informações, mande no email. Valeu.
  2. Marcio Vinicius Silva

    Validação de dados

    Pessoal, boa noite! Minha dúvida seria a melhor maneira (ou a mais cabível) para resolver meu problema de validação. Pois bem... Tenho uma classe Acao (Entity\Acao) e um "Storage" (Table\Acao), onde o último faz a lógica com Banco. Minha validação hoje se encontra na Entity da seguinte maneira: <?php namespace Emkt\API\Model\Entity; use ArrayObject; use Emkt\API\Model\Filter\Acao as AcaoFilter; use Zend\InputFilter\InputFilterAwareInterface; use Zend\InputFilter\InputFilterInterface; use Zend\Stdlib\Hydrator\ObjectProperty; class Acao implements InputFilterAwareInterface { /** * Filtro * @var \Zend\InputFilter\InputFilterInterface */ private $filter; public $emcam_codigo; public $emcam_tipo_acao; public $emcam_titulo; public function setInputFilter(InputFilterInterface $inputFilter) { $this->filter = $inputFilter; } public function getInputFilter() { if (null === $this->filter) { $this->filter = new AcaoFilter(); } return $this->filter; } public function getMessagesError() { $filter = $this->getInputFilter(); $inputError = $filter->getInvalidInput(); $messages = array(); foreach ($inputError as $error) { $messages[$error->getName()] = $error->getMessages(); } return $messages; } public function isValid() { $filter = $this->getInputFilter(); $filter->setData($this->getArrayCopy()); $valid = $filter->isValid(); if ($valid) { $this->getArrayCopy($filter->getValues()); } return $valid; } public function exchangeArray(array $data) { $hydrator = new ObjectProperty(); $hydrator->hydrate($data, $this); } public function getArrayCopy() { $toArray = array(); $toArray['emcam_codigo'] = $this->emcam_codigo; $toArray['emcam_tipo_acao'] = $this->emcam_tipo_acao; $toArray['emcam_titulo'] = $this->emcam_titulo; return $toArray; } } O problema aqui é quando faço o método UPDATE, porque eu preciso que no POST ele valide todos os campos (tipo e título) da minha Entity Ação e no UPDATE não, ele só deve validar o que for passado. Esse é o trecho de código presente hoje no Storage que faz a validação: ... $acaoEntity = new AcaoEntity(); $acaoEntity->exchangeArray($data); $valid = $acaoEntity->isValid(); if ( ! $valid) { $errors = $acaoEntity->getMessagesError(); return ['erros' => $errors]; } O método exchangeArray() passa para a Entity os valores de $data, o problema é que mesmo quando esses valores não são passados (No caso do UPDATE) eu preciso que ele valide apenas os dados de $data. Deu pra entender?rs Eu estou pensando em tirar a validação de dentro da Entity e jogar para o Storage, mas não sei se é uma boa opção. O que acham? Alguma ideia diferente? Valeu!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.