RSS
 

Archive for janeiro, 2010

Como verificar se o usuário está logado – Zend Framework

29 jan

Developers,

trago hoje uma dica rápida sobre como verificar se um usuário está ou não logado no seu sistema usando Zend Framework. Normalmente, funções comuns como esta, entre os módulos de uma aplicação, eu agrupo todas em um só arquivo.

Função

/**
 * Verifica a autenticação do usuário
 *
 * @return bool
 */
function isLogged()
{
    return Zend_Auth::getInstance()->hasIdentity();
}

É de grande ajuda pois evita chamar toda hora Zend_Auth::getI…..

Como usar?

if( isLogged() ) ...

É isso pessoal! Abraços!

 
 

O que há de novo no Zend Framework 1.10

28 jan

Developers,

está disponível para download o Zend Framework 1.10.0 Stable Released. Esta versão está com muitas funcionalidades novas e também grandes mudanças para a nossa documentação.

Nossa documentação foi reorganizada em novas seções. Anteriormente o nosso manual era dividido por capítulos e por componentes.  Esses capítulos em uma nova seção “Zend Framework Reference“. Também foi acrescentada a documentação a seção “Learning Zend Framework” para quem quer aprender Zend Framework com uma série de tutoriais e inclusive o nosso ex-guia “Quick Start”.

Outra grande mudança vista em nossa documentação foi o versionamento, com isso você desenvolvedor poderá encontrar tanto o manual quanto a documentação da API de versões do Zend Framework(1.10, 1.9, 1.8, 1.7, 1.6, 1.5, 1.0).

Abaixo segue uma lista das novas funcionalidades incluídas na versão 1.10.

  • Zend_Barcode
  • Zend_Cache_Backend_Static
  • Zend_Cache_Manager
  • Zend_Exception
  • Zend_Feed_Pubsubhubbub
  • Zend_Feed_Writer
  • Zend_Filter_Boolean
  • Zend_Filter_Compress/Decompress
  • Zend_Filter_Null
  • Zend_Log::factory()
  • Zend_Log_Writer_ZendMonitor
  • Zend_Markup
  • Zend_Oauth
  • Zend_Serializer
  • Zend_Service_DeveloperGarden
  • Zend_Service_LiveDocx
  • Zend_Service_WindowsAzure
  • Zend_Validate_Barcode
  • Zend_Validate_Callback
  • Zend_Validate_CreditCard
  • Zend_Validate_PostCode
  • Zend_Pdf – com velocidade de análise melhorada em 40%
  • Zend_Application – com adição de recursos incluindo, CacheManager, Dojo, jQuery, Layout, Log, Mail e Multidb.
  • Zend_Tool – refeita para eliminar certos problemas e críticas e também adicionar uma série de novos recursos.
  • Atualização da Dojo para 1.4

Essas novas funcionalidades contribuirão e muito para nossa comunidade. Agradeço a todos que contribuíram com esta nova versão.

É isso developers! Até a próxima.

 

Como criar um formulário com Zend_Form

25 jan

O Zend_Form simplifica e muito a nossa vida durante a criação de um formulário. Ele executa algumas tarefas necessárias como:

  • Filtra e valida a entrada de dados;
  • Ordena os campos;
  • Renderiza o formulário e os campos, incluindo escapar;
  • Agrupa os campos do formulário;
  • Configura os campos e o nível dos formulários;

Zend_Form faz uso de diversos componentes do Zend Framework para realizar seus objetivos, incluindo Zend_Config, Zend_Validate, Zend_Filter, Zend_Loader_PluginLoader e, opcionalmente, Zend_View.

Criando uma classe estendida de Zend_Form

Bom, para uma arquitetura MVC é muito importante a organização e separação dos tipos de dados, com isso é de suma importância que se crie uma pasta dentro da pasta lybrary, onde ficarão todos os formulários de aplicação.

Dessa forma, criaremos a nossa classe estendida de Zend_Form, o Exemplo.php.

class Sample_Form_Exemplo extends Zend_Form
{
    public function init()
    {

    }
}

São primordiais algumas configurações iniciais no formulário

        // Setar a action do formulário
        $this->setAction('http://danieldeveloper.com');

        // Setar o método (POST | GET)
        $this->setMethod('POST');

Podemos também setar outros atributos do formulário utilizando o setAttrib ou setAttribs, esse último usando um array com as atribuições. Vamos setar então o ID do formulário.

$this->setAttrib('id', 'exemplo');

Adicionando elementos no formulário

Os elementos dos formulários são muitos, separei os mais utilizados e já mostrando como eles devem ser instanciados e criados. O parâmetro passado para a função é o nome do campo, ou seja, vai ser atribuído ao atributo name do elemento.

// Cria um botão
$botao = new Zend_Form_Element('botao');

// Cria um campo de marcação(checkbox)
$check = new Zend_Form_Element_Checkbox('check');

// Cria um campo para upload de arquivos
$arquivo = new Zend_Form_Element_File('arquivo');

// Cria um campo oculto
$oculto = new Zend_Form_Element_Hidden('oculto');

// Cria um campo de seleção
$selecione = new Zend_Form_Element_Select('selecione');

// Cria um campo de senha
$senha = new Zend_Form_Element_Password('senha');

// Cria um botão para submeter o formulário
$submeter = new Zend_Form_Element_Submit('submeter');

// Cria um campo textarea
$texto = new Zend_Form_Element_Textarea('texto');

Também podemos editar os elementos HTML dos nossos campos, como label, id e class.

$texto = new Zend_Form_Element_Textarea('texto');
$texto->setLabel('Texto')
      ->setAttribs(array(
        'id' => 'iddocampo',
        'class' => 'nomedaclasse'
      )
);

Para que possamos confirmar o adicionamento destes elementos no formulário, é necessário que citemos cada elemento criado, dentro da função addElements, assim:

$this->addElements(array(
    $botao,
    $check,
    $arquivo,
    $oculto,
    $senha
));

Sem isso, os campos não serão mostrados no formulário.

Adicionando validadores(Validators)

Por padrão, o nosso formulário não tem nenhum validador. Para validadar nossos elementos, mostrarei os seguintes códigos com as validações mais utilizadas e como usa-las.

// Aceita somente valores alfanuméricos
->addValidator( new Zend_Validate_Alnum())

// Aceita somente valores em formato de data
->addValidator( new Zend_Validate_Date())

// Aceita somente valores em formato de email
->addValidator( new Zend_Validate_EmailAddress())  

// Aceita somente valores hexadecimais
->addValidator( new Zend_Validate_Hex())

// Aceita somente valores inteiros
->addValidator( new Zend_Validate_Int())  

// Aceita somente um endereço IP
->addValidator( new Zend_Validate_Ip())  

// Aceita somente se o campo não for vazio
->addValidator( new Zend_Validate_NotEmpty())

// Aceita somente se caber dentro da expressão regular
->addValidator( new Zend_Validate_Regex('/^[a-z]/i'));

Também podemos validar fazendo uma verificação no elemento se ele é requerido. Setamos então o elemento como requerido.

->setRequired()

Adiconando filtros(Filters)

Os filtros são instanciados como os validadores, e também por padrão não vem junto ao formulário. Vamos ver alguns filtros mais usados e como cria-los.

// Filtra caracteres alfanuméricos
->addFilter( new Zend_Filter_Alnum() )

// Filtra números inteiros
->addFilter( new Zend_Filter_Int() )

// Filtra os caracteres mudando letras para minúsculas
->addFilter( new Zend_Filter_StringToLower() )        

// Filtra os caracteres mudando letras para maiúsculas
->addFilter( new Zend_Filter_StringToUpper() )

Após todo este trabalho, agora precisamos exibir nosso formulário. No controller desejado é necessário criar uma instância do formulário.

$objFormExemplo = new Sample_Form_Exemplo();

e envia-lo para a view.

$this->view->objFormExemplo = $objFormExemplo;

Na view é necessário apenas dar um “echo” na variável e pronto!

echo $this->objFormExemplo;

Bom developers, essa foi uma tentativa de explicar a vocês como funciona o Zend_Form, o quão é grande o poder do Zend Framework e seus códigos complexos que hoje nem são complexos mais! Aos poucos vamos dominando cada dia mais esse monstro das aplicações web!

Abraços e postem suas dúvidas!