Rodrigo Ibraim | Um blog em PHP sobre PHP
CodeIgniter, FrameWorks, PHP - Geral	TweetOlá a todos, neste artigo vou falar um pouco sobre um framework de desenvolvimento de aplicativos chamado Codeigniter e suas vantagens
Primeiro segue um pouco da historia sobre frameworks:
A melehor difinição para framework que já ouvi foi "arcabouço de software", ou seja um framework é um alicerce, sobre o qual podemos contruir um sistema ou aplicativo, uma abstração que une códigos comuns que provem uma funcionalidade generica. Ao contrário de bibliotécas, é o framework que comanda o fluxo de controle da aplicação, chamado de inverção de controle.
Codeigniter é um framework de desenvolvimento de aplicativos – um kit de ferramentas – para construir sites em PHP, seu principal foco é permitir que você desenvolva projetos de forma mais rápida do que se você estivesse escrevendo seu código do zero.
O Codeigniter é baseado no conhecido MVC – Model-Controller-View, ao contrário dos demais frameworks disponiveis no mercado atualmente, onde obrigatóriamente usamos as três camadas de programação (MVC), no Codeigniter a camada Model é opcional ou seja, se quisermos usar as três camadas, o Codeigniter nao incentiva a isso, caso contrário podemos escrever as queries de SQL na camada Controller.
O que é MVC.
Model – Cria a comunicação da aplicação com o a base de dados, fazendo operações CRUD (Create, Read, Update e Delete). *Camada opcional do Codeigniter.
View – É toda a informação apresentada ao usuário, uma view é uma pagina web, no Codeigniter pode ser tambem um footer, header ou uma pagina RSS.
Controller – Serve como um intermediario entre a camada Model e a camada View, também processa requisições http para gerar páginas.
Passo a passo do MVC Pattern
O computador faz uma requisição para o Controller, por uma URL POST ou GET.
O Controller vai interagir com o Model.
O Model executa um conjunto de queries no banco de dados e retorna estes dados para o Controller.
O Controller vai analizar este retorno de dados e vai enviar o resultado para a camada View.
O index.php serve como contolador da aplicação, ele inicia a base de recursos para executar o Codeigniter.
O Router examina a requisição http e determina o que deve ser feita com ela.
Se o arquivo de cache existe, ele é enviado diretamente ao navegador, ignorando a execução do sistema atual.
Security – Antes da aplicação ser carregada, a requisição HTTP e qualquer outro dado de usuario é filtrado por segurança.
O controller então carrega os models, libraries e qualquer outro recurso disponível para processar a requisição.
A view é processada e enviado o resultado para o navegador.
Seguimentos de URL
Este ponto não poderia deixar de ser comentado, pois é aqui onde o Codeigniter controla todas as requisições entre o Controller e View. Ao invés de usar o padrão "query string" para gerar URLs que é sinônimo de sistemas dinâmicos, o Codeigniter uma uma abordagem baseada em segmentos.
meusite.com.br/classe/função/ID
O primeiro segmento representa o controller "classe" que é o nome da classe a ser envocada.
O segundo segmento é o nome do método a ser executado.
Do terceiro segmento em diante, representado pelo "ID", é o parâmetro a ser passado para a função a ser executada.
Vantagens do Codeigniter.
Facilidades para a detecção de erros, concentração na abstração de soluções no problema que estamos tratando, otimização de recursos e eficiencia na resolução de problemas.
URL limpa "serach-engine friendly".
Licença open source, o Codeigniter é licenciado em Apache/BSD.
Boa performance, comparados com outros frameworks, o Codeigniter se destacou por sua boa performance.
Possibilidade de criar suas próprias Libraries e extender o framework.
Documentação clara e de fácil alcance.
Não precisa de instalação, ao contrário de muitos frameworks, para usar o Codeigniter basta baixar o arquivo do framework e descompactar a em um diretório acessivel pela web.
Grande quantidade de Hepers e Libraries, que ajudam no desenvolvimento da aplicação.
Instalando o Codeigniter
Conforme comentei anteriormente a instalação do Codeignier é bem simples, basta somente fazer o download do Framework no site: http://codeigniter.com/ e descompactar o arquivo em um diretório com acesso a web. Os comando em Linux para fazer a instalação são:
unzip CodeIgniter_2.0.2.zip
sudo cp -af CodeIgniter_2.0.2 /var/www/ci
O primeiro comando var descompactar o arquivo no diretório de download, o segundo comando vai copiar este folder para o diretório /var/www/ já renomeando o folder do framework para ci.
Com o framework instalado, o proximo passo é configurar o URL que será usada, para isso devemos editar o arquivo config.php que fica no diretório:
/var/www/ci/application/config/config.php
E alterar o seguinte parâmetro:
$config['base_url'] = '/ci/';
Usando o Codeigniter, mão na massa.
Bom, após esta pequena introdução ao Codeigniter, vou mostrar como usar este "arcabouço" para escrever uma pequena aplicação, usando apenas duas camadas (Controller e View) com validação de formulário onde vou usar um Helper nativo do Codeigniter chamado form_validation.
O primeiro passo é criar um arquivo na pasta controllers "/ci/application/controllers/", este arquivo vai ser o controlador da applicação. Vamos chamar esta aplicação de "usuario", então o nome do arquivo vai ser: usuario.php. Seu conteudo é:
// carrega o arquivo view do módulo usuario
$this->load->view('usuario_view.php');
Devemos observar alguns detalhes na criação deste arquivo. O nome do arquivo deve ser o mesmo nome da classe com uma diferença, o nome da classe tem a primeira letra em maiscúlo. Ou seja, o arquivo se chama usuario.php, a classe deve chamar Usuario.
O controlador tem um método interno chamdo index(), sempre que não houver o chamado para nenhum outro método dentro da classe, o método index() é executado automaticamente. Geralmente este método é ultilizado para carregar a pagina inicial da applicação onde não é executado mais nenhuma outra ação.
Neste caso o método index() esta apenas carregando o arquivo de visão (view). O arquivo "usuario_view.php" deve ser criado no diretório de views no seguinte path:
/var/www/ci/application/views/usuario_view.php
E seu conteudo é:
<title>Módulo Usuário</title>
<h1>Validação de Usuários</h1>
<form action="/ci/index.php/usuario/valida_user" method="post">
Login: <input type="text" name="login" id="login" /> <br />
Senha: <input type="password" name="password" id="password" /> <br />
<p><input type="submit" value="Validar" /></p>
Como podemos ver neste arquivo, ele tem um form, campos de login e senha e um botão tipo "submit", o qual ao ser acionado vai postar os dados do formulário para a classe "usuario" e será executada a função "valida_user". A seguir vamos continuar escrevendo a função "valida_user" na classe "usuario":
// continuando com conteudo do arquivo...
public function valida_user(){
$this-&gt;form_validation-&gt;set_rules(&#039;login&#039;, &#039;Login&#039;, &#039;required&#039;);
$this-&gt;form_validation-&gt;set_rules(&#039;password&#039;, &#039;Senha&#039;, &#039;required&#039;);
$this-&gt;load-&gt;view(&#039;formnosuccess&#039;);
$this-&gt;load-&gt;view(&#039;formsuccess&#039;);
Alguns pontos que devemos atentar: uma vez carregada a library "form_validation", atravez da linha "$this->load->library…", temos acesso a alguns metodos internos da classe, dentre eles o metodo set_rules.
O metodo set_rules, nos permite definir regras para validacao de campos alem de pre-processar seus dados ao mesmo tempo. A funcao set_rules tem tres parametros de entrada:
Nome do campo – tem que ser exatamente o nome que foi dados ao campo no form html.
Nome amigavel – este nome vai aparecer na mensagem de erro caso haja a necessidade.
Regras de validacao para este campo.
Nota: O Codeigniter nos permite passar um conjunto de regras ao mesmo tempo para cada campo, bastando somente adcionar um pipe "|", no momento de declarar as regras:
$this->form_validation->set_rules('login','Login','required|max_length[20]');
Quando temos muitos campos no formulário, ou precisamos executar a validação em diferentes rotinas, o Codeigniter nos permite passar esta regra através de um array. Ou seja, podemos declarar um array como private em nossa classe ja passando os parâmetros, como mostro abaixo:
&#039;field&#039; =&gt; &#039;login&#039;,
&#039;label&#039; =&gt; &#039;Login&#039;,
&#039;rules&#039; =&gt; &#039;required&#039;
&#039;field&#039; =&gt; &#039;password&#039;,
&#039;label&#039; =&gt; &#039;Senha&#039;,
Agora dentro do método "valida_user", ao invés de usar o método "set_rules", usamos o seguinte método:
$this->form_validation->set_rules($this->config);
Mostrando erros no form
Caso exista algum erro no form, algum campo não preenchido, precisamos retornar isto para o usuario para que ele possa corrigir e prosseguir com suas tarefas. Para isso costumo usar uma variável interna da classe chamada _error_array, da seguinte maneira:
// reescrevendo o método valida_user...
$this-&gt;form_validation-&gt;set_rules($this-&gt;config);
if($this-&gt;validation-&gt;run() == FALSE){
$erro[&#039;err&#039;] = $this-&gt;validation-&gt;_error_array;
$this-&gt;load-&gt;view(&#039;formnosuccess&#039;, $erro);
// continua com validação...
//Na view formnosuccess.php, usamos o seguinte código:
foreach($err as $erro){
echo "{$erro}&quot;;
Este código tem como output a menssagem de erro a ser exibida, algo como: "The field Login is…", todas as mensagems podem ser modificadas dentro do Codeigniter.
Existem outras maneiras de se mostrar os erros de validação do form, toda esta documentação pode ser encontrada no site do Codeigniter em : http://codeigniter.com/user_guide/libraries/form_validation.html
| Comments (0) May122012
Apache, FrameWorks, Linux, PHP - Geral, PostgreSQL	TweetHi there, here it comes a quick instillation guide for Drupal, there you can find several steps for download and install this cms (content management system). Before you begin the installation, you need to know:
To install and run Drupal, your server host must meet certain minimum requirements. Must web hosts meet these requirements, at this link, you can check the system requirements.
Drupal provides an installation script that automatically populates database tables and configures the correct settings in the settings.php file. This section covers preparing for installation, running the installation script itself, and the steps that should be done after running the installation script has completed. It also explains how to do a "multi site" installation, where a number of different Drupal sites run off the same code base.
It is considered a good practice to do all development work on a separate test site before making changes to a production site. A test site allows you to evaluate the impact of upgrades, new modules, modifications to themes etc. without causing disruption to your live site.
Download the latest or stable version for Drupal.
Create a new database: MySQL 5.0.15 or higher with PDO, PostgreSQL 8.3 or higher with PDO, SQLite 3.3.7 or higher. Note: Microsoft SQL Server and Oracle are supported by an additional module.
Create a user, add that user to the database, and grant the user full rights on the database.
Make the /sites/default directory writable
For example, with *nix command line chmod a+w sites/default or with a ftp or file manager right click and set to 777.
Drupal should reset this when it's completed the installation (chmod a-w sites/default or 555).
Browse to your new Drupal site. This will take you to the Drupal installer, which starts with: "Select an installation profile." Save and continue.
Note: you can also install Drupal using command line, for this please check the Drupal reference guide at Quick install for developers (command line), there you'll find all needed information for install Drupal using command line.
Tags: Apache, Drupal, PHP, Ubuntu | Comments (0) May92012
How to manipulate css using jquery
Apache, JQuery	TweetIt's really simple to manipulate css using JQuery. JQuery has the ".css()" method and its syntax is:
When using .css() as a setter, jQuery modifies the element's style property. For example, $('#mydiv').css('color', 'green') is equivalent to document.getElementById('mydiv').style.color = 'green'. Setting the value of a style property to an empty string — e.g. $('#mydiv').css('color', ") — removes that property from an element if it has already been directly applied, whether in the HTML style attribute, through jQuery's .css() method, or through direct DOM manipulation of the style property. It does not, however, remove a style that has been applied with a CSS rule in a stylesheet or style element.