CI-Scaffold: Adicionado driver para PostgreSQL

Posted by Gabriel Verta | Posted in CodeIgniter, PHP | Posted on 04-02-2010-05-2008

3

Como já dito no post de apresentação do CI-Scaffold, ele é um gerador de CRUD para CodeIgniter.

Adicionamos uma nova versão no googlecode do ci-scaffold, o ci-scaffold 0.91, agora com suporte a banco de dados PostgreSQL.

É isso ai ;)

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! ;)

Introdução ao CodeIgniter parte II – primeiros passos – PHP

Posted by Reimberg | Posted in CodeIgniter, PHP | Posted on 23-03-2009-05-2008

0

Fala galera.

No primeiro post sobre o codeigniter falamos um pouco da evolução do php e também sobre suas facilidades de codificação.

Agora vamos seguir falando da configuração básica para acesso à banco e exibição de dados na plataforma MVC.

Model View Controller (ou simplesmente MVC) é uma metodologia de desenvolvimento que visa separar o código em camadas, de modo a facilitar o desenvolvimento paralelo. Numa arquitetura MVC constuma-se separar as camadas de Visualização (layout gráfico), Controle (regras de negócio) e Modelo (acesso direto à dados), de modo que se torna mais difícil acontecer de o designer “bagunçar” o trabalho do programador e vice-e-versa.

Muito bem, após esta pequena explanação sobre MVC vamos ao assunto principal.
Na estrutura de diretórios do CodeIgniter você encontrará o local dos arquivos de configuração.

Diretório: /system/application/config/

Edite o arquivo config.php:

<?php
    $config["base_url"] = "http://www.meusite.com.br/";
?>

O exemplo acima indica que a URL base do Code Igniter será http://www.meusite.com.br/, nesse Code Igniter está instalado no diretorio / do seu servidor.

No arquivo database.php são setadas as configurações de acesso à banco, como host, usuário, senha e tipo de SGBD:

<?php
     $db["default"]["hostname"] = "localhost";
     $db["default"]["username"] = "root";
     $db["default"]["password"] = "";
     $db["default"]["database"] = "db";
     $db["default"]["dbdriver"] = "mysql";
?>

O arquivo autoload.php indica quais bibliotecas devem ser carregadas automaticamente na execução do programa, no caso abaixo estamos definindo apenas a biblioteca de banco de dados:

<?php
     $autoload["libraries"] = array("database");
?>

Exemplo de utilização da biblioteca database:

<?php
     $this->db->get("tabela");
?>

Exemplo de codificação de um “Hello World” com acesso a banco de dados

Arquivo hello_controller.php:

<?php
     class Hello extends Controller
     {
          function Hello()
          {
               parent::Controller();
          }

          function index($id)
          {
               $query = $this->db->get_where('tabela', array("id" => $id), 1);

               $data["titulo"] = "Titulo da pagina";
               $row = $query->row();
               $data["texto"] =  $row->nome;

               $this->load->view("hello_view",$data);
          }
     }
?>

Arquivo hello_view.php:

<html>
     <head>
          <title><?= $titulo?></title>
     </head>
     <body>
          <p><?= $texto?></p>
     </body>
</html>

Para chamar o programa abra seu browser e digite o endereço de seu site seguido do nome do controle/método/parâmetro

http://www.meusite.com.br/index.php/hello/index/1