Pular para o conteúdo

Populate Object - Aumentando a produtividade de forma bastante simples (PHP + formulário HTML)

Dica publicada em PHP / Avançado
Maurílio Henrique mhrc
Hits: 7.128 Categoria: PHP Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar

Populate Object - Aumentando a produtividade de forma bastante simples (PHP + formulário HTML)

Olá pessoal, esta é a minha primeira contribuição com a comunidade VOL.

Estou desenvolvendo um framework em PHP para usar como ferramenta de desenvolvimento no meu dia a dia, e claro, visando uma maior produtividade escrevi um código "PopulateObject" que não faz nada de mais, apenas "linka" um formulário com um objeto, assim na hora de algum cadastro, não ficar dando sets e sets, lembrando que funciona apenas com projetos orientados a objeto.

Este conceito não é novo, certamente deve existir outros e outras formas, mas não há mal em divulgar mais uma.

Bom, o código em si é até bastante simples:

class PopulateObject {

   public static function populate(&$object, $_POST) {
      foreach ($_POST as $name => $value) {
         try {
            $object->set($name, $value);
         } catch (Exception $ex) {
            throw new Exception($ex->getMessage());
         }
      }
   }
}
?>

E para o script funcionar corretamente existem algumas regras:
  1. O sistema deve ser orientado a objeto.
  2. A classe deve conter os métodos get($prop) e set($prop,$value)
  3. Os campos html devem ter o mesmo nome dos atributos da classe.
  4. Use o method POST

Para usar veja este pequeno exemplo:

# formulario.html



    

        

  • Formulario:

  •         Id:

            Atributo1:

            Atributo2:

            Atributo3:


            Atributo3:


            
        


    # classe.php


    class Modelo1 {

       private $id;
       private $atributo1;
       private $atributo2;
       private $atributo3;

       function set($at, $vl) {  $this->$at = $vl; }
       function get($name) { return $this->$name; }

    }

    Usando o script:

    function gravar() {
       $modelo = new Modelo1();
       PopulateObject::populate($modelo, $_POST);
       try {
          Modelo1DAO::insert($modelo);
          Fyphp::forward("Views/mensagens/operacaoSucesso.php");
       } catch (Exception $ex) {
          Fyphp::forward("Views/mensagens/operacaoFalha.php");
       }
    }

    Bom, é isso, sinta-se livre pra fazer o que quiser com o código.

    Nenhuma dica encontrada.

    Cadastrar eventos/compromissos no Google Agenda com cURL [PHP]

    Instalando Zend Framework

    Agilizando criação de formulários em PHP usando o laço FOR

    Integração da mPDF no CodeIgniter 4 usando composer

    Funções com nomes variáveis em PHP, isso existe sim!

    #1 Comentário enviado por removido em 13/08/2010 - 13:48h
    Cuidado com SQL injection, não é nada recomendado trabalhar assim...

    []'s
    #2 Comentário enviado por mhrc em 13/08/2010 - 15:25h
    No caso uso addslashes e stripslashes nos get/sets...


    Contribuir com comentário

    Entre na sua conta para comentar.