Coding Dojo .NET Architects – 30/01/2010 – São Paulo

Posted by Vinicius Quaiato | Posted in .NET, TDD | Posted on 28-01-2010-05-2008

0

Fala galera! Sábado, dia 30/01/2010 teremos um Coding Dojo, organizado pela comunidade .NET Architects.

Este Coding Dojo dará início ao grupo de Dojo do .NET Architects, que fará encontros regulares focando os dojos nas diversas linguagens e tecnologias .NET.

Local: Unip Jaguaré – São Paulo – SP
Horário: à partir das 10hs
Data: sábado, 30/01/2010

Confira o mapa do local e faça sua incrição aqui: http://dojo.dotnetarchitects.net
Totalmente gratuito!

Não existem pré-requisitos para participar, basta ter vontade e comparecer!

Saiba mais sobre Coding Dojo aqui.

Abraços, nos vemos lá!

Vinicius Quaiato – http://viniciusquaiato.com

CI-Scaffold: Gerador de CRUD para Code Igniter

Posted by Gabriel Verta | Posted in CodeIgniter, PHP | Posted on 26-01-2010-05-2008

11

Ola pessoal, criamos um projeto no Google Code chamado ci-scaffold, que é um gerador de código PHP para o framework CodeIgniter, já mencionado em posts anteriores, que gera os arquivos básicos para o CRUD de uma tabela do banco de dados funcionar.

Como utilizar

Devemos baixar a última versão do ci-scaffold no google code. Extrair o arquivo zip dentro da pasta libraries em system/application dentro da estrutura do CodeIgniter (system/application/libraries).
Após extrair os arquivos passamos a ter uma biblioteca que pode ser utilizada pelos controllers do CodeIgniter da seguinte forma:

$this->load->library('scaffold');
$this->scaffold->generate();

Desta forma você não precisa usar um controller com nome especifico, dificultando assim a qualquer usuário de executar este sem autorização do criador, por exemplo, podemos utilizar um controller chamado Abracadabra e assim a uri seria /abracadabra, o que dificilmente um usuário normal tentaria acessar. Lembrando ainda que não é recomendável deixar o scaffolder funcionando em ambiente de produção, ou seja, deve-se utilizar ele para criação dos arquivos apenas em ambiente de desenvolvimento e não enviá-lo para produção.
Vamos a um exemplo de uma classe para utilizar o scaffolder:

<?php
 
class Admin extends Controller {
    public function __construct(){
        parent::__construct();
    }
    public function index(){
        $this->load->library('scaffold');
        $this->scaffold->generate();
    }
}

Este controller irá chamar o scaffolder em /admin, apresentando a tela a seguir, que irá listar todas as tabelas do banco de dados:

Tela Ci-Scaffold

Após selecionar a tabela, e acionar o botão Submit, serão gerados todos os arquivos para o CRUD funcionar com a estrutura como segue no exemplo:

Ci-Scaffold gerando arquivos

No meu caso escolhi a tabela “estado”, e os arquivos gerados foram os seguintes:

Considere que estamos dentro da pasta system/application

  • controllers/estados.php
  • models/modelestado.php
  • views/estado/delete.php
  • views/estado/form.php
  • views/estado/list.php
  • views/estado/save.php

A partir deste momento temos novas uris:

  • /estados: lista os estados do banco de dados
  • /estados/create: cria um novo estado a partir dos dados do formulário
  • /estados/edit/1: edit o estado com id 1 a partir dos dados do formulário
  • /estados/delete/1: deleta o estado com id 1 a partir da confirmação no formulário

O ci-scaffold utiliza de templates para criação dos arquivos, que podem ser modificados para a que a geração do crud seja feita de forma a atingir melhor suas necessidades. Lembrando ainda que o scaffold é uma forma de agilizar a codificação, e que você pode se basear nos arquivos gerados do crud para mudar o código após gerado para adicionar regras específicas ao seu negócio.

Obs.: Nesta primeira versão, apenas o banco MySQL é suportado, porém o sistema já está preparado para receber drivers de outros bancos suportados pelo CodeIgniter.

É isso ai! ;)