simples assim pág 6 projetos brasucas pág 22 o inferno das ... · phpreview nas redes sociais...

26
e mais... Simples assim pág 6 Projetos Brasucas pág 22 O inferno das dependências pág 24 ano 3 | edição 5 setembro-outubro/2012

Upload: trinhque

Post on 15-Nov-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

e mais...

Simples assim pág 6

Projetos Brasucas pág 22

O inferno das dependências pág 24

ano 3 | edição 5setembro-outubro/2012

Page 2: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net2

Já começou a usar o PHP 5.3?Olá amigos programadores. Depois de algum tempo estamos de

volta! Foram quatro meses estruturando a nova edição da revista PHPReview para que vocês pudessem desfrutar melhor do seu con-teúdo e começamos a alteração pela disposição do texto, permitindo uma leitura contínua, sem idas e vindas no arquivo. Também vamos apresentar um layout mais moderno e ao mesmo tempo mais limpo. Em suma, você terá, a partir desta edição, uma nova experiência ao ler uma revista on-line.

Para celebrar esta nova edição, vamos tratar de um assunto que ainda não é unanimidade entre os programadores. Veremos que mais da metade dos programadores ainda não adotaram a versão 5.3 em seus projetos. E de quem é a culpa? O que é preciso para mudar a ver-são do PHP no seu projeto? Estas e outras perguntas serão respondidas na matéria de capa que traz ainda um mapa de como estão as empresas de hospedagem na adoção do PHP 5.3.

Está presente ainda a coluna Simples Assim que mostra como usar bem os loops e tirar melhor proveito deles. Também tem a estréia do quadro Projetos Brasucas que mostram iniciativas brasileiras de código livre em PHP e para iniciar, mostraremos o projeto do Brazilian Frien-ds of Symfony, uma iniciativa que visa agrupar códigos de qualidade e alta relevância para programadores que utilizam o Symfony 2 como framework de desenvolvimento.

Espero que gostem do novo formato da revista, dêem opiniões, critiquem, comprarem para que cada vez mais possamos ter uma revis-ta de php com qualidade.

Divirtam-seAndré Luiz Pinheiro

Editor-Chefe

Editor-chefe:André Luiz [email protected]

Editoração:Digital [email protected]

Conteúdo:Alexandre “Taz” [email protected]

Editorial:André Luiz Pinheiro

Capa:Digital [email protected]

Colaboradores:GU PHPRioGU PHPSPAlexandre “Taz” AndradeNuno Franco da CostaPaulo RibeiroRafael DohmsRafael BerbertSite Viva o Linux

Publicidade:[email protected]

Todas as informações e dados técnicos que constam nos artigos e demais conteúdos editoriais têm exclusivo objetivo informativo. A revista não se responsabiliza por aplicações ou usos incorretos de qualquer uma destas informações.

Sumário

AconteceDicasAgenda

Artigos Simples Assim O inferno das dependências

Projetos Brasucas

Capa PHP 5.3: Porque não usá-lo? Como estão os servidores de hospedagem? Breve história do PHP

Notícas PHP’n’Rio 2011 Volday III

Expediente

455

624

22

1418

21

1012

Page 4: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net4

Acontece

Lançada versão 5.4 do PHP

Foi lançado no dia 1ª de março a tão aguardada versão 5.4 do PHP. A nova versão, que é uma melhoria da anterior, apresenta como grande novidade o PHP CLI SAPI, WebServer local para rodar aplicações de testes sem a necessidade de se instalar o apache, nginx, IIS ou qualquer outro servidor web.

Para baixar a versão mais atualizada do PHP 5.4 e usufruir desta novidade, acesse php.net/downloads.php.

PostgreSQL: correções e novas funcionalidades.

No último dia 06 de junho foi disponibilizada a nova versão corretiva do SGDBR PostgreSQL, que apresenta principalmente melhorias de performance na consulga das informações.

O PostgreSQL, que foi abordado na edição #2 da PHPRe-view, é um banco de dados relacional com forte controle transacional, que vem substituindo gradativamente o Mysql nas aplicações em PHP. O PostgreSQL possui suporte para todos os OS disponíveis no mercado.

Você poderá escolher entre as versões 9.1.4, 9.0.8, 8.4.12 ou 8.3.19. Baixe em postgresql.org/download.

Segunda Release Candidate do Cake 2.2

A Cake Software Foundation, mantenedora do CakePHP, li-berou a nova Release Candidate do framework PHP. Segundo a CSF, esta é a última RC do Cake antes do lançamento oficial da versão 2.2.

Algumas novidades foram implementadas nesta versão. Foram adicionadas novas validatios, como validador de Mi-meTypes, de números naturais e outros. Também foi melho-rada a forma de se criar um plugin dentro do CakePHP. Além disso, foram inseridas várias melhorias solicitadas para as versões anteriores do framework.

Para verificar todas as alterações da nova versão do Cake-PHP, acesse: http://bit.ly/MsLjPy.

78,3%

21,7%

Sim

Não

Você usa PHP 5.3 nos seus Projetos? Por que alguns não usam?*

muita incompatibilidade com funções antigas o que acaba gerando problemas em hosts.

Minha hospedagem não suporta essa versão.

Falta de tempo para atualização.

* Respostas anônimas.

CodeIgniter Lança nova versão

Foi disponibilizada no último dia 13 de junho a versão 2.1.1 do CodeIgniter que apresenta, dentre outras melho-rias, como acesso a dados via PDO, em substituição ao Acti-veRecord, testes unitários e muito mais. Além disso, foram disponibilizadas correções do código fonte do framework.

Para saber mais sobre a nova versão do CodeIgniter e baixar a nova versão acesse http://bit.ly/KSuBLt.

Twig lança nova versão...

A nova versão do Twig, gerenciador de templates do SensioLabs, mantenedora do Symfony, foi disponibilizada no último dia 03/02 e apresenta melhorias como suporte a filtro reverso, além de melhorias no core do gerenciador de templates. Também foi melhorado o tratamento da whites-paces de acordo com tipo de saída (html ou js).

Para baixar a versão 1.8.3 acesse http://bit.ly/MsP2fR.

... e o Smarty não fica atrás.

Temendo perder espaço entre os gerenciadores de tem-plate com a chegada do Twig, o site oficial do Smarty apre-sentou um teste realizado pelo blog uMuble comparando o Smarty com o Twig. Será que eles estão perdendo espaço? Estando ou não, foi lançada nova versão ( 3.1.10 ) pouco depois da publicação no blog e esta versão possui muitas melhorias que estão disponíveis no Twig e não no Smarty...

PHPReview nas redes sociais

@phpreview

http://on.fb.me/KzVKl6

http://linkd.in/KzW833

diariodebordo.phpreview.net

Page 5: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net 5

Versões corretivas do PHP preocupa

A Zend liberou, em menos de uma semana, três versões corretivas do PHP. O problema ocorreu no mód_php, tanto para nginx quanto para apache. Este erro já não era reporta-do há mais de 8 anos e o time de desenvolvedores lançaram duas versões para tentar corrigir tal problema. A versão 5.3.14 já traz esta correção.

Acontece

Andi Gutmans confirmado na PHPConf 2012

Andi Gutmans, CEO e Co-Fundador da Zend, é confirmado como Keynote Speaker da PHP Conference Brasil 2012. Andi se apresentará pela primeira vez na América do Sul com a palestra “The Future of PHP in the Cloud” [“O Futuro do PHP na Nuvem”]. Nesta apresentação serão exploradas as últimas inovações em Desenvolvimento Mobile e Cloud.

Palestras gratuitas de SL

O SINDPD-RJ está oferencendo palestras mensais sobre Software Livre, tanto para programadores quanto para usu-ários. As palestras acontecem sempre na primeira segunda--feira do mês às 19:00h. Para aqueles que estiverem interes-sados, o SINDPD-RJ fica na Av. Presidente Vargas, nº 502, 12º andar e a entrada é franca.

Dicas

Código-fonte do PHP já está no github

Agora está mais fácil ajudar com o código-fonte do PHP, pois ele está disponível agora no github (https://github.com/php). Quem quiser ajudar com o código na correção de bugs pode clonar o código e submeter as alterações para serem avalidadas pelos coordenadores.

Apesar disso, as novas funcionalidades ainda estão restri-tas a um grupo seleto de programadores.

Dica de livro

SQL Curso Prático

Quem nunca precisou de um livro de SQL para tentar melhorar a performance de uma aplicação? Ou ainda, quem nunca precisou aprender SQL? Tentando respoder estas perguntas a Novatec apresenta o livro SQL curso prático. Este livro apresenta uma linguagem dinâmica porém simples na hora de ensinar os fundamentos do SQL, que vai desde a construção da instrução SQL até a normalização dos dados para uma melhora na performance das consultas.

Este livro pode ser comprado nas principais livrarias do país ou diretamente no site da Novatec, ao preço de R$ 42,00.

Boa leitura.

Anote aí!

BrazilJS30 e 31/08/2012Bourbon Country - PoA - RS

TDC 2012 - Florianópolis24 a 26/08/2012Estácio de Sá - Florianópolis - SC

TDC 2012 - Goiânia20 e 21/10/2012Fasan - Goiânia - GO

Symfony Live London13 e 14/09/2012The Brewery - Londres - ING

Symfony Live San Francisco26 a 29/09/2012Microsoft - San Francisco - EUA

Latinoware 201217 a 19/10/2012Foz do Iguaçu - PR

PHPConference 201229/nov a 02/dez/2012UNIFIEO - Osasco - SP

O seu evento também pode aparecer aqui.Envie um e-mail para [email protected]

Page 6: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net6

Simples Assim

Aprendendo a usar loops/*** André Pinheiro é programador PHP há 7 anos, trabalhando* como freelancer na construção de sites e e-commerces.* Já trabalhou como consultor em empresas de grande porte* como Vale, Banco BMG, ONS e Serpro. Também faz parte* da equipe de desenvolvimento do Smarty 3 na execução* testes de qualidade do Template Engine.** @author André Luiz Pinheiro* @email [email protected]**/

Depois de alguns artigos comentando sobre as facilidades do mundo PHP, vamos voltar a falar de coisas simples que você pode fazer para melhor muito o seu dia a dia como programador. Nesta edição e nas

próximas irei tratar de um dos maiores vilões de performance do seu website: o laço de repetição.

Por mais que o programador ache que eu estou enganado, a verdade é que poucos são os programadores que dominam a arte de criar loops. Muitos usam o “repetidor” sem um estudo prévio do que será feito, e como conse-quência ocorre criação de variáveis sem necessidade, chamadas de funções repetidamente ou uso do laço errado. Sem este estudo prévio a sua solução pode resultar no uso demasiado dos recursos da máquina.

Existe algumas regrinhas básicas para uma boa otimização do seu có-digo. Tais regras são baseadas nas definições da linguagem, na regra de utiliza-ção do comando e no bom senso do programador. Nesta edição, vamos tratar apenas de três regras, que estão na Listagem 1, e irei explicar cada uma delas em detalhes.

Evite função no laço Loop

O programador, instintivamente, quando vai fazer uma iteração em uma coleção de dados qualquer, tende a usar a função de contagem dentro do pró-prio loop (Listagem 2). Aparentemente este loop não está errado, uma vez que estamos fazendo $i ir até o total de itens em $lista. Porém, se olharmos a definição do comando for, podemos ver que haverá um grave problema de desempenho neste comando.

Neste trecho de código, o for irá iniciar a variável $i, que será a vari-ável de iteração. Depois disso, ele irá comparar o valor de $i com o resultado do comando count($lista). Se a condição estiver correta ele executará o loop e ao final irá acrescentar “1” ao valor de $i. Desta forma, para cada itera-ção realizada, o comando count() será executado. Para uma lista pequena de itens (em torno de 10) não haverá nenhum problema, mas quando maior for a quantidade de itens em $lista, mais demorado será a contagem de itens da lista e mais tempo levará para o comando ser finalizado.

Listagem 2for ($i=0;$i<count($lista);$i++){ …}

Listagem 1

• • Evite usar função de contagem(Count(), Total(), etc.) na definição do loop a menos que o total a ser contado sofra variação. Procure definir uma vari-ável que irá receber o total de iterações a serem criados;• • Sevocêforvarrerumacoleção,

seja ela um array, uma matriz ou uma coleção de dados, use o comando forea-ch ao invés do for.• • Consultas repetitivas podem (e

devem) ser guardadas em sessão.

‘‘‘‘a verdade é que

poucos são os programadores que dominam a arte de criar loops

Page 7: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net 7

Simples Assim

Para solucionar este tipo de problema, o ideal é que se crie uma vari-ável externa ao for que receba a quantidade de itens que contém em $lista, uma vez que este valor é fixo e depois fazer o loop em cima de uma constante, garantindo assim que o laço será executado em menos tempo (Listagem 3). Este procedimento é válido também para outros tipos de comando, como

for ($i = 0;$i <count(MontArray());$i++);for ($i = 0;$i <mysql_nom_rows($row);$i++);

Foreach no lugar do For

Outro problema muito comum entre os programadores é o uso do coman-do for ou while quando se precisa fazer uma busca em uma coleção de dados. Estes dois comandos são muito úteis, mas quando usado da forma correta, do contrário, eles usam mais recursos da máquina do que você realmente precisa.

Para isso, o PHP possui um comando próprio chamado foreach. Este co-mando serve exclusivamente para trabalhar com vetores, matrizes ou coleções de dados. A sua sintaxe é muito simples e sua utilização fica muito prática.

Se usarmos o código da Listagem 2, o nosso comando ficará parecido com a Listagem 4.

Pode-se ver que o comando ficou mais limpo do ponto de vista do progra-mador e será mais performático. No caso do for, você tem que ficar buscando a linha do registro que será usado através da variável de controle ($i). Por mais que você informe o índice, o PHP terá que varrer o vetor até encontrar aquele registro que você está procurando e cairemos na mesma questão do uso da função count(). Já com o foreach, o PHP sabe qual é o registro que se está sendo usado passa todo o conteúdo para dentro da variável $item. Então você irá trabalhar com um a variável menor. Apesar de se ter uma variável a mais, você procurará a informação num registro menor, que demandará me-nos recurso da sua máquina.

E se eu precisar usar o índice para escrever na tela? Não tem problema, basta alterar o seu comando para a Listagem 5.

Apesar disso um cuidado deve ser tomado: se você estiver trabalhando com registros vindos de um banco de dados e você não estiver usando PDO, Doctrine ou outro framework de acesso a dados é melhor usar o comando while do que o foreach.

Grave as consultas repetidas em sessão.

Apesar dos dois pontos mencionados anteriormente serem vitais na me-lhoria de performance da sua aplicação, existe outro ponto que não se dá mui-ta importância na hora de se desenvolver, principalmente porque a sua exe-cução é muito rápida. O problema é que muitas vezes executamos scripts que não são necessários a todo momento, mas apenas quando se acessa a primeira vez algum sistema. Vou exemplificar.

Vamos supor que você esteja montando uma tela que retorna os valores das tabelas que estão dentro da base de dados. O trecho de código que lista as tabelas se parece com o apresentado na Listagem 6.

Listagem 3$total = count($lista);for ($i = 0; $i <$total; $i++){ …}

Listagem 4foreach($item as $lista){ echo $item;}

Listagem 5foreach($item as chave=>$lista){ echo $chave .” – “. $item;}

Listagem 6<?php$con = mysql_connect( ‘host’, ’user’, ’senha’);mysql_select_db(‘dbteste’);$tabelas = mysql_query( ‘show tables’);

echo ‘<select name=”tabelas”>while($row = mysql_fetch_row($result)) { echo “<option value = ’”. $row[0].”’>”. $row[0].”</option>”;}echo “</select>”

Page 8: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net8

Listagem 5Listagem 3

Listagem 4Listagem 2

Logicamente os valores das tabelas são dinâmicos e não tem como dizer se um valor novo entrou na tabela ou não, então devemos fazer uma consulta sempre que precisar, porém raramente se cria uma nova tabela no banco sem planejamento (pelo menos é o que esperamos). Por conta disso, torna-se mui-to dispendioso fazer a consulta às tabelas sempre que o usuário recarregar a página.

O ideal nesta situação é fazer a consulta das tabelas existentes no banco de dados e guardar a informação na sessão do usuário. Assim, toda vez que for montar a lista de tabelas verifique antes se os dados estão em sessão. Se esti-verem você usa o que está em sessão e não precisa refazer a consulta na base de dados. Muitos programas apresentam lentidão justamente pela quantidade exagerada de acesso aos dados.

Conclusão

Neste artigo vimos que usar bem os comandos de repetição faz com que o nosso programa ganhe maior agilidade e a resposta ao usuário seja rápida. Logicamente não são somente estes passos que fazem com que o seu sistema se torne mais rápidos, mas com certeza já teremos uma melhoria considerável.

No próximo artigo vamos ver como usar corretamente o comando loop com vetores e quais os benefícios que obtemos com este método.

Até a próxima.

Simples Assim

0,2

0,3

0,4

0,5

0,6

0,7

0,8

1 10 1.000 100.000

Tempo de execução em milesegundos pela quantidade de iterações

Para mostrar as diferenças apresentadas neste artigo, resolvemos colocar em um gráfico o tempo que cada um dos trechos de código levam para executar o loop completo. Note que, para poucas transações, a diferença é muito pequena, mas para um número considerável de iterações a entre os loops é bastante considerável.

O teste foi realizado em uma PC com Intel Celeron e 2GB de memória e outras máquinas podem apresentar resultados diferentes, mas a tendência do gráfico per-manecerá basicamente a mesma.

Legenda

Page 9: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

No livro Gerenciamento de Projetos Sem Crise, o autor en-sina os métodos e as técnicas utilizadas em seus projetos. Bart Gerardi aponta que os diversos erros cometidos em diferentes projetos podem ser previamente evitados, impedindo uma crise desnecessária.

O leitor aprenderá a criar planos de projetos, estabelecer métri-cas e testar suposições, além de identificar requisitos de cli-entes e alinhá-los aos seus.

Gerenciamento de Projetos Sem Crise apresenta conselhos detalhados para a gestão habilidosa de mudanças ou para o tratamento de desafios verdadeiramente inesperados.

Identificar e evitar problemas previsíveis por meio de métodos e técnicas perspicazes pode ser a chave para o êxito de um projeto

Sobre a editora

QUAL É O SEGREDO DE UM

A Novatec Editora é uma editora brasileira especializada em publicação de livros técnicos nas áreas de informática, marketing, negócios, finanças e investimentos.

Autor: Bart GerardiEditora: NovatecISBN: 978-85-7522-299-7Páginas: 272Ano: 2012Preço: R$ 73,00

PROJETO BEM SUCEDIDO?

Page 10: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net10

Notícias

PHP’n’Rio agita final de ano.Evento realizado no CEFET-RJ atraiu mais de 300 participantes

No mês de novembro de 2011 o CEFET-RJ foi a casa dos programado-res PHP que estiveram presentes em mais uma edição do PHP’n’Rio. Organizado pelo grupo de usuários do Rio de Janeiro, PHPrio, a ter-

ceira edição do evento contou com mais de 360 participantes, quantidade duas vezes maior que a de participantes da última edição.

Para Igor Feghali, coordenador do PHPrio, o aumento da quantidade de participantes mostra que o cenário para programadores PHP tem crescido muito no estado do Rio de Janeiro, prova disso é o constante aumento de par-ticipantes a cada edição do evento. “Estamos praticamente dobrando o número de participantes a cada edição do evento. Se continuarmos assim, em 5 anos, o PHP’n’Rio será o maior evento de PHP do mundo”. Brincadeiras a parte, a matu-ridade que o evento vem mostrando ao longo do tempo, fruto do trabalho de seus membros, é o que está atraindo os participantes cada vez mais.

Participação da comunidade é fundamental na escolha das palestras.

Na primeira edição do evento os organizadores não tinham muita noção de qual conteúdo os programadores do Rio queriam ouvir e muito menos como seria a resposta deste público. Além disso, alguns problemas com patrocina-dores fizeram com que os palestrantes fossem “da casa”. Apesar destes porme-nores, o evento foi muito além do esperado. Entre este evento e o próximo, começaram aqui no Rio de Janeiro a rodada de palestras, no qual membros do grupo começaram a palestrar sobre o seu instrumento de trabalho, sejam tem-plates, frameworks, tecnologias ou qualquer coisa que envolvesse a programa-ção PHP. Desta forma, a coordenação do grupo começou a moldar o que seria a segunda edição do PHP’n’Rio, que foi realizado na PUC - Rio. Esta edição mostrou o poten-cial do evento.

Com esta experiência adquirida, foi a hora dos mem-bros do grupo responder o que gostariam de ver na tercei-ra edição do evento. Foram listas intermináveis de e-mails, fóruns de discussão, enquetes, tudo isso para garantir que nenhuma palestra fosse desinteressante para o público. E não foi. A prova disso é que o evento novamente cresceu muito no seu público (detalhes no gráfico).

Neste ano para que os participantes pudessem aprovei-tar ao máximo o evento as palestras foram divididas em duas trilhas. Na trilha vermelha as palestras foram reali-zadas no anfiteatro. Já a trilha azul foi realizada no audi-

Palestra sobre NoSql, uma das mais cheias do evento.

Dados do evento

Page 11: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net 11

tório anexo. Desta forma, o programador pode escolher aquelas palestras que mais se adequavam a suas necessidades de apren-dizado.

Enganam-se aqueles que acharam que os auditórios ficaram vazios, pelo contrário, todas as palestras ficaram praticamente lotadas, mostrando mais uma vez que o evento acertou nas pa-lestras selecionadas.

Oficinas também fizeram parte do evento

Além das palestras, que foram divididas em dois auditórios, o evento também contou com oficinas “Mão na massa”, que ser-viram tanto para programadores iniciantes e experientes apren-derem novas tecnologias. O sucesso foi tanto que todas as salas ficaram completamente lotadas e algumas pessoas que quiseram participar do curso tiveram que usar o próprio notebook. “O de-sejo de aprender é inerente ao programador”, foi assim que André Pfeiffer explicou a quantidade de participantes do seu curso de Drupal 7. Também houve cursos de CakePHP, Doctrine e noções básicas de PHP.

Como a grade estava muito diversificada, quem participou de um mini-curso também pôde participar de outras palestras. Mesmo assim, alguns participaram somente das oficinas.

Estréias em grande estilo

Duas novidades estiveram presentes nesta edição do PHP’n’Rio. A primeira delas foi a nova camisa da comuni-dade que estampa no peito o novo logotipo da comunidade, reformulado em 2010, como parte da preparação para o evento daquele ano.

A nova camisa foi tão aceita que muitos fizeram questão de garantir logo a sua camisa antes que acabasse. Eram vários programadores de azul, preto e branco desfilando o novo logo pelos corredores do CEFET.

Uma debutante, que está cada vez mais constante nos even-tos de Informática, é a Desconferência. Trata-se de um espaço alternativo onde programadores trocam experiências, batem papo sobre as palestras que acabaram de participar. A desconf (como é carinhosamente chamada) também tem espaço para palestras rápidas de apresentações simples, onde qualquer po-deria chegar com o seu notebook, “espetar” no projetor e ini-ciar sua palestra para aqueles que quiserem ouvir.

Para se ter uma idéia de como a desconf é auto gerenciável, um dos organizadores do evento perguntou a uma pessoa o que estava acontecendo, e esta respondeu “é desconf, cara”.

O evento deste ano mostrou que o Rio de Janeiro é um ce-leiro de programadores web, principalmente de PHP e HTML. Para este ano a equipe estará mais empenhada em fazer um evento cada vez melhor para o público e a PHP Review estará marcando presença no próximo. ?>

Notícias

Participantes da Desconferência. Espaço alternativo para apresentação de trabalhos e palestras que não constam na grade do evento.

Igor, Rafael e Valéria, membros da comissão organizadora do evento.

Page 12: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net12

Niterói recebe terceira edição do VolDay Notícias

Desta vez foi a UniLassale que abriu as portas para o evento.

Em março aconteceu a etapa carioca do Viva o Linux Day, VolDay, evento organizado pelo site vivaolinux.com.br. A terceira edição foi realizada na Uni-Lassale, em Niterói-RJ e contou com cerca de cinquenta palestrantes e mais de trezentos participantes.

Com ênfase em software livre, o evento contou com a presença dos maio-res incentivados do SL no cenário nacional, como Silvio Palmieri (openSU-SE), Eliane Domingos e Edgard Alves da Costa (libre office), Kretcheu, grande evangelizador do Software Livre, também entre eles o André Pinheiro, editor chefe da revista PHPReview palestrando sobre a necessidade de diálogo entre programados e administradores de servidor.

Discussões calorosas, debates empolgantes e aprendizados tomaram conta do dia e muitos participantes aproveitam para instalar o Linux em seus note-books, alguns estavam inclusive tendo o seu primeiro contato com o software do pinguim.

A próxima edição do Volday ainda não tem data confirmada, mas se você quiser levar o VolDay para sua cidade ou quiser acompanhar as novidades, pode fazer através do site volcon.org ?>

Curiosidades sobre o VolDay

• O primeiro evento ocorreu em março/2010 e foi realizado na ci-dade do Rio de Janeiro.• Indiretamente, o site do Kre-

tcheu (www.kretcheu.com.br) é o site oficial das entrevistas com pa-lestrantes.• O site Viva o Linux é, atual-

mente, o maior site de referência para códigos e dicas voltadas para linux. O site chega a receber mais de 10.000 visitas por dia.

Page 13: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net 13

IX ConferênciaLatino-Americanade Software Livre

Em outubro, Foz do Iguaçu será mais uma vez a sede da Conferência Latino-Americana de Software Livre – Latinoware. Mais de 4 mil pessoas, entre estudantes, profissionais e especialistas da área são esperadas para esta que é a nona edição do evento, que acontecerá no Parque Tecnológico Itaipu (PTI), na área da Usina Hidrelétrica de Itaipu.

O objetivo deste evento é abrir espaço para discussões e reflexos sobre a utilização do Software Livre na América Latina, além de promover a integração e a valorização dos povos e da cultura do continente.

Em 2012, a Latinoware contará com palestras, mesas-redondas e workshops sobre temas ligados às tecnologias da informação e da comunicação, baseadas nos mais diversos sistemas de código aberto desenvolvidos no continente.

17 a 19 de outubro de 2012Parque Tecnológico Itaipu

Foz do Iguaçu | Paraná | Brasil

Você é livrepara participar.

Venha para a

PROPAGANDA_LATINOWARE_2012.indd 1 11/06/12 17:16

Page 14: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net14

CAPA

‘‘‘‘

PHP 5.3: por que não usá-lo???

Agora que a versão está mais estável e muito mais evoluída com relação a versão 5.2, fomos saber porque muitos progra-madores e empresas não adotaram o PHP 5.3 e a resposta não é muito animadora.

Parece que foi ontem, mas já fazem 16 anos que o PHP surgiu como lingua-gem de programação para uso na internet e junto dele vieram varias inova-ções, que pra época eram muito significativas. Pode-se dizer que o PHP ditou a nova regra do desenvolvimento de Website, tornando simples tarefas que antes eram extremamente complexas. Durante todos esses anos a própria lin-guagem sofreu alterações necessárias pra manter sua hegemonia. Só pra se ter uma ideia, no site Tiobe (www.tiobe.com), que lista as linguagens mais pro-curadas na internet, o PHP figura sempre no top 5, sendo a única linguagem exclusivamente voltada pro desenvolvimento de Website. Este dado mostra o peso que a linguagem tem no desenvolvimento de Website e aplicações web.

Apesar deste uso massivo, o PHP passou por poucas evoluções significa-tivas ao longo dos anos. A versão 5.2 não trouxe quase nenhuma alteração relevante em relação à versão 4. Os programadores queriam mais e este algo a mais veio na versão 5.3, que trouxe melhorias ainda mais significativas para a linguagem, como a melhora na forma de utilização das classes, com o uso de namespaces que já era utilizado em outras linguagens de programação e a criação de um pacote para publicação de sites de forma mais simples. Outras alterações, porém, vieram para dar maior credibilidade, como podemos ci-tar a tão esperada retirada do parâmetro register_globals, a retirada de várias funções que não faziam mais sentido e a restrição do uso das funções mysql quando este tiver a sua versão superior à versão 5.

PHAR

Uma das maiores novidades do PHP 5.3 foi a introdução do PHAR. O PHAR está para o PHP assim como o Jar está pro Java. Através dele é possível fazer distribuições de aplicações por um único arquivo compactado. Pode até parecer sem sentido a utilização dele, mas só em se pensar na economia de espaço que a sua aplicação terá, associado a garantia de que seu código não será facilmente violado, pois somente o programador que conhece e sabe usar o PHAR conseguirá ver o código fonte, já é um bom motivo para usa-lo. Mas cuidado, o PHAR não é um artifício para bloquear o seu código de cópias, ele apenas faz a compactação dois arquivos para quer sejam facilmente distribu-ídos.

Listagem 1

No arquivo php.ini

phar.readonly = 0phar.extract_list = archive=/path/to/archive/ \ ,arch2=/full/path/to/arch2phar.cache_list = /path/to/phar1.phar: \ /path/to/phar2.phar

Listagem 1

No arquivo php.ini

<?php// Instanciando o phar$p = new Phar(‘project/app.phar’, 0, ‘app.phar’);$p->startBuffering();

//adicionando arquivo$p->addFile(“/project/userBlog.php”);$p->setStub( $p->createDefaultStub(‘userBlog.php’));

$p->stopBuffering();

o PHAR não é um artifício para boquear o seu código de cópias

Page 15: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net 15

A instalação do PHAR é muito simples. Apesar dele já vir nativamente com o PHP, é necessário ativa-lo vida arquivo de configuração, como mostra a Lis-tagem 1. Além disso, é preciso ter instalado no servidor o zlib ou bzip2.

O seu uso é tão simples quanto a sua instalação, como mostra a Listagem 2.

Namespaces

Outra grande novidade do PHP foi a introdução de Namespaces dentro do código. Outras linguagens orientadas a objeto ja possuíam esta funcionalida-de, mas o PHP só passou a suportar nesta versão. O advento do Namespaces trouxe para a linguagem um crescimento considerável, tanto na organização do código quanto na reutilização deles. Pode-se ter, por exemplo, duas classes que façam basicamente a mesma coisa, porém, de acordo com a sua necessi-dade de código, você pode usar as classes dentro de um Namespace ou outro. Por exemplo, suponha que você tenha, dentro do sei código, um grupo de exceções que são usadas em de todo o programa, mas em uma parte específica do seu programa você precisa usar um tratamento diferente destas exceções, como, por exemplo, gravar log do erro. Você pode apenas criar um Namespa-ce diferente que contenha classes com o mesmo nome, porém com tratamento diferente e determinar qual exceção usar de acordo com o Namespace que você referenciar no seu código.

Para quem usa frameworks comerciais já pode imaginar as vantagens de usar Namespaces. Podemos ter modelos e controles com mesmo nome, po-rém em contextos diferentes. O Zend Framework em sua versão 2.0 conseguiu reduzir o tamanho do seu código somente com o uso de Namespaces, como pode ser comparado na Listagem 3.

Para quem quer começar a usar, tem que ter alguns cuidados iniciais e por set uma novidade na linguagem , o site do php possui um tutorial completo mostrando como usar namespaces, todas as regras para utilização eo que pode ou não fazer com eles.

Mysqli

Outra grande mudança do código foi com relação ao maior banco de dados em uso junto com o PHP. O uso do MySQL agora está intimamente ligado à

Saiba quem é quem no PHP

Rasmus LerdorfFoi ele quem iniciou tudo isso. Em 1995 Lerdorf criou o que foi chamado de Php/Fi, primeira versão do Php. Futuramente passou a co-fundador das vesões posteriores.O Php/Fi era um pequeno projeto para que Lerdorf pudesse colher estatísticas de seu blog. Posteriormente, ele viu que a linguagem podia ter um grande potencial e resolveu abrir o seu código. Posteriormente outros programadores fizeram parte do projeto.Atualmente Lerdorf, além de colaborador do Php, trabalha na Yahoo! como Arquiteto de Infra-estrutura.

Andi GutmansGutmans é um programador israelense, um dos principais responsáveis pelo desenvolvimento do Php e co-fundador da Zend Technologies. Juntamente com Zeev Suraski reformularam a linguagem Php e chegaram a versão 3.0. Esta ver-são é a mais próxima com o que temos atualmente no Php.Também foi um dos idealizadores do motor Zend Engine, que é a base do Php.

Listagem 3

Com ZF 1.11

<?php class Application_Model_Guestbook { ….. $a = new Application_Model_Book(); ....

Com ZF 2

<?php Namespace Application\Model;

Class Guestbook { …. $a = new Book(); ....

Enquanto estavamos fechando esta edição, os desenvolvedores do CakePHP informaram que estão iniciando o desenvolvimento do CakePHP 3.0 totalmen-te baseado no PHP 5.4.

Page 16: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net16

‘‘De todos os projetosem PHP, apenas o Symfony2, ZF2 e Doctrine2 estão usando o PHP 5.3

versão instalada. Para versos anteriores ao Mysql5, pode-se continuar usan-do a função mysql_connect e todas as suas derivadas, mas se a versão do banco de dados for superior, então somente a classe Mysqli poderá ser usada. Com isto força-se o programador usar todas as melhorias e funcionalidades advindas com a versão do MySQL. Se você tem um programa desenvolvido para MySQL 4, tenha certeza que ele não irá rodar na versão 5, a não ser que você reescreva todo o seu código.

Você também pode fazer suas conexões de dados usando o PDO. Este conector de dados foi escrito já pensando nas melhorias do PHP 5.3 e não sofreu com as alterações.

Como está o uso do PHP 5.3?

Queríamos muito que a resposta fosse positiva, mas a realidade é bem di-ferente. Imagináva-se que os principais programas e grupos adotassem o PHP 5.3, mas o que se tem observado é que eles passaram a tornar o seu código compatível com o PHP 5.3. Foi o que aconteceu, por exemplo, com grandes frameworks e CMSs como o CakePHP, CodeIgniter, Jomla, Wordpress e ou-tros. Apenas poucos projetos usam na totalidade o PHP 5.3. Nesta lista estão apenas o Symfony2, ZF2, Doctrine2 e alguns poucos projetos sem muita ex-pressão. Este retardo em migrar completamente o códito também está no fato de que poucos serviços de hospedagem possuem suporte ao PHP 5.3, como poderá ser visto mãis adiante nesta edição.

Conclusão

O PHP já chegou na sua versão 5.4 sem que tenha ocorrido uma adesão total ao PHP 5.3. Este quadro só irá mudar quando os programadores come-çarem a pressionar empresas e serviços de hospedagem a adotarem a versão 5.3. Se você ainda não usa, então vale a pena começar a se familiarizar com o código e ficar na vanguarda da programação. ?>

‘‘

Zeev SuraskiJuntamente com Andi Gutmans, idealizou o que veio a ser o Php 3, base da versão que temos atualmente, e co-fundador da Zend Technologies.Em 1999 ele ajudou a escrever o novo motor da linguagem Php, o Zend Engine.Ainda em 1999 foi nomeado para a FSF Award for the Advancement of Free Software. Além disso, é membro da Apache Software Foundation e CTO da Zend Technologies.

Stig BakenEm janeiro de 2000, após uma reunião da Php--RDP, Baken iniciou o desenvolvimento de um canal para funcionar de repositório para aplicações e classes em Php e C, o Pear. Hoje em dia o Pear é um dos principais canais de distribuição de aplicações Php.Atualmente Stig Baken é Cto da Zedge Europa Co. e já foi engenheiro de Software da Google.

Lista de aplicações que usam PHP 5.3

Symfony 2www.symfony.com

Zend Framework 2framework.zend.com

Doctrinedoctrine-project.com

CakePHP 3.0www.symfony.com

Page 17: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net 17

Page 18: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net18

Sebastian BergmannSebastian é co-fundador da the Php Consult Company, sendo pioneiro na área de qualidade de aplicações em Php. Além disso Sebastian também é o criador do PhpUnit.Para aqueles que não conhecem, o PhpUnit é uma interface de testes escrita em Php para testar aplicações completas usando o princípio do TDD. Atualmente Bergman busca vistar vários países para divulgar a cultura da qualidade de testes, dentre eles o Brasil, onde esteve presente no PhpConference de 2009 como Keynote, apresentando o PhpUnit.

Andrei ZmievskiÉ um dos desenvolvedores do Core do Php onde foi responsável pelo desenvolvimento de várias features, como melhorias no código do Zend Engine e no desenvolvimento do suporte a Unicode do Php.Sempre interessado por aplicações desktop, Zmievski idealizou o Php-Gtk, um framework de desenvolvimento de aplicações desktop usando Php. “Após testemunhar as implementações do PyGtk e GTK-Perl, eu decidi ver se o PHP poderia ter uma interface Gtk+”

Como andam os servidores de hospedagem?Como andam os servidores de hospedagem?Fomos saber como está a cobertura do PHP em algumas empresas de hospedagem de sites, e o resultado não foi nada animador...

Lançado em setembro de 2009, a versão 5.3 do PHP trouxe muitas mudan-ças no tratamento da linguagem, apesar disso, esta versão ainda não é uma unanimidade entre os programadores, tanto novatos quanto experientes, e as empresas que prestam serviço de hospedagem de websites. A justificativa mais comun dada pelos programadores é que o motivo de não migrar para a nova versão do PHP estão nos serviços de hospedagem que não dão suporte ao PHP 5.3, ainda assim as que dão suporte nem sempre atendem a todas as necessidades do programador, como plug-ins pré instalados, configurações necessárias, etc. Então fomos ver com estas empresas como estão os serviços de hospedagem PHP, tanto dedicada quanto compartilhada, no Brasil.

O cenário da hospedagem de websites não é muito animador, das cinco empresas pesquisadas1 apenas duas possuem suporte ao PHP 5.3 em seus ser-viços de hospedagem compartilhada. Das empresas que não possuem suporte, algumas nem tem previsão de quando irão disponibilizar o PHP 5.3 para seus clientes. Apesar disso, quem anda na vanguarda da hospedagem tem muito a comemorar. Uma destas empresas é a RedeHost que além de possuir suporte ao PHP 5.2 e 5.3 já está preparando os seus servidores para suportar também o PHP 5.4. “Passamos a usar o PHP 5.3 para estarmos alinhados com as princi-pais tecnologias de desenvolvimento da comunidade PHP”, disse Érico Rocha, gerente de relacionamentos da RedeHost. Ainda segundo ele “Ainda não pre-valece o PHP 5.3 pela demora em maturar as novas funções e sintaxes, já que sistemas antigos tendem a permanecer na versão anterior, porém o aumento do PHP 5.3 é notável e vai continuar ocorrendo mesmo após o breve lançamento da versão 5.4”. Só para se ter uma idéia, em janeiro de 2012, eram 8879 sites 1. Até o final desta edição apenas 5 empresas retornaram o nosso contato das mais de 20 pesquisadas. Mostrando o descaso por parte destas empresas.

‘‘Passamos a usar o PHP 5.3 para estar-mos alinhados com as principais tecnologias de desenvolvimento da comunidade PHP

Érico Rocha - RedeHost ‘‘

Page 19: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net 19

CAPA

utilizando PHP 5.3 contra mais de 24800 sites usando PHP 5.2. Neste serviço de hospedagem o usuário pode selecionar a versão do PHP que deseja através do painel de controle da sua conta de hospedagem. Assim, toda a aplicação poderá usar a versão 5.3 ou 5.2 do PHP de uma forma muito simples, sem que o cliente precise alterar configurações a nível de script.

Outra empresa que está nesta vanguarda é a HostGator que também possui suporte ao PHP 5.3. Todas as contas de hospedagem compartilhada tem suporte nativo ao PHP 5.2, porém, se o cliente desejar pode mudar a versão do compilador. A versão a ser utilizada pode ser definida pelo cliente através do arquivo .htaccess da própria aplicação ou website, deixando a escolha para o programador, que fica livre para usar a versão que mais lhe convém. Este formato é muito bom para quem precisa manter uma versão le-gado de algum sistema e desenvolver novas aplicações usando PHP 5.3. Como o apache procura o arquivo .htaccess retroativamente entre os diretórios (isto é, o diretório mais baixo é analisado primeiro para só depois processar um diterório mais global), um website pode ter arquivos em PHP 5.2 e 5.2 ao mesmo tempo em diretórios distintos. Na HostGator, para utilizar a versão 5.3 basta acrescentar no seu arquivo .htaccess:

AddType application/x-httpd-php53 .phpApesar destes exemplos de evolução e contemporaneidade na hospedagem,

algumas empresas insistem em manter a versão anterior do PHP, como é o caso da UOLHost. Perguntada sobre a possibilidade de migrar a versão do PHP, a empresa, através de nota, informou que “não está em nossos planos a in-clusão do suporte ao PHP 5.3 nos planos de hospedagem compartilhada”. Ape-sar disso, quem optar pelo serviço de servidor dedicado da UOLHost pode instalar manualmente a versão 5.3 do PHP (a única versão suportada é a 5.2).

Pode até parecer desleixo das empresas de hospedagem, mas algumas têm dado como justificativa a grande quantidade de sites que estão hospedados em seus servidores que ainda estão usando a versão 5.2, e como existem muitos casos de incompatibilidade desta versão com a mais recente, elas ficam receo-sas na alteração. Para Carlos Zamora, Gerente de Negócios da Hostdime, “na plataforma compartilhada temos o receio por parte dos consumidores para o não funcionamento de suas aplicações. Nas demais plataformas (VPS e serviço dedicado) onde já temos o uso do PHP 5.3, a atualização está sendo muito bem--vista”. Com atuação em oito países, a HostDime possui em seu portfólio mais de 2 milhões de sites hospedados em todo o mundo e uma mudança de versão, ainda segundo Carlos, poderia acarretar em uma paralização de mais de 80% dos websites hospeados. “Infelizmente ainda não é possível atualizarmos para a versão mais recente devido a incompatibilidade que poderá gerar nos sites/sistemas dos nossos clientes que não foram reformulados para essa nova versão. Principalmente CMSs em suas versões mais antigas”. Ainda assim, existe um plano para que até o final de 2012 a empresa já disponibilize planos de hos-pedagem com suporte ao PHP 5.3. Por enquanto apenas os serviços de VPS e Servidores dedicados possuem suporte a esta versão.

Como pode ser visto os serviços de hospedagem ainda estão engatinhando para a versão 5.3 do PHP, apesar de algumas empresas já possuírem suporte a esta versão. Infelizmente, se não pressionarmos as empresas de hospedagem para atualização da versão dos servidores, cada vez mais teremos que utili-zar códigos antigos para manter os sistemas. Além disso, parte da culpa desta

Page 20: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net20

CAPA

demora na migração está nos frameworks, CMSs, etc. que mantém códigos ainda incompatíveis com a versão 5.3, ou quando é compatível o faz apenas por meio de pequenas alterações no código e não pela completa utilização do PHP 5.3 ?>

CaracterísticasHostdime

hostdime.com.brHostgator

hostgator.com.brRedeHost

redehost.com.brUnder

under.com.brUOLHost

uolhost.com.br

Total de Websites hospedados 2.000.000 - 50.000 - -Possui planos PHP 5.3 O P P O O

Quando pretende disponibilizar dez/2012 - - - não tem previsão

Como habilitar o PHP 5.3 -

O PHP 5.3 pode ser habi-litado através

do arquivo .htaccess

O PHP 5.3 é habilitado através de painel

de controle

- -

Plano mais básico

Espaço IlimitadoTráfego IlimitadoAté 5 domímios

R$ 19,90 mensal

Espaço IlimitadoTráfego Ilimitado1 domínio apenas

Crédito Google AdWords

R$ 14,99* mensal

15GB de espaço50GB de tráfego

15 e-mails1 domínio apenas

1 base Mysql1 subdomínio

R$ 19,90 mensal

100GB de espaçoTráfego Ilimitado

3 DomíniosCrédito para 2000 e-mail Marketing

25 e-mails

R$ 19,90 mensal

Plano mais completo

Espaço IlimitadoTráfego IlimitadoAté 20 domímios

Datacenter localizado em

São Paulo

R$ 89,90 mensal

Espaço IlimitadoTráfego Ilimitado1 domínio apenas

Crédito Google AdWords

Certificado SSL1 IP Dedicado

R$ 34,99* mensal

100GB de espaço300GB de tráfego1 domínio apenas

30 bases MysqlSuporte ao java

R$ 69,90 mensal

80GB de espaçoTráfego Ilimitado

10 DomíniosCrédito para e-

-mail MarketingServidor cloud dedicado com

garantia de pro-cessamento150 e-mails

R$ 350,00 mensal

Com andam os servidores?

A busca por um serviço de qualidade nem sempre é uma tarefa fácil, principalmente em se tratando de hos-pedagem compartilhada. Como complemento desta ma-téria, testamos os serviços de hospedagem das empresas entrevistadas e o resultado é até satisfatório. Para quem apresenta suporte ao PHP 5.3 não deixa a desejar, com acesso a todas as funcionalidades disponíveis nesta ver-são. Mesmo aqueles que oferecem somente o PHP 5.2 não ficam para traz.

Nos planos mais básicos, a nossa escolha ficou com a HostDime. Apesa de não oferecer o PHP 5.3, o conjunto da obra é satisfatório para quem precisa de um serviço de hospedagem para seu blog ou site pessoa. Quem tam-

bém oferece um serviço bom é a UOLHost, que apesar de oferecer o git e acesso ssh a empresa peca no suporte aos usuários com informações não muito claras e falta de conhecimento dos atendentes.

Para quem precisa de servidor parrudo, escolhemos o serviço top da under. Apesar do serviço funcionar em um ambiente cloud, ainda é um serviço de hospedagem compartilhada. Os sites respondem rapidamente e o cliente tem total controle do servidor. Até para quem não quer ter este trabalho, a empresa conta com uma equipe de suporte muito diversificada e todos mostraram co-nhecer bem do que estavam fazendo.

Agora é comparar e escolher.

* Es

te p

lano

só p

ode

ser p

ago

em p

arce

las t

rimes

trais

.

1995

Page 21: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net 21

CAPA

Breve história do PHP

Você sabe como iniciou o PHP ou como ele chegou até a versão 5.3?Descubra agora qual o trajeto do PHP desde a sua concepção até os dias atuais.

Curiosidades do PHP

• NosprimeirosanosdoPHP,asversõescorretivaseramdesignadasporletras,comissoexistiramversõe1.1a,1.1b,etc.• Aempresaqueestáportraz

doPHPéaZend,quetemseunomecomoajunçãodeZeeveAndi.• Em1997,AndiGutmanse

ZeevZurovskipropuseramanovaformadetrabalharcomoPHP.ElesviramquepoderiamusaroPHPemseuprojetodee-commerceeresolveramcontribuircomodesenvolvi-mentodalinguagem.• Apartirdaversão4.0queo

PHPpassaatersuporteaclasses,aindaquedemodosimplista.• Inicialmenteadiscussão

sobreosseparadoresdonames-pacefoidiscutidopelacomuni-dade.Depoisdemuitaconversa,chegaramapoucasopções,como::.,.::,//dentreoutros.Praresolveroproblema,sentaramnamesaosprincipaisnomesdoPHP,comoZeev,Andieoutros,eresolveram,aportasfechadas,queonovoseparadorseriaumabarrainvertida(\)

1995 - Ramus Lerdo cria um script em Perl para calcular as estatísticas de seu blog. Este script ele chamou de PHP/FI.

Com a necessidade de se adi-cionar mais funcionali-dades a este script, Ramus abandona o Perl e passa a escrever os códigos em C e torna-o público.

Com o crescente uso de seu código, Ramus resolve tornar público o PHP/

FI para que mais programadores pudessem colaborar com o código.

É lançada então a versão 1.0 do PHP/FI.

1997 - Depois de 11 versões beta, é lançada a versão 2.0 do PHP/FI.

Este código passa a ter grandes me-lhorias em relação à versão anterior.

Com a versão 3.0, o PHP passa a suportar conexão com vários bancos de dados, além de disponibilidade de utilização de APIs externas. Este foi o estopim para o aumento de populari-

dade do PHP.

Em menos de um ano, o PHP ganha uma repaginada e entra na versão 3.0. Esta versão, já sem o termo FI, possui o código mais próximo

do que nós conhecemos atualmente.

1999 - Uma nova engi-ne foi desenvolvida por

Zeev, Andi e Ramus. A esta engine foi dado o nome de Zend em

homenagem aos seus idealizadores:Zeev e Andi.

2000 - Monte Ohrt inicia o projeto do Smart com o intuito

de ser um template engine dentro do PHP. Apesar de sua popularidade, o Smarty nunca foi uma unanimidade dentro da

comunidade PHP.

2001 - Andrei Zmievski inicia o projeto PHP-GTK, que é uma interface para aplicações locais

em PHP.

2004 - Após um longo período de atualizações, é lançada a versão 5.0

do PHP, que passa a usar o Zend Engine 2. Esta

nova versão chega a ser 99,9% OOP.

2009 - Lançada a versão 5.3 do PHP com várias novidades, dentre elaso tão aguardado uso de namespaces nas classes.

2012 - Lançada versão 5.4 do PHP com grandes melhorias em relação a versão anterior. Como

principal novidade está o uso do PHP em ambiente de desenv sem a necessi-dade de instalação de um

servidor local.

1995 1997 2000 200220011998 2004 2005 2006 2007 2008 2009 2010 2011 2012

1.0

2.0

3.0

4.0

4.1

4.2

4.3

4.4

4.4.

19

5.0

5.1

5.2

5.2.

16

5.3

5.4

5.3.

16, 5

.4.6

Versões do PHP ao longo dos anos:

Page 22: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net22

Projetos Brasucas

Brazilian Friends of Symfony ( BSOF )Projeto busca apresentar soluções eficazes para serem utilizadas em projetos que usam Symfony2.

O Symfony2 já está disponível desde julho de 2011 e muitos programa-dores já começaram a migrar do Symfony antigo para o Symfony2, porém nem todos o fizeram. Alguns programadores não migraram por causa da não compatibilidade das duas versões, outros por não achar códigos de qualidade para substituir plug-ins já consolidados na primeira versão do Symfony. Ten-tando mudar isso, a DuoCriativa deu início ao Brazilian Friends of Symfony (BFoS), projeto baseado no Friends Of Symfony (FoS).

A finalidade do BFoS é “a criação de bundles de alta qualidade para Symfony2”. Ainda segundo Paulo Ribeiro da DuoCriativa, “O foco principal são bundles que tipicamente só são úteis para os brasileiros (integração com gateways de pagto, etc) e, em um segundo momento, bundles internacionais, de interesse geral, mas liderado por brasileiros.”

Atualmente existem seis projetos disponíveis no repositório oficial e a ideia é que a quantidade de projetos cresça cada vez mais. Há ainda a idealização de mais dois projetos: um para integração com boleto bancário e outro pra inte-gração da Nota Fiscal Eletrônica – Nfe. Para ajudar com projetos já existentes é só fazer um fork do projeto no github, realizar as alterações necessárias e submeter o código para a análise e posterior publicação. Para quem já tem projetos criados é legal manter os códigos de Bundles do Symfony em um único agregador de repositórios. Você pode entrar em contato com o Paulo Ribeiro (https://github.com/ribeiropaulor) para maiores esclarecimentos ?>

BFOSBrasilBundle http://migre.me/amZYS

Foi o primeiro bundle público que criamos possui form types para inserção e validação de CPF/CNPJ, Telefone (padrão brasileiro), DDD, e, talvez o mais útil deles, o de entrada de Estado/Cidade sendo atua-lizado por Ajax. Já tem fixtures com todas as cidades do Brasil.

BFOSSettingsManagementBundle http://migre.me/an02v

A intenção desse bundle é fornecer uma maneira fácil de se integrar um gerenciamento de configurações ao aplicativo SF2. Tipicamente isso é necessário para que o administrador possa configurar contas de gateway de pagamento, e-mails enviados pelo sistema, etc. Atual-mente está em fase de desenvolvimento. Dentro de algu-mas semanas teremos uma primeira versão funcional.

Projetos do BFoS

Projeto hospedado no Githubhttp://migre.me/apLZI

Framework utilizadohttp://symfony.com

Versão do PHP5.3.0 ou superior

‘‘Passamos a usar o PHP 5.3 para estar-mos alinhados com as principais tecnologias de desenvolvimento da comunidade PHP

Érico Rocha - RedeHost ‘‘

Page 23: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net 23

Projetos Brasucas

BFOSSyncContentBundlehttp://migre.me/an05o

Este bundle facilita a instalação do aplicativo. Ele uti-liza o mesmo esquema, baseado no rsync, que o SF1 utilizava com o comando php symfony project:deploy para fazer a instalação dos arquivos no servidor re-moto (produção e staging). Além disso, ele possibi-lita sincronizar (ida e volta) o conteúdo (arquivos de uploads e banco de dados) com seus ambientes remo-tos. Isso é muito útil para testar o sistema que está em produção (você baixa para sua máquia o conteúdo da produção e testa para encontrar problemas ou fazer melhorias). Durante o desenvolvimento, pode ser uti-lizado durante a intensa modificação da estrutura de dados e dos dados, possibilitando jogar todo o con-teúdo de sua máquina de desenvolvimento para seu ambiente de staging. Esta parte é inspirada no Apos-trophe CMS, sua implementação é igual de lá.

BFOSPagseguroBundlehttp://migre.me/an08i

Sua proposta é ser uma maneira mais fácil possível para se integrar o Pagseguro a um aplicativo, mas ainda pro-ver as funcionalidades que um aplicativo profissional exige como persistência das transações e tracking do status do pagamento. A intenção é que o BFOSPagamentoDigitalBundle e o BFOSPagseguroBundle evoluam para um interface co-mum que possibilite criar outros meios de pagamentos sejam implementados e adicionados a um aplicativo sem a necessidade de alterar ou exaustivamente testar o sistema novamente por conta do novo meio de paga-mento.

BFOSPagamentoDigitalBundlehttp://migre.me/an09L

Sua proposta é ser uma maneira mais fácil possível para se integrar o Pagamento Digital a um aplicativo, mas ainda prover as funcionalidades que um aplica-tivo profissional exige como persistência das transa-ções e tracking do status do pagamento.

BFOSTwigExtensionsBundlehttp://migre.me/an0az

Este agrega todas as funcionalidades (form types, va-lidadors e funções de template) que não encontramos no Twig padrão e que é útil nos projetos. O widgtet FCBKComplete, por exemplo, permite que apenas defi-nindo o form type como bfos_fcbkcomplete você tenha um choice no estilo do Facebook. Além disso, há o date picker e date time picker.

Sua empresa pode ocupar este espaço...

Anuncie na PHPReview e fale diretamente com mais de 50.000 programadores em todo o Brasil.

www.phpreview.net - [email protected]

Page 24: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net24

Artigo

O inferno das dependênciasExiste uma solução simples para manter as dependências do site atu-alizadas.

Um dos problemas com que me deparo constantemente nos projetos que estou envolvido é como gerir as dependências. É muito difícil garantir que todos os programadores estão a usar a mesma versão de uma biblioteca.

Muitas vezes eles instalam a ultima versão e programam de acordo com as especificações dessa versão, quando o sistema vai para produção deparam-se com a triste realidade, a biblioteca não está disponível na ultima versão, os ad-ministradores de sistemas não a podem instalar porque quebra a compatibili-dade com outras aplicações instaladas e a nossa não funciona porque depende dessa versão específica.

É neste contexto que surge o composer. O seu conceito é muito simples: definimos as dependências do projeto e a ferramenta instala-as e atualiza-as.

O composer não é um gestor de pacotes, lida com eles mas não trabalha a nível do sistema operativo, trabalha a nível local, as dependências são instala-das apenas num determinado projeto/aplicação. Esta é a principal diferença em relação ao PEAR, que instala uma biblioteca a nível geral, ficando esta disponível para todos os projetos.

Este conceito não é novo, o nodejs, ruby e python, entre outros, têem ferra-mentas semelhantes, mas ainda faltava no PHP. A vantagem de ter dependên-cias locais é que no mesmo servidor podemos ter aplicações a usarem versões diferentes da mesma biblioteca, coisa que é muito difícil em sistemas que ge-rem as dependências de forma global.

Instalar e executar o composer

Na maior parte dos casos o composer vai ser instalado localmente, utilizan-do o comando de shel:

curl -s http://getcomposer.org/installer | php

Este comando realiza uns testes à instalação do php e depois instala o com-poser na pasta atual. Para instalar o composer globalmente basta copia-lo para uma pasta na path do sistema, no entanto não aconselho a sua instalação de forma global, pois a sua atualização terá de ser realizada por um utilizador com permissões de administração.

Para executar o composer basta rodar o código da Listagem 1a. O ficheiro composer.json é lido e as dependências são instaladas.

Convém referir que após a primeira execução um novo ficheiro e criado, o composer.lock, este ficheiro lista as bibliotecas e versões instaladas, este fichei-ro e depois lido quando queremos atualizar as bibliotecas.

O comando para atualizar está na Listagem 2b.

Listagem 1

a)$ php composer.phar install

b)php composer.phar update

Listagem 2{ “require”: { “twig/twig” : “1.*” }}

‘‘É muito difícil garan-tir que todos os pro-gramadores estão a usar a mesma versão de uma biblioteca ‘‘

por Nuno Franco da Costa <[email protected]>

Page 25: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net 25

Definir dependências

Vamos assumir que estamos a trabalhar num projeto que depende do ges-tor de templates Twig. A única coisa que temos de fazer é editar o ficheiro composer.json e adicionar a dependência. A Listagem 2 apresenta um exem-plo da implementação. Com isto acabamos de dizer ao composer para instalar a revisão mais recente da versão 1 do Twig.

Autoloading

Instalar as dependências é o primeiro passo, mas também é necessário que a nossa aplicação seja capaz de encontrar e carregar as bibliotecas instaladas. O composer trata disso por nós e suporta qualquer biblioteca que adira ao standard PSR-0.

Apenas será necessário incluir o ficheiro vendor/autoload.php:

require ‘vendor/autoload.php’;

Packagist

O packagist é um repositório online para bibliotecas php. Em packagist.org podemos ver a enorme lista de bibliotecas suportadas pelo composer. Vão a http://packagist.org e confiram.

Bibliotecas privadas

Isto funciona bem para novos projetos mas para projetos antigos, em que as bibliotecas não foram preparadas para o composer, também é possível usá--lo bastando para isso dar informação sobre as nossas bibliotecas. Ou seja, é possível gerir as dependências mesmo quando as bibliotecas não suportam o composer ou quando são bibliotecas privadas que não queremos ter no pa-ckagist.

Vamos então editar o ficheiro composer.json e definir a nossa biblioteca XPTO (Listagem 3).

A construção repositories permite-nos adicionar vários repositórios/bi-bliotecas ao composer. Neste caso estamos a definir a biblioteca XPTO na versão 0.0.1

A source desta biblioteca é do tipo svn, a propriedade url refere-se à raiz do repositório e a propriedade reference é o branch a usar, neste caso o trunk.

Vamos então ver um exemplo completo que inclui o twig e a nossa biblio-teca XPTO (Listagem 4).

Conclusão

Espero que este artigo vos ajude a começar a limpar e a gerir as dependên-cias dos vossos projetos, de uma forma simples e sustentável.

Se tiverem duvidas podem sempre entrar em contacto comigo. ?>

Artigo

Listagem 3“repositories”: [ { “type”: “package”, “package”: { “name”: “XPTO”, “version”: “0.0.1”, “source”: { “url”: “http://svn.foo.com/”, “type”: “svn”, “reference”: “trunk” } } }

Listagem 4{“repositories”: [ { “type”: “package”, “package”: { “name”: “xpto”, “version”: “0.0.1”, “source”: { “url”: “http://svn.foo.com/”, “type”: “svn”, “reference”: “trunk” } } }], “require”: { “twig/twig” : “1.*”, “xpto”: “*” }}

‘‘‘‘

O packagist é um repositório online para bibliotecas php

Português a viver na Holanda com cerca de 20 anos de experiência, já geriu web sites com 60 milhões de pageview diárias. Atualmente atua como diretor técnico na Vemt, onde gere o desenvolvimento e administração de sistemas dos produtos de lealdade da empresa.Em seu tempo livre contribui para alguns projetos opensource como o phing, phMagick ou jasper-reports-php.

Page 26: Simples assim pág 6 Projetos Brasucas pág 22 O inferno das ... · PHPReview nas redes sociais @phpreview ... Existe algumas regrinhas básicas para uma boa otimização do seu có-

Revista PHP Review | 5ª edição | setembro-outubro/2012 | www.phpreview.net26