Ademir C. Gabardo
Novatec
© Novatec Editora Ltda. 2015. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates Assistente editorial: Priscila A. Yoshimatsu Revisão gramatical: Priscila A. Yoshimatsu Capa: Carolina Kuwabata Editoração eletrônica: Carolina Kuwabata ISBN: 978-85-7522-457-1 YG20150925 Histórico de impressões: Outubro/2015
Primeira edição
Novatec Editora Ltda. Rua Luís Antônio dos Santos 110 02460-000 – São Paulo, SP – Brasil Tel.: +55 11 2959-6529 Email: novatec@novatec.com.br Site: www.novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec
capítulo 1
Atualizações da versão e ambiente de desenvolvimento
No capítulo 1 estão relacionadas algumas das principais atualizações no framework em relação às versões anteriores, dicas e conceitos sobre um servidor web local e como configurá-lo.
1.1 O que há de novo na versão 3.0 Nesta seção serão comentadas algumas, mas não todas as mudanças do framework em relação à versão 2.2.1, última versão estável lançada antes da versão 3.0. Para a referência completa, visite o website do CodeIgniter. As principais mudanças que requerem atenção, especialmente para quem está migrando de versões anteriores do framework, são as seguintes: • O CodeIgniter agora requer versões do PHP a partir da 5.2.4, sendo recomendadas as versões 5.4 ou mais recentes. Não será problema encontrar uma versão compatível em servidores comerciais. • O padrão de nomes de arquivos foi alterado; agora é usada a primeira letra do arquivo de uma classe em maiúscula e o restante em minúscula, de acordo com o nome da classe (veremos mais detalhes sobre isso adiante). Todos os demais arquivos, helpers, views etc. são escritos em letra minúscula. • O driver MySQL foi substituído pelo novo MySQLi. Muitas mensagens de alerta do PHP serão evitadas. • O autoload foi atualizado removendo-se código obsoleto. • Todas as classes foram atualizadas e reescritas conforme o padrão do PHP 5. 19
20
Criando um E-Commerce com CodeIgniter
• Diversos browsers, de dispositivos móveis e até de videogames, foram adicionados à lista de user agents, ou seja, navegadores que os usuários utilizam. Isso é importante sob diversos aspectos, inclusive de segurança das sessões. • Um grande número de tipos de arquivo foi adicionado ao controle de tipos mime suportados. Isso resolveu uma série de problemas de upload e de validação de tipos de arquivo permitidos. • Foram feitas diversas atualizações em helpers com melhorias em geral e algumas correções importantes. • Foi adicionado o suporte à configuração de bancos de dados por meio de DSN. • A versão mínima requerida do MySQL agora é 5.1. A lista de atualizações continua por várias páginas, e outras modificações relevantes serão abordadas no momento apropriado. É recomendável ler o changelog completo para se inteirar das alterações ocorridas nesta nova versão.
1.2 Preparando o seu ambiente local Para que seja possível testar os códigos e as aplicações apresentados neste livro, é necessário ter acesso a um servidor web com PHP e MySQL configurados. Você pode fazer isso diretamente em um servidor de terceiros ou mesmo em um provedor de hospedagem, porém o tempo gasto realizando a transferência de arquivos via FTP mais o tempo de carregamento das páginas em um servidor online pode ser inviável. Outro fator importante é a possibilidade de controlar recursos do servidor local a que muitas vezes não temos acesso em hospedagem compartilhada. Neste capítulo são abordadas as necessidades mínimas para que você possa seguir os exemplos do livro. Também estão listadas algumas ferramentas úteis para o desenvolvimento das aplicações apresentadas.
1.2.1 Instalando Apache, PHP e MySQL no seu computador local A primeira etapa da configuração de nosso ambiente local de trabalho é obter um servidor web capaz de rodar o PHP. Existem diversos servidores disponíveis
Capítulo 1 ■ Atualizações da versão e ambiente de desenvolvimento
21
no mercado como Apache1, Nginx2 e IIS3. Este livro foca o Apache por ser o mais popular de código-fonte aberto e livre. O Apache também conta com a vantagem de funcionar tanto no Windows quanto no Linux. Existem basicamente três maneiras de preparar o ambiente local: manualmente, recomendado para usuários avançados; por meio de pacotes preparados para usuários menos experientes ou para ambiente local; e, como terceira opção, utilizando o Zend Server4, que não é exatamente básico, mas no Windows sua instalação segue o padrão “próximo, próximo, concluído”. Se você optar pela instalação manual do Apache como um software isolado, você precisará instalar o PHP separadamente e alterar o arquivo de configuração do PHP, php.ini. As diretivas do Apache também deverão ser ajustadas corretamente para que o servidor local entenda que existe um interpretador PHP instalado. O mesmo serve para o MySQL, ou seja, é necessário indicar a pasta com a extensão PHP do driver, o caminho etc. Neste caso, estou assumindo que você é um usuário avançado e sabe configurar seu próprio servidor local. Se você optar por uma instalação descomplicada e com as mesmas características da instalação manual, recomendo usar o XAMP, uma distribuição que contempla Apache, MySQL, PHP e mais algumas ferramentas, distribuído pela Apache Friends. O download está disponível em https://www.apachefriends.org/pt_br/download.html. Após fazer o download, basta rodar o pacote de instalação. Os seguintes softwares estão inclusos na versão 5.5.19 desse pacote: Apache 2.4.10, MySQL 5.6.21, PHP 5.5.19, phpMyAdmin 4.2.11, OpenSSL 1.0.1, XAMPP Control Panel 3.2.1, Webalizer 2.23-04, Mercury Mail Transport System 4.63, FileZilla FTP Server 0.9.41, Tomcat 7.0.56 e Strawberry Perl 7.0.56 Portable. O processo de instalação do Zend Server é semelhante ao do XAMP, porém a área de administração irá diferir um pouco. Algumas das ferramentas disponíveis na distribuição do Zend Server são pagas e poderão deixar de funcionar após o período de testes de 30 dias. Após instalar o servidor web local, você deverá testá-lo acessando o endereço http://localhost.
1 2 3 4
http://httpd.apache.org http://nginx.org http://www.iis.net http://www.zend.com/en/products/server
22
Criando um E-Commerce com CodeIgniter
1.3 Com que editar os códigos? O CodeIgniter é basicamente composto de código PHP e alguns outros arquivos, portanto você pode usar qualquer editor de texto de sua preferência, até mesmo o bloco de notas do Windows ou o Gedit no Linux. Porém, é muito mais produtivo utilizar um editor de código-fonte capaz de editar diversos arquivos ao mesmo tempo, integrar-se com sistemas de controle de versão, ainda que locais, e fazer a coloração de código, que ajuda tremendamente no processo de desenvolvimento. Particularmente, gosto do Aptana Studio5 porque é fácil de usar, é gratuito, tem uma interface bonita, funciona no Linux e no Windows e é bastante aceito na comunidade. Você pode baixar o Aptana como um programa stand alone ou como um plugin do Eclipse6, outro editor de uso comum no mercado.
1.3.1 Ferramentas úteis para depuração de código-fonte Lembre-se de que o resultado da aplicação web será a saída no navegador, isto é, o resultado HTML do que o PHP gerar. Então, é usual para o desenvolvedor ter em mãos boas ferramentas de inspeção de código HTML. O Google Chrome é um navegador web que vem por padrão com inspeção de elementos, inspeção de rede que permite avaliar o tempo de carregamento de elementos da página, um console que mostra erros de JavaScript, entre outras funcionalidades úteis. Infelizmente, o Chrome é um voraz comilão de memória. Alternativamente, você pode instalar add-ons, como o Firebug7, e usar outros navegadores, como Firefox, Opera ou Safari. Mesmo as versões mais atuais do Internet Explorer 10 contam com um inspetor de código, DOM Explorer etc. Para depurar erros do PHP, o próprio editor de código é suficiente para ler os arquivos de log gerados pelo CodeIgniter ou os logs do servidor PHP.
1.3.2 Ferramentas para lidar com bancos de dados Dependendo da sua escolha de banco de dados, você terá uma miríade de ferramentas disponíveis. Não cabe a este livro elencar qualidades ou defeitos dessas ferramentas ou de bancos de dados, porém fica indicado para o SGDB MySQL, que será usado no exemplo da loja online, que estejam instalados o MySQL 5 http://www.aptana.com 6 https://eclipse.org/downloads 7 http://getfirebug.com
Capítulo 1 ■ Atualizações da versão e ambiente de desenvolvimento
23
Administrator8, o MySQL Query Browser9 e o MySQL System Tray Monitor ou MySQL Notifier10, sendo que este último é opcional e serve para monitorar o status do servidor MySQL local. Se você preferir, os três programas mencionados podem ser substituídos sem prejuízo pelo MySQL Workbench11, uma versão atual que incorpora gestão do servidor, tarefas de backup, design de banco de dados e tabelas e edição de código SQL em uma única ferramenta. Todas as ferramentas de banco de dados listadas nesta seção são gratuitas. Se você optar por instalar o XAMP, ele também instalará uma versão do phpMyAdmin, que é um conjunto de scripts PHP destinado à gestão de bancos de dados MySQL. Para pequenas aplicações, isso já resolve o problema, porém, se você tiver tabelas maiores para gerenciar, como será o caso das tabelas de CEP apresentadas no site, talvez não seja possível carregar arquivos tão grandes por meio de upload.
8 9 10 11
http://downloads.mysql.com/archives/administrator http://downloads.mysql.com/archives/query http://dev.mysql.com/doc/refman/5.5/en/windows-notifier.html http://www.mysql.com/products/workbench