Crud usando o Zend Framework
Olá pessoal
Estou trabalhando atualmente com o poderoso e altamente complexo Zend Framework. Um Framework PHP muito bacana, que já traz pronto uma porrada de classes para tratamento dos diversos problemas no desenvolvimento de um sistema como cache, templates, conexão ao banco, validação, formulários, login, permissão.. etc. Mas que por ser tão grande, torna o seu desenvolvimento um tanto complicado.
Então na minha caça diária por informações topei com um camarada lusitano, um desenvolvedor que criou um CRUD para o Zend, ou seja, em outros termos, é o mesmo achar o Santo Graal, ou a Cidade Proibida.. O nome dele é Zend Framework Data Grid.
Ferramenta
A ferramenta, que se chama Zend Framework Data Grid é de código aberto e permite que se faça listagens com maior rapidez, além de dispor dos métodos Crud padrão: Inserir, Atualizar, Editar e Apagar de forma dinâmica, sem muito (mais) esforço.
Claro, que isso é apenas o núcleo de um sistema, mas que encurta bastante a jornada.
Utilização
1º - baixe os arquivos para seu site/servidor e configure o Zend.
Os arquivos para Download encontram-se aqui>
http://code.google.com/p/zfdatagrid/
2 º -Para criar uma nova listagem, por exemplo, você deverá seguir o padrão do código, incluindo os arquivos necessários, alem de utilizar a mesma estrutura.
Ache este método dentro da controller INDEX: basicAction();
Dentro dele contém a seguinte sintaxe:
// instancia a grid dizendo que vai pegar os dados de uma tabela (table)
$grid = $this->grid ( 'table' );
// seta a tabela City
$grid->from ( 'City' );
// seta os dados para impressão de pdf ( não obrigatório. )
$pdf = array ('logo' => 'public/images/logo.png', 'baseUrl' => '/grid/', 'title' => 'DataGrid Zend Framework', 'subtitle' => 'Easy and powerfull - (Demo document)', 'footer' => 'Downloaded from: http://www.petala-azul.com ', 'size' => 'a4', #letter || a4
'orientation' => 'landscape', # || ''
'page' => 'Page N.' );
// seta outros dados para a exportação da listagem em formatos úteis
$grid->setTemplate ( 'print', 'print', $pdf );
$grid->setTemplate ( 'pdf', 'pdf', $pdf );
$grid->setTemplate ( 'word', 'word', $pdf );
$grid->setTemplate ( 'wordx', 'wordx', $pdf );
$grid->setTemplate ( 'ods', 'ods', $pdf );
// monta a listagem com base nas colunas da tabela
$this->view->pages = $grid->deploy ();
// e renderiza tudo num formato muito bacana
$this->render ( 'index' );
Resultado
Veja o resultado, todos os campos foram trazidos de forma mágica.. heuaehhea




isso ai vai tirar nossos empregos?
OK OK, eu confesso que exagerei um pouquinho.. Mas que a ferramenta é muito boa, isso sim. =)
Onde ele seta qual bd vai usar?
Onde ele importa a classe do ZF???
Na verdade André, este CRUD usa a configuração padrão do ZEND, portanto, no Zend tem um arquivo que configura qual banco de dados vai utilizar para a aplicação.
Na verdade eu não coloquei todo o código, mas somente a parte da listagem, portanto na ferramenta tem a inclusão das classes do ZF.
aaaaa sim, agora entendi!!
Alguém sabe o que eu precisaria fazer para utilizar mais de um CrudAction?
Opa, consegui. Para cada Action, será necessário criar um método no SiteController.php e alterar a respectiva chamada no index.phtml . É que estou acostumado a trabalhar com vários forms e vários actions.
Poderia nos detalhar sobre as inclusões? Estou usando modelos e até agora não consegui fazer funcionar. Grato.