Pular para o Conteudo Pular para o Menu
Jun 25

Começando com CodeIgniter

CodeIgniter PHP Programação CodeIgniter, PHP, Programação 1 Comentário

Para começar a trabalhar com CodeIgniter primeiramente é preciso que o leitor saiba o que é MVC, ou separação em 3 camadas.

MVC

MVC é uma sigla para Model-View-Controller, onde o Model representa a camada de acesso a dados, View a camada de apresentação, e Controller as regras de negocio da sua aplicação. Em outras palavras o MVC separa o acesso ao banco de dados do HTML e das regras de negocio, ou o SQL o HTML e o PHP.

Por que isso é bom

Quem já está familiarizado com o desenvolvimento de aplicações em 3 camadas já sabe que são inúmeras as vantagens dessa separação. porem alguma das mais importantes são, poder formar uma equipe de trabalho onde cada um trabalhe na parte que lhe cabe, nesse caso um DBA iria trabalhar somente no model, um Front-End-Developer somente nas Views e um programador Server-side somente nos controllers, sem que um interfira no trabalho do outro.

Alem disso a facilidade na hora da manutenção do código é muito superior a caso você estivesse trabalhando com tudo junto numa mesma camada.

Requisitos Mínimos

Apache + PHP 4.3.2 ou mais novo
Algum banco de dados para o caso de aplicações com acesso a dados
Os bancos suportados são MySQL (4.1+), MySQLi, MS SQL, Postgre, Oracle, SQLite e ODBC.

Instalando o CI

Acho que instalar não seria a palavra certa, mesmo por que o que você deve fazer é ir ao site oficial do framework e baixar a versão mais recente dele, descompacte-a na raiz do seu dominio, caso esteja testando remotamente, ou na raiz do localhost, caso esteja trabalhando localmente.

Enfim o começo

Apesar de permitir o desenvolvimento em 3 camadas o CI também permite que a camada de Model e de Controller sejam unidas em uma camada só, o que resultaria numa divisão em apenas duas camadas, apesar de eu aconselhar seriamente o uso dos models, trabalhar sem eles pode ser ótimo para começar a aprender.

Pensando assim vamos construir uma aplicação usando apenas os controllers e as views.

Os Controllers devem estar dentro da pasta ./system/application/controllers, nela iremos criar um arquivo chamado welcome.php, esse é o nome padrão para o controller principal da sua aplicação, o primeiro que será chamado quando o visitante entra na aplicação.

Isso pode ser mudado alterando a variável $route[’default_controller’] no arquivo routes.php dentro da pasta ./system/application/config, nessa pasta estão também os outros arquivos de configuração do framework.

Nesse arquivo iremos escrever o seguinte código:

<?php
class Welcome extends Controller {

function Welcome()
{
parent::Controller();
}

function index()
{

$parametro[’mensagem’] = ‘hello world’;
$this->load->view(’welcome_index’, $parametro);
}

Feito isso iremos criar um arquivo chamado welcome_index.php na pasta ./system/application/views e nele escrever o seguinte código:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=ISO-8859-1" />
<title>Hello World</title>
</head>
<body>
<?=$mensagem?>
</body>
</html>

Percebam que o segundo arquivo é um simples HTML que imprime a variável $mensagem do PHP na tela, portanto vamos analisar o primeiro arquivo, nele criamos uma classe Welcome que estende a classe Controller, uma função com o mesmo nome da classe (Função Construtora) que chama o construtor da sua classe pai (no caso a classe controller) e uma outra função index (esse é a primeira função chamada de cada controller) que cria um array de somente uma chave e chama a função $this->load->view('welcome_index', $parametro); passando como primeiro parâmetro o nome da view que será chamada e o como segundo parâmetro um array de dados a ser passado para essa view

Essa view recebe esse array e trasforma todos os seus indices em variaveis, dessa forma o indice ‘mensagem’ se torna a variável $mensagem que pode ser usada como quiser no decorrer do codigo

Agora se chamarmos o endereço http://localhost/ (substituir pelo correspondente caso esteja testando remotamente) devemos ter uma tela com a mensagem ‘Hello World’ impressa na tela. O mesmo deve acotecer se chamarmos http://localhost/index.php ou http://localhost/index.php/welcome ou http://localhost/index.php/welcome/index. Isso acontece pois apos o index.php as duas partes separadas por barras correspondem ao controller que será chamado e a função desse controller, porem quando omitimos esses dados ele ira chamar o controller welcome a função index.

Achou que ia ser mais? Pois então comece agora a criar sua própria aplicação usando CI

1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (1 votos, media: 5 Maior Voto: 5)
Jun 18

PHP com CodeIgniter

CodeIgniter PHP Programação CodeIgniter, PHP, Programação Nenhum Comentário

Nas minhas aplicações em PHP costumo utilizar como framework MVC o CodeIgniter, acho que em diversos casos um bom framework pode ajudar o desenvolvedor a desenvolver com maior agilidade e facilidade.

Não vou ficar só nisso, mas para fazer a transição da serie anterior para falar de CodeIgniter vou começar listando os pontos positivos e negativos do CI.

Pontos Positivos

compatível com PHP 4 e 5

Estou vendo o dia em que teremos o lançamento do PHP 6 e ainda vai ser um ponto positivo de um framework ser compatível com PHP 4. Mas é verdade, devido a demora dos provedores de hospedagem de mudar seus servidores web para suportar PHP 5 ainda é uma vantagem de um framework ser compatível com PHP 4, vantagem essa que gera algumas desvantagens que falarei no decorrer do post.

Documentação Rica e de Fácil acesso

Isso sempre será uma grande vantagem de qualquer linguagem de programação, IDE, Framework ou o que for, ter uma documentação rica e de fácil acesso permite que os desenvolvedores não tenham que se matar para procurar soluções para problemas que possam vir a acontecer e nem muito menos para os iniciantes aprenderem o básico do funcionamento do framework.

No caso do CI você pode encontrar tutoriais em vídeo e um guia do usuário na sua pagina oficial, alem de encontrar a versão em português do guia do usuário, que apesar de não estar tão atual quanto a versão em inglês está em otima.

Comunidade Ativa

Junto com o item anterior esse contribui ainda mais para a encontrabilidade do conteúdo referente ao framework. É possivel acessar o forum da comunidade e a Wiki da Comunidade para tirar todas as suas dúvidas.

Facilidade de Uso e Baixa Curva de Aprendizado

Para alguem que já conhece um pouco de PHP usar o CI e como tirar doce de criança, basta assistir aos tutoriais deixar o o guia do usuário aberto em uma aba do seu navegador e começar a usar.

Pontos Negativos

Orientação a Objetos

Para manter a compatibilidade com a versão 4 do PHP, não foi possível implementar todas as mudanças com relação a orientação a objetos que vieram com a versão 5 do PHP, o que impede que alguns recursos de orientação a objetos sejam usados na aplicação.

Nos próximos artigos algumas dicas de uso do CI, como começar a usar e boas praticas de programação

1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (1 votos, media: 5 Maior Voto: 5)

BuscaPé, líder em comparação de preços na América Latina
May 31

Preferencia por PHP

PHP Programação PHP, Programação Nenhum Comentário

Como relatei no post anterior, tenho sim preferencia pela linguagem PHP, apesar de também reconhecer suas falhas.

Nesse post pretendo detalhar os motivos da minha preferencia, em primeiro lugar a facilidade de aprendizagem da linguagem foi uma coisa que me ajudou muito no inicial a trabalhar no ambiente server side, como foi a primeira linguagem para esse fim com a qual eu trabalhei, ainda não tinha muita ideia de como as coisas funcionavam por esse lado.

Outros fatores são a ausência da necessidade de compilação (alguns desenvolvedores não gostam disso é já explico porque), O estilo de tipagem fraco e dinâmico, ou seja, as variáveis não possuem um tipo de dados especificamente declarado como int ou string por exemplo e são criadas em tempo de execução, alem da imensa documentação sobre a linguagem espalhada pela internet e do fato de boa parte dessa documentação estar concentrada ou ter links a partir do site oficial da linguagem[en].

Sobre a compilação, alguns desenvolvedores não gostam da ausência de compilação pois acreditam que com isso os clientes terão total acesso ao código fonte das aplicações que é disponibilizado no servidor, e com isso podem trocar de empresa de desenvolvimento ou desenvolvedor levando consigo o trabalho realizado.

Como eu compartilho da politica de conquistar o cliente pelo serviço prestado e pelo atendimento, não por amarras como uso de contratos que impedem que o cliente tenha liberdade ou não entregando o código fonte dos sistemas produzidos não me importo com o fato da linguagem não ser compilada, muito pelo contrario, acredito que o fato de não ter que recompilar o sistema todo a cada alteração feita me poupa um imenso tempo de desenvolvimento.

Agora as partes fracas da linguagem, pelo fato de ser sido inicialmente desenvolvida sem suporte a orientação a objetos ainda a vestígios desses primórdios presentes na linguagem, apesar de atualmente já prover suporte a orientação a objetos.

Isso se deve muito ao fato de que com a evolução da linguagem era necessário manter sua retro-compatibilidade, caso a linguagem tivesse sido totalmente reescrita, talvez não restaria vestígio algum do tempo de não orientação, porem dessa forma todos os sistemas construídos anteriormente a isso teriam que ser reescritos.

Isso também gera um outro problema, a quantidade de servidores que hospedam aplicações em PHP que possuem cada um uma versão da linguagem rodando, o que causa alguns problemas com relação a local onde a aplicação vai ser hospedada.

Alem disso a pouca conversa que a linguagem tem com as outras linguagens de programação também é na minha opinião um ponto a ser melhorado.

Portanto, se alguem encontrar uma linguagem com essas qualidade e sem esses defeitos por favor me avise, terei imenso prazer em estuda-la e depois fornecer uma avaliação aqui no blog.

No próximo post algumas diferenças entre as linguagens de programação das quais tenho conhecimento.

1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (1 votos, media: 5 Maior Voto: 5)
May 28

PHP Para Grandes Sistemas

PHP Programação PHP, Programação Nenhum Comentário

PHP
Hoje discutindo com uns amigos na faculdade (leia-se bar da faculdade) sobre linguagens de programação um amigo meu disse que PHP era uma linguagem destinada a pequenos sistemas, esse é um dos motivos do post de hoje.

Esse é um preconceito comum dos desenvolvedores de outras linguagens acreditar que PHP é uma linguagem destinada apenas para se fazer o site da padaria da esquina, ou outros sistemas de pequeno porte, mas como eu mesmo já disse isso não passa de preconceito.

Sou sim um defensor da linguagem PHP, quando comecei com o desenvolvimento ela foi uma das primeiras linguagens server side das quais estudei, e mesmo hoje, depois de já ter estudado algumas mais continuo preferindo o PHP.

Existe sim um grande numero de pequenas aplicações desenvolvidas em PHP, isso em parte se da ao fato de ser uma linguagem de fácil aprendizado o que permite que um numero maior de desenvolvedores a utilizem, produzindo assim não só um grande numero de pequenas aplicações como também algumas aplicações robustas como CRM`s e ERP`s.

Portando o PHP suporta sim aplicações de grande nível que tratam de grande volume de dados e acessos, porem muitas pessoas não conhecem a linguagem e acreditam nos comentários de colegas de trabalho e amigos que afirmam que a linguagem é destinada apenas para pequenos sistemas. O que cabe a nós, desenvolvedores PHP é mostrar para essas pessoas o poder da linguagem.

Mas não estou escrevendo isso apenas para criticar o preconceito, vou começar a escrever uma serie de artigos sobre a linguagem e por isso achei por bem começar desbancando esse mito. Em breve mais sobre esse assunto, mas se já está curioso, sinta-se a vontade para visitar a pagina oficial da linguagem [en].

1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (1 votos, media: 5 Maior Voto: 5)