Conceitos fundamentais: Uma avaliação prática do framework CodeIgniter

   A avaliação prática do framework CodeIgniter é realizada tendo como base uma aplicação já
utilizada no mercado, onde a função é o cadastro de candidato em concursos públicos, a partir de um formulário, conforme os padrões do edital, esta aplicação sofre alterações de pequeno e grande porte para ficar conforme os parâmetros do concurso que será realizado, como não utiliza padrão de desenvolvimento vem a custar um grande tempo para essas customizações, além de gerar problemas de entendimento de métodos utilizados no próprio sistema.   A partir destes problemas gerados, o entendimento por parte dos desenvolvedores fica trabalhoso, pela falta de documentação e organização do código fonte, com isso o aproveitamento do código anterior fica reduzido, e consequentemente aumentando o período para finalizar as atualizações.

Introdução: Uma avaliação prática do framework CodeIgniter

 

  Nossa motivação em realizar o artigo com o tema foi da necessidade de avalizar uma possível agilidade junto ao desenvolvimento de algumas aplicações em linguagem PHP, que já estão em uma fase de produção, mas precisam melhorar sua estrutura, para um padrão de projeto novo, facilitando a manutenção e atualização de códigos-fontes e bibliotecas.

Arquitetura geral de aplicação web PHP


O aplicativo deve ser executado simultaneamente entre o cliente e o servidor web. Através do browser, é solicitado todo código HTML e JavaScript para ser processado, o navegador se comunica com o servidor, enviando e recebendo diversos valores. O código PHP é interpretado, realizando operações de inserções ou consultas no banco de dados. O esquema abaixo demonstra as relações entre as arquiteturas.

Segue abaixo um esquema com a arquitetura básica de uma aplicação web em PHP:



Biblioteca FPDF

A biblioteca FPDF, é uma classe da linguagem PHP, que permite gerar arquivos PDF. De acordo com Antunes Lamim (2010), o FPDF é uma biblioteca flexível, sendo possível modificar unidades de medida, formato da pagina, margens, cabeçalhos, cores, quebra de linhas entre outras opções que permitem a modificação do conteúdo gerado.

Compatível com a versão cinco e quatro da linguagem PHP, o FPDF não utiliza a biblioteca padrão da linguagem, PDFlib, que já vem embutida no servidor web, isso compromete um pouco na performance em gerar o documento. Mas o nível de personalização que o FPDF permite, e sua facilidade de documentação no site do criador e em toda comunidade livre, contribui por sua utilização em aplicativos que precisam gerar arquivos com informações provenientes de consultas a banco de dados ou preenchimento de formulários (PLATHEY, 2008).

PHP: Conexão com o banco de dados MySQL

Qualquer página PHP que utilize uma sintaxe de SQL para fazer qualquer operação com o MySQL, deve possuir as funções nativas da linguagem para criar a conexão com o banco de dados. O código descrito possui a função para conexão com o MySQL e outra para selecionar a base de dados. É incluído tratamento em caso de erro através do try e catch, que realiza a tentativa de conexão, e em caso de falha exibe a mensagem de erro.

Adobe Dreamweaver

Segundo Remoaldo (2008), o Adobe Dreamweaver é um software para desenvolvimentos de sites e aplicativos para web, possui um editor HTML e suporte para tecnologias PHP, Ajax, ASP, JSP entre outras.
Conta com uma interface que auxilia o desenvolvimento de código, reconhecendo padrões de comandos. No seu método de design é possível criar campos e botões de uma maneira simples e intuitiva. Com a opção preview, é possível executar o código digitado chamando o navegador padrão ou outro, para ler o arquivo salvo, este botão se torna acessível e prático para que se possa verificar a compatibilidade.

Banco de dados MySQL

MySQL é um sistema gerenciador de banco de dados (SGBD) relacional, existindo uma versão com licença comercial e outra de código aberto com licença General Public License (GPL). Foi desenvolvido por vários anos, pelos programadores Davi Axmark, Allan Larsson e Michael Widenius. MySQL foi publicado em 1996, posteriormente adquirido pela Sun Microsystems, e em abril de 2009 pela Oracle, hoje já possui 10 milhões de instalações pelo mundo, incluindo empresas do setor privado, entidades do governo e laboratórios de pesquisas espaciais (STROPARO, 2010).
Este banco de dados tem como principal característica sua velocidade. Um banco de dados permite armazenar e consultar os dados armazenados. O serviço MySQL controla o acesso a estes dados, permitindo que vários usuários, consigam incluir ou consultar grandes quantidades de informações ao mesmo tempo. O MySQL é multiusuário e multitarefa, utiliza linguagem padrão Structured Query Language (SQL).

Segurança em aplicação Web em PHP

A segurança lógica em uma aplicação web é indispensável, mesmo conectado em uma rede mundial, os dados devem estar íntegros garantindo sua confidencialidade, conforme descreve Figueiredo (1999 p. 1):

Com o rápido crescimento da web e com a diversificação de sua utilização, a segurança se tornou um ponto de importância crucial, principalmente para quem tem a web como um dos principais apêlos comerciais.

Sessões em PHP

O PHP Group (2010), mantedor oficial do projeto da linguagem PHP, define as sessões como uma maneira de preservar dados subseqüentes, permitindo a construção de aplicações personalizadas. Os dados criados são exclusivos para um único acesso, são considerados como parâmetros validos para conceder acessos e modificações especiais.

Cascading Style Sheets (CSS)

CSS é uma linguagem para construção de aparência em documentos escritos em linguagem de marcação. Foi desenvolvido pela W3C com o objetivo de padronizar a customização de conteúdo web. Remoaldo (2008) afirma que o estilo e características visuais de uma página devem ser completamente descritos na linguagem CSS. A linguagem deve ser incorporado ao HTML, diretamente ou através de um link para um arquivo “.css”.

Business to Business (B2B)

O B2B é o processo eletrônico de negócios entre as empresas para compras e vendas. As transações comerciais são realizadas totalmente através de softwares substituindo processos físicos. Conforme McLean, Turban, Wetherbe (2002, p. 175) descreve:

Linguagem de marcação de hipertexto (HTML)

A linguagem HTML é utilizada para produzir paginas web. São interpretados por navegadores para gerar paginas estáticas. Foi criada em 1990 por Tim Berns-Lee com a finalidade de tornar possível o acesso e a troca de informações entre seus colegas. Com a disseminação do padrão HTML em toda internet, em 1994 foi criado a World Wide Web Consortium (W3C), o consórcio internacional da internet, que tinha como objetivo a padronização e manutenção do HTML, entre outras linguagens criadas posteriormente (LOGMAN, 1998).

Protocolo HTTP

Gourley e Totty (2002) definem o Hypertext Transfer Protocol (HTTP) como uma metodologia de comunicação utilizada para troca de dados entre o navegador e o servidor web. Este protocolo é utilizado quando algo é digitado na barra de endereços do navegador, seja ela uma aplicação ou um site, a transferência da página até a plataforma do cliente e suas respostas ao servidor web são realizadas com este protocolo. A comunicação HTTP entre o cliente e servidor é feita através de mensagens. O cliente envia mensagens de requisição e o servidor envia uma mensagem de resposta para o cliente.

Aplicação Web

Aplicação web é qualquer sistema executado através de um navegador, seja na internet ou em redes privadas, localizado em um servidor web, as quais transferem dados da maneira cliente e servidor (TURBAN; MCLEAN; WETHERBE, 2002).

Conceito do AJAX

Ajax é o uso das tecnologias XML (eXtensible Markup Language) e JavaScript, através de processos
assíncronos e síncronos. O objetivo do Ajax é evitar que a cada solicitação enviada pelo cliente ao servidor, não seja necessário carregar toda a pagina (MORONI, 2007).
A metodologia proposta pelo Ajax, cria paginas web mais interativas e rápidas, pois o trafego de dados é menor, visto que não existe a necessidade de solicitar novamente uma página ao servidor e carregá-la no browser.
De acordo com Majer (2010, p. 2):

Um dos grandes problemas do HTML (e seus derivados PHP, ASP, ASP.NET, etc.) é o fato de que ao precisar acessar alguma informação (muitas vezes em função de uma interação com o usuário), numa determinada página, esta informação só pode ser recuperada através de uma chamada à outra página. Isto faz com que o processo seja lento e tedioso.

Servidor web

Servidor web é o software instalado em um computador conectado a internet ou em uma intranet, este computador possui hardware superior aos computadores pessoais. O software é responsável em aceitar pedidos através do protocolo HTTP, ele gerencia e armazena conteúdos de sites ou aplicativos web. Um servidor web pode armazenar somente um site, ou milhares deles, o conteúdo de um site é acessado através dos domínios que estão associados ao Internet Protocol (IP) do servidor (STEVENS; FENNER; RUDOFF, 2004).
Os pedidos para visualização e download dos códigos HTML, imagens, sons ou qualquer outro são feitos através dos navegadores instalados nas plataformas dos clientes. Com a utilização de linguagens especificas para serem processadas e executadas nos servidores, é possível uma interação com os clientes, como envio de formulário, gravação e leitura de banco de dados.
Estes tipos de servidores devem estar ligados dia e noite para garantir a disponibilidade do conteúdo armazenado, ou seja, que em qualquer momento possa atender as solicitações dos usuários. Alguns servidores são configurados para garantir milhares de acessos simultâneos que podem ocorrer em um site ou aplicativo de grande porte, utilizando técnicas de redundância de link da internet, energia elétrica, entre outras que visam a integrabilidade destes servidores.

Envio de e-mails por PHP


A linguagem PHP permite o envio de e-mails através da função mail. Esta função pode operar automaticamente se for configurada para tal, enviando informações definidas em variáveis que podem ser preenchidas com valores do banco de dados ou de formulários. Conforme Muto A. (2006 p. 184):

Uma das grandes vantagens da linguagem PHP é a possibilidade de mandarmos e-mails pela própria pagina do navegador. É um recurso muito útil quando desejamos enviar dados de confirmação de um pedido a um cliente, notificação de inclusão em algumas lista de discussão, construção de Web Mails, etc.

Conceito de PHP


O PHP (PHP Hypertext Preprocessor) é uma linguagem para criação de scripts executados no servidor, foi projetada especificamente para web. Pode ser embutido em um código HTML, quando este código executar em um cliente, é solicitado algo ao servidor web, o PHP irá executar e retornar as informações para o navegador. Por ser interpretado no servidor, o usuário só conseguirá ler as tags em HTML e não o código em PHP. Essa solução apresenta ser veloz e multiplataforma. A sua capacidade é muitas vezes colocada a prova em sites e portais com milhões de acessos. Por ser de código-fonte aberto, pode ser usado, modificado e redistribuído com novos módulos sem nenhuma restrição (MELO; NASCIMENTO, 2007).
As variáveis são verificadas dinamicamente pela linguagem, ou seja, é possível armazenar diversos tipos de dados durante a existência da variável, sem a necessidade de declarar seu tipo na criação. Quando o PHP for interpretado, é identificado o conteúdo, verificando em tempo de execução