Pular para o Conteudo Pular para o Menu
jun 25

Começando com CodeIgniter

CodeIgniter PHP Programação CodeIgniter, PHP, Programação 2 Comentários

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 (4 votos, media: 5,00 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 (4 votos, media: 5,00 Maior Voto: 5)

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

Qualidades e Defeitos das Linguagem de Programação – JSP

Programação Programação 2 Comentários

Continuando a serie…

Como prometido vou falar um pouco sobre as qualidades e defeitos da linguagem JSP, antes de mais nada quero deixar claro duas coisas, uma que eu já devia ter falado antes, que as opniões escritas nesses artigos tratam apenas do meu intender sobre as linguagens e das experiencias que eu tive com elas, portanto, ninguem é obrigado a concordar em nada comigo.

Muito pelo contrario, eu quero mesmo é que discordem, porque se todo mundo concordasse com tudo não ia existir nem conversa.

Segunda coisa é sobre o JSP, vou falar nesse post sobre minha visão do JSP com Struts, pois alem de ser um dos frameworks mais utilizados no mercado hoje é o único com qual eu já trabalhei, portanto não poderia falar dos outros

JSP – Qualidades

Orientação a Objetos

Falei que o PHP não tinha conseguido ainda remover completamente os vestigios do seu passado de linguagem não orientada a objetos, e que o .net tinha encontrado uma solução muito boa para resolver esse problema, mudar a extensão do arquivo.

No caso do JSP a historia é um pouco diferente, pois por ser derivado do Java, que já era orientado a objetos o JSP já nasceu OO, isso em si já é uma ótima qualidade.

Portabilidade

Outra qualidade derivada da sua linguagem mãe, o Java é a portabilidade, enquanto o PHP é naturalmente derivado de sistemas Linux (apesar de hoje já estar presente em ambientes Windows) e do .net ser naturalmente destinado a ambientes Windows, o JSP pode ser executado em diversas plataformas.

JSP – Defeitos

Tipagem estática e forte

Assim como o .net o Java exige que as variáveis sejam declaradas e seu tipo de dados não pode mudar no decorrer do programa.

Compilação

Tambem é uma linguagem que passa por um processo de compilação, já citei que para alguns desenvolvedores isso é uma vantagem, pois garante em parte a segurança do código e para grandes sistemas aumenta a velocidade de processamento de linguagens compiladas.

Porem, como também já disse não gosto muito da idéia de ter que recompilar o sistema todo a cada mudança feita nele.

Excesso de Configuração

Agora falando especificamente do Struts, acho que ele exige um excesso de configuração ao exigir que o desenvolvedor declare todas as actions, models, views, actionforms, etc, etc, etc, no arquivo web.xml, acho que isso atrapalhando a fluência do processo de desenvolvimento.

Plugin do Java

Preciso falar alguma coisa sobre o plugin do java? já não sou a favor da necessidade de plugin nenhum para acessar sites, mas o do flash ainda é levinho, não carrega muito o sistema, já o do Java…

Acontece que, mesmo a linguagem JSP rodando no lado servidor, ela ainda exige o plugin do java para algumas funções, o que é péssimo.

São essas as linguagens com as quais eu trabalhei, e portanto sobre as quais eu falei, acredito que ainda está faltando Ruby, Python, alem de muitas outras linguagem espalhadas pelo mundo, se um dia eu vier a trabalhar com uma dessas linguagem eu faço um artigo falando sobre elas.

Enquanto isso, a área de comentários está sempre aberta para quem quiser comentar sobre essas demais linguagens, discordar ou concordar comigo sobre as linguagens das quais eu já falei, ou falar qualquer outra coisa que tenha vontade.

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

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

Qualidades e Defeitos das Linguagens de Programação – asp.net

Programação Programação 2 Comentários

Como dito no post anterior, irei destinar os proximos artigos para tratar das qualidades e defeitos das demais linguagens de programação alem do PHP, começando hoje pelo .net.

Quero antes de tudo deixar claro que essas avaliações são baseadas no desenvolvimento de aplicações web, já que não é o foco do blog tratar aplicações desktop.

.Net – Qualidades

Orientação a Objetos

Falei no post anterior sobre esse ser um defeito do PHP, ter ainda resquícios da não orientação a objetos causados pela evolução da linguagem. A linguagem .Net para a web também evoluiu da linguagem asp que também não possuía suporte a orientação a objetos, porem no caso dessa migração a microsoft encontrou uma solução melhor do que manter a retro-compatibilidade usada pelo PHP, mudar a extensão dos arquivos de .asp para .aspx, isso permitiu que os servidores continuassem a interpretar as aplicações asp da forma antiga, pois esses teriam extensão .asp como também interpretar as novas aplicações feitas em asp.net sem ser necessário manter a retro-compatibilidade.

Esse mesmo padrão de mudança de extensões foi adotado recentemente para outros produtos da microsoft como os da família Office, porem nesse caso a gigante dos softwares não foi tão feliz, o fato de aplicações sobre uma linguagem asp.net rodassem em servidor permitiu o uso dessa nova extensão .aspx sem causar muitos problemas para o desenvolvedor, que por sua vez teria que se preocupar apenas em procurar um servidor que tivesse suporte para a nova tecnologia.

No caso dos arquivos do word e família, isso ocorre de maneira diferente, como o aplicativo e destinado a usuários finais, nem todos esses usuários migraram para a versão 2007 do pacote office o que causa alguns problemas na hora de compartilhar arquivos produzidos em docx ou pptx com usuários que não possuem essa ultima versão.

.Net Framework

Outra grande sacada nas linguagens .net é a utilização de um framework completo, como bibliotecas para as mais diversas utilidades integrado ao ambiente de desenvolvimento.

Compatibilidade com Diversas linguagens

Como o ambiente de desenvolvimento .net foi projetado para que os desenvolvedores tivessem liberdade de escolher sua linguagem preferida de desenvolvimento para o chamado “code behind” isso permitiu que todas essas linguagens aceitas pelo ambiente “conversassem” de forma muito amigavel, diferentemente do que ocorre com o PHP.

.Net – Defeitos

Tipagem estática e forte

Justamente o contrario do que ocorre com o PHP, no caso do .net (pelo menos com C# e vb.net) a tipagem utilizada é estática e forte, o que quer dizer que as variáveis devem ser declaradas com seu tipo de dado, e que esse tipo de dado não pode ser alterado no decorrer do programa.

Documentação não concentrada

Não sei se o site oficial da linguagem é muito mal projetado mesmo, ou se não existe mesmo muito conteúdo sobre a linguagem no domínio da microsoft, o que acontece e que eu nunca consegui achar nada do que eu queria sobre o desenvolvimento em .net naquele lugar.

Alem disso são poucos os sites externos ao domínio microsoft que possuem conteúdo bem organizado sobre o ambiente .net, a maioria dos sites que tratam da linguagem contem apenas tutoriais explicando como fazer algo em especifico, mas nada tão bom comparado ao manual do PHP disponível no site oficial da linguagem que fornece explicações detalhadas sobre cada parte da linguagem. (PS: se alguem souber de algo assim me passe o link)

Recriar o HTML

Posso definir isso simplesmente dizendo que pra mim não existe <asp:label> <label> pra mim é simplesmente <label>, assim como eu nunca ouvi falar de um atributo “runat” (isso é o que mais me desanima em relação ao .net)

Linguagem Proprietária

Por ser uma linguagem proprietária da Microsoft não ha liberdade para os desenvolvedores ajudarem a criar melhorias para o ambiente, assim como não há abertura para que sejam desenvolvidos IDE`s para o desenvolvimento na linguagem com total controle da mesma, já que para a Microsoft é muito mais interessante vender o pesadíssimo Visual Studio.

Existem sim algumas outras ferramentas de desenvolvimento para a linguagem, porem pelo fato da Microsoft não disponibilizar acesso ao código fonte da linguagem é praticamente impossível competir de igual para igual com ela. (Isso também me desanima bastante).

Compilação

Isso é uma questão de preferencia, como já disse anteriormente prefiro linguagens interpretadas pois não tenho que compilar novamente toda a aplicação a cada vez que altero o código, porem concordo que uma linguagem compilada tem seus benefícios em relação ao tempo para processamento das informações.

Perceberam que as qualidades do PHP são defeitos no .net e as qualidades no .net são defeitos no PHP? Alguem conhece alguma linguagem que tenha as qualidades dessas duas linguagens e que não tenha os defeitos?

No próximo post os defeitos e qualidades do JSP.

1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (3 votos, media: 5,00 Maior Voto: 5)
mai 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 (3 votos, media: 5,00 Maior Voto: 5)
mai 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 (4 votos, media: 5,00 Maior Voto: 5)