Faça a escolha certa na hora de hospedar seu site

Novembro 24, 2009

Uma situação desagradável para pessoas que possuem um site é quando ele encontra-se fora do ar e o problema está relacionado à empresa de hospedagem contratada.

Esse problema torna-se cada vez mais frequente a partir do momento em que inúmeras empresas de “fundo de quintal” e sem uma estrutura decente aparecem oferecendo planos mirabolantes por custos bastante baixos.

Porém, o barato acaba por se tornar caro no final, quando você descobre que o tal provedor de hospedagem não é aquela maravilha que você pensava.

O que fazer então? Bem, a dica é: hospedar seu site com a ArgoHost, uma empresa extremamente confiável e que, há mais de seis anos, não tem nos deixado na mão, seja com relação à estabilidade do serviço ou ao Suporte Técnico.

Celebrando esta parceria, nós levamos até vocês uma grande promoção da ArgoHost. Somente neste mês de novembro, os clientes que adquirirem um VPS, também chamado de Servidor Virtual, ganham 50% de desconto no primeiro mês de pagamento.

Acesse já www.ArgoHost.net e confira essa e muitas outras soluções para hospedagem de sites!

Argohost - Hospede com qualidade e segurança

SCRUM Tools

Novembro 22, 2009

Mudando um pouco de assunto antes de terminar o POST sobre CRUD com CodeIgniter e colocar os arquivos para vocês baixarem, vamos falar um pouco sobre Agile.

Muitos de nós já ouvimos ou já utilizamos técnicas ágeis para desenvolvimento e gerenciamento de projetos. Já ouvimos falar sobre Extreme Programming (XP), SCRUM, por que não Pomodoro (Técnica para concentração).

Tomando um pouco pela metodologia do SCRUM já vi pessoas procurando por um KANBAN online para poder acompanhar sua equipe à distância (muitos SCRUM Masters apresentam palestras), até mesmo algumas necessidades minhas de ter projetos pessoais paralelos com outras pessoas, que fica difícil o contato pessoal, acabo fazendo as reuniões diárias por GTalk ou Skype, mais como utilizar um KABAN para acompanhar as tarefas e até mesmo os outros verem no que estou trabalhando, acabei por consultar o nosso oráculo (Google) atras de uma ferramenta que pudesse me ajudar a isso.

Bem tendo em vista de que se a solução for boa (de grátis, fácil uso e se der OpenSource =P) acabei por listar algumas que achei e testei para facilitar a busca de quem também tem esse interesse.

http://www.firescrum.com/

http://www.tinypm.com/

http://www.xplanner.org/

http://code.google.com/p/scruwp/

http://pangoscrum.com/pt-BR (Free por enquanto)

Essas foram as opções mais interessantes que achei nessa busca.

Bem o POST sobre CRUD com CI ficou para a próxima mais esse mês ainda sai  certeza =P.

Depois também conversamos um pouco mais sobre Técnicas ágeis esse POST serve mesmo só para ajudar com as ferramentas de gerenciamento SCRUM onlines para saber o que está acontecendo com a equipe à distância ^^.

Lembrem-se de que o KANBAN manual não deve ser deixado!

Valeu até a próxima!


CRUD com Code Igniter Parte 3

Novembro 1, 2009

Dando continuidade ao CRUD. Vamos organizar as Views.

Nesse artigo vou apanes mostrar como vai ficar as nossas views e demonstrar fazendo o chamado para a nossa view principal, no caso a listagem.

Vamos contruir 4 views para esse nosso CRUD.

Vamos lá dentro de /system/application/views/

Vamos criar os seguintes arquivos:

  • listagem_view.php
  • formulario_view.php
  • sucesso_view.php
  • falha_view.php

Essas serão nossas views. Vamos a primeira a listagem:

O arquivo ficará da seguinte forma:

listagem_view.php


<html>
<head>
<title>Clientes</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<table border="1">
<thead>
<tr>
<th>Cliente</th>
<th>Email</th>
<th>Data de Nascimento</th>
<th>Endereço</th>
<th>Bairro</th>
<th>Cidade</th>
<th>UF</th>
</tr>
</thead>
<tbody>
<?php if ($clientes): ?>
<?php foreach ( $clientes as $cliente ): ?>
<tr>
<td><?=@$cliente->nome?></td>
<td><?=@$cliente->email?></td>
<td><?=@$cliente->dt_nascimento?></td>
<td><?=@$cliente->endereco." ".@$cliente->numero_endereco?></td>
<td><?=@$cliente->bairro?></td>
<td><?=@$cliente->cidade?></td>
<td><?=@$cliente->uf?></td>
<td><a href="<?=site_url()?>/cliente/cadastrar/<?=@$cliente->id_cliente?>">Editar</a></td>
<td><a href="<?=site_url()?>/cliente/excluir/<?=@$cliente->id_cliente?>">Excluir</a></td>
</tr>
<?php endforeach; ?>
<?php else: ?>
<tr>
<td colspan="7">Nenhum cliente cadastrado</td>
</tr>
<?php endif; ?>
</tbody>
</table>
<br />
<div>
<form method="post" action="<?=site_url()?>/cliente/cadastrar">
<button type="submit">Cadastrar</button>
</form>
</div>
</body>
</html>

—————————————————

formulario_view.php


<html>
<head>
<title>Clientes</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<p><?=@$this->validation->error_string?></p>
<form action="<?=site_url()?>/cliente/salvar" method="post">
<label>Cliente</label><br />
<input type="text" name="cliente" value="<?=@$cliente->nome?>" /><br />
<label>Email</label><br />
<input type="text" name="email" value="<?=@$cliente->email?>" /><br />
<label>Data de Nascimento</label><br />
<input type="text" name="dtNasc" value="<?=@$cliente->dt_nascimento?>" />(Ex: 2009-12-30)<br />
<label>Endereço</label><br />
<input type="text" name="end" value="<?=@$cliente->endereco?>" /><br />
<label>Numero</label><br />
<input type="text" name="num" value="<?=@$cliente->numero_endereco?>" /><br />
<label>Bairro</label><br />
<input type="text" name="bairro" value="<?=@$cliente->bairro?>" /><br />
<label>Cidade</label><br />
<input type="text" name="cidade" value="<?=@$cliente->cidade?>" /><br />
<label>UF</label><br />
<input type="text" name="uf" value="<?=@$cliente->uf?>" maxlength="2" /><br />
<br />
<input type="hidden" name="id" value="<?=@$cliente->id_cliente?>" />
<button type="submit">Salvar</button>
</form>
</body>
</html>

———————————————————

sucesso_view.php


<html>
<head>
<title>Clientes</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div>
<form action="<?=site_url()?>/cliente" method="post">
<p>Operação realizada com sucesso!</p>
<button type="submit">Voltar</button>
</form>
</div>
</body>
</html>

—————————————————————-

falha_view.php


<html>
<head>
<title>Clientes</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div>
<form action="<?=site_url()?>/cliente" method="post">
<p>Erro ao executar operação</p>
<button type="submit">Voltar</button>
</form>
</div>
</body>
</html>

Agora vamos chamar nossa view de listagem no nosso primeiro método o index no controller cliente. Utilizando também o método getClientes() do nosso model cliente para obter todos os cliente e montarmos nossa tabela.

Com isso nosso método index do nosso controller ficará assim:


public function index() {
     // a forma que instanciamos um Model no
    // CodeIgniter é simples,
    // usamos o método model da classe Load,
    // que já é carregada na mémoria pelo Framework,
    // e passamos 3 parâmetro:
    // 1-nome do model
    // 2-apelido para usarmos o model (optativo)
    // 3-ativanção da conexão
    
$this->load->model("Cliente_Model", "cliente", TRUE);
    // agora podemos utilizar os métodos do model
    // digamos que nosso método para pegarmos
    // todos os clientes seja o método
    // getClientes()então nosso método ficará
    
$clientes = $this->cliente->getClientes();
    // note que como demos o apelido para o Model
    // nós usaremos o apelido para usarmos o model
    // utilizaremos o helper URL para utilizarmos
    // algumas funções contidas nele
    
$this->load->helper('url');
    $view['clientes'] = $clientes;
    $this->load->view('listagem_view', $view);
}

Note que o método que carrega a view ele pode receber um segundo parâmetro, sendo esse um array. Onde a chave do array será o nome da variável que será usada na view.

Próximo passo será detalhar algumas coisas que já estão implementadas no CodeIgniter para nos ajudar a validar os campos do nosso formulário.

Após isso disponibilizarei todos os arquivos para download.

Até a próxima!


CRUD com Code Igniter Parte 2

Outubro 9, 2009

Viuxe passei tanto tempo ocupado que acabei esquecendo o POST =P.

Bem vamos lá.

Hoje mostrarei a simplicidade da criação do model usando CI (Code Igniter). Já temos nossa tabela criada então vamos aos acessos dela.

Primeiramente criamos nossa classe model herdando a classe Model do CI. Chamerei nosso model de Cliente_Model


class Cliente_Model extends Model{
    // aki vai nosso construtor =P
    public function __contruct() {
        parent::Model();
    }
    // agora vamos adicionar o metodo
    // para pegar todos os clientes

     public function getClientes() {
        // iremos utilizar os active records
        // do CI para fazermos a query

        // usando o get passando como
        // parâmetro o nome da tabela

        //ele trará todas as linhas
        // inseridas na tables

        $clientes = $this->db->get('cliente');
        // faremos um check para verificar a
        // existência de cliente

        if ($clientes->num_rows() > 0) {
            // se houver clientes podemos
            // retornar um array

            // contendo os dados
            // do cliente em array
            // $clientes->result_array()

            // ou um array com objetos
            // cliente $cliente->result()

            // eu vou retornar um
            // array com objetos cliente

             return $cliente->result();
        } else {
            // retornarei falso caso
            // não exista cliente cadastrado

             return false;
        }
    }
    // nosso pŕoximo método será o de pegar
    // apenas 1 cliente da tabela
    // para isso presisaremos passar um
    // parâmetro para o método

    // o id do cliente
    public function getCliente($id) {
         $where = array('id_cliente' => $id);
         $cliente = $this->db->get_where('cliente', $where);
        // faremos o mesmo check para
        // saber se o cliente existe

        if ($cliente->num_rows() > 0) {
            return $cliente->row();
        } else {
            return FALSE;
        }
    }
    // nosso próximo método será o de inserção
    // ele irá receber como parâmetro um arrray
    // que terá como as chaves

    // o mesmo nome dos campos da tabela
    // EX: array('nome'=> 'nome do cliente')
    // onde a chave 'nome' é o nome do campo na tabela
    // com os dados para serem
    // salvos e retornará TRUE ou FALSE

    public function salvarCliente($arrayDadosCliente){
        return $this->db->insert('cliente', $arrayDadosCliente);
    }
    // agora o método para atualizar os
    // dados de um cliente

    // ele receberá 2 paramêtros
    // o primeiro será um array com os dados do cliente
    // como no método salvarCliente()
    // e o segundo a chave do cliente

    // isso é o id, esse método retornará TRUE ou FALSE
    public function atualizarCliente($arrayDadosCliente, $id){
        $where = array('id_cliente' => $id);
        return $this->db->update('cliente', $arrayDadosCliente, $where);
    }
    // agora o último método do nosso CRUD,
    // o excluir cliente
    // para esse método passaremos apenas
    // 1 parâmetro que será

    // o id do cliente, esse método
    // retornará TRUE ou FALSE

     public function excluirCliente($id){
        $where = array('id_cliente' => $id);
         return $this->db->delete('cliente', $where);
    }
}

Pronto! Criamos nosso Model para nossa tabela cliente. Pŕoximo passo será implementar os métodos do nosso Controler para utilizar os métodos do nosso Model.

Vou tentar ficar menos tempo sem postar. Dessa vez não vou prometer postagem para amnhã. Vai que da problema e fico um tempo sem postar de novo =P.

Lembrando que você pode conhecer esses métodos já existentes no CI no guia de usuários encontrados tanto na página internacional quanto na nacional e também no pacote que você baixa do CI =P

Bem é isso ai vlw! Fui…

Links para o guia:

Site Oficial

Site Brasileiro

$this->db->update('mytable', $data, array('id' => $id));

CRUD com Code Igniter Parte 1

Setembro 26, 2009

Ok. vamos começar a parada.

Digamos que tenhamos que fazer cadastros de pessoas para uma locadora, um cadastro simples, onde serão cadastrados o nome, o email, data de nascimento e endereço ( Rua, Bairro, Cidade e UF ) para os usuários (clientes).

Criaremos primeiro a tabela para salvar o usuário ( Como o exemplo é simples irei colocar os campos em uma mesma tabela ), levando em consideração de que já foi criado o banco excutaremos o script:

CREATE  TABLE `cliente` (
    `id_cliente` INT NOT NULL AUTO_INCREMENT,
    `nome` VARCHAR(150) NOT NULL,
    `email` VARCHAR(150) NOT NULL,
    `dt_nascimento` DATE NULL,
    `endereco` VARCHAR(45) NOT NULL,
    `numero_endereco` INT NOT NULL,
    `bairro` VARCHAR(45) NOT NULL,
    `cidade` VARCHAR(45) DEFAULT NULL,
    `uf` VARCHAR(2) DEFAULT NULL,
    PRIMARY KEY (`id_cliente`)
) ENGINE = InnoDB

e criaremos a tabela para as consultas e inserções.

Em primeiro passo faremos o Controller (Cliente).

Controller:


class Cliente extends Controller {
    /**
     * O construtor das classes criadas no
     * CodeIgniter tem que chamar
     * o construtor da classe pai (Controller),
     * do CodeIgnitera classe que é
     * extendida (herdada)
     */

     public function __construct() {
         parent::Controller();
    }
    /**
     * Caso nenhum método seja
     * chamado da classe o método
     * default é o index.
     * Aqui iremos colocar as chamadas
     * dos métodos do Model e enviaremos os
     * nossos dados tratado para a View
     */

    public function index() {
    }
}

Bem para digamos que nosso model já esteja feito (calma irei demonstrar no próximo post), vamos usar os métodos do Framework para chamarmos (instânciarmos) o Model dentro do Controller


public function index() {
    // a forma que instanciamos um Model no
    // CodeIgniter é simples,
    // usamos o método model da classe Load,
    // que já é carregada na mémoria pelo Framework,
    // e passamos 3 parâmetro:
    // 1-nome do model
    // 2-apelido para usarmos o model (optativo)
    // 3-ativanção da conexão

     $this->load->model("Cliente_Model", "cliente", TRUE);
    // agora podemos utilizar os métodos do model
    // digamos que nosso método para pegarmos
    // todos os clientes seja o método

    // getClientes()então nosso método ficará
     $this->cliente->getClientes();
    // note que como demos o apelido para o Model
    // nós usaremos o apelido para usarmos o model

}

Bem pessoal esse foi nosso primeiro passo. Para nosso próximo passo iremos contruir nosso model para acessarmos e manipularmos nossa tablea.

Espero que tenham gostado até aqui amanhã estarei postando o passo 2 o Model =P

Vlw! fui….


Code Igniter

Setembro 26, 2009

Bem, antes de começar com a programação em si, resolvi falar um pouco sobre um Framework de PHP com padrão MVC (Model-View-Controller), o Code Igniter.
Esse Framework é “uma mão na roda“. Bem prático e simples, com uma documentação excelente (e parte dela já se encontra em português), leve, com grande performance, não possui grandes regras restritivas para codificação, entre outras.
Esse Framework é excelente para aqueles que estão tendo o primeiro contato com Frameworks.

Site oficial: http://codeigniter.com/

Site em português: http://www.codeigniter.com.br

Na próxima postagem irei demonstrar um simples CRUD (Create, Read or Retrieve, Update and Delete) usando o Code Igniter.

intezes! =P


JS Frameworks

Setembro 25, 2009

Prototype? jQuery? Mootools? EXT? Yahoo!UI? Dojo? GWT(Google Web Toolkit)? jProton (Brasileiríssimo)? Outro? Qual utilizar?

Todos desenvolvedores WEB utilizam, utilizaram ou irão utilizar Javascript em suas aplicações. O motivo? Interação com o usuário. Sim! A internet vem ficando cada vez mais “bonita” graças a alta capacidade do Javascript manipular elementos HTML do lado do cliente com total liberdade.

Com o tempo foram sendo feitos os Javascript Frameworks, onde buscavam facilitar a vida do desenvolvedor, o deixando livre de cálculos para fazer um… digamos como exemplo, “fade” ( efeito para aparecer e sumir ). Antes eram usados apenas propriedades css como o display, hoje temos um tempo para cada evento onde o usuário pode acompanhar gradativamente o sumiço ou aparecimento de um campo.

Certo, vamos voltar aso assunto principal. Estou desenvolvendo uma aplicação. Qual Javascript Framework utilizar? Eu sempre me fiz essa pergunta e acabei por obter uma resposta. Dos Framewors sitados a no início eu utilizo 3. Como assim? É. Dependendo da aplicação ou do que eu estou desenvolvendo eu escolho um Framework para me auxiliar no desenvolvimento. Assim como quem desenvolve em outra linguagem pode escolher entre vários Frameworks da linguagem. O que eu analiso é. Estou desenvolvendo em que? Joomla!? Uso Mootools que já é o padrão do Joomla!, por que não usar outro? Pelo simples fato de já ser padrão do CMS se você utilizar outro Framework você terá que fazer alguns ajustes para utilizar, nome disso? Gambiarra.

Se um CMS ou e-commerce já vem por padrão um Framework Javascript po que utilizar outro? Agora se você está desenvolvendo livre e deseja um Framework legal com muitas qualidades e cheio de plugins e renderiza ótimo eu sugiro jQuery. Agora muita atenção! Não se iluda com o jQuery.noConflict(), ele é perigoso, pois muitos dos plugins já criados utilizam da função $() fazendo com que os outros Frameworks que tbm utilizam essa função como padrão de manipulação fique em conflito com o jQuery. O noConflict() funciona? Funciona, mas se você for utilizar junto com outro Framework cuidado na parte que você utiliza os plugins do jQuery.

Bem é isso. Se tiverem alguma coisa a acrescentar ou retirar ou discordar por favor fiquem a vontade.

E vamos nessa!


Magento? Show!

Setembro 25, 2009

É isso nasce mais um blog sobre desenvolvimento no mundo e para abrir vou falar um pouco sobre o Magento (Nojento! Tchan!)

Esse e-commerce é simplesmente o mais robusto em comparações a outros.

Segue um padrão MVC sem quebrar regras ( o único até agora que eu ainda não vi gambiarra =P ). De princípio a arquitetura organizacional das pasta dele é meo difícil de lidar mais como todo CMS, Framework e afins você se acostuma.

Você pode baixar no 0800 essa beleza e fazer que nem eu, ir dando uma estudada porque esse bixim ai promete!

Site oficial: http://www.magentocommerce.com/

Bom espero falar mais tarde sobre esse e-commerce mais em tutorias ensinando algum módulo =P

Bons estudos pra vocês e pra “ieu” ( isso é cearês )

Flw!


Seguir

Get every new post delivered to your Inbox.