ed004 php review

Upload: alsantosss

Post on 14-Oct-2015

38 views

Category:

Documents


0 download

TRANSCRIPT

  • ano 2 | edio 4novembro-dezembro/2011

  • PHPReview | 4 edio | novembro-dezembro/2011 | www.phpreview.net 2

    Editorial

    Mais uma edio da PHP Review

    Salve, salve amigos! Depois de muita luta para manter a revista de p, conseguimos chegar a mais uma edio da PHP Review. Foram oito meses desde a ltima edio, quando o previsto era para ser apenas um. Infeliz-mente, ainda temos que contar com o apoio e a colaborao de voluntrios. No entanto, isso vai mudar a partir desta edio. Mas, vamos ao que inte-ressa... . Nesta edio, vamos falar da programao utilizando Frameworks em PHP. Para voc que est cansado de programar na unha este o mo-mento de mudar radicalmente a sua forma de trabalhar. Voc vai ver que a utilizao de MVC facilita muito o desenvolvimento de sistemas e de sites, tanto na questo de organizao de cdigo como no reaproveitamento do que foi programado. Por isso, Elton Minetto faz um apanhado geral de como utilizar um framework; as [muitas] vantagens e [algumas] desvantagens de utilizar cada um deles. Tambm seremos mergulhados neste mundo de vez com a apresentao de quatro grandes frameworks: CakePHP, Zend Framework, CodeIgniter e Kohana. Voc no somente aprender a utilizar um framework como tambm aprender a instalar alguns deles. Alm disso, temos tambm as nossas colunas de testes, o #papo-deprogramador e a volta da coluna Simples assim, alm das estrias dos quadros Mo na massa e Vida de programador. Esta edio marca ainda o incio das parcerias [que acreditamos serem duradouras] com a Digital 3i e a Hypersites. A Digital 3i vai ser a responsvel pela reforma grfica da revista e de nosso website, e a Hyper-sites vai ficar responsvel pela programao do site. Alm disso, passamos a contar com a colaborao do jornalista Leonardo Valente. A PHP Review vai tambm intensificar sua estratgia de publicidade, com a criao de ban-ners para a divulgao em sites e blogs. Esperamos que gostem desta edio, aproveitem bastante seu con-tedo e lembre-se: seu feedback muito importante para a nossa revista. At a prxima!

    Equipe PHP Review.

    Expediente

    Editor-chefe:Andr Luiz [email protected]

    Editorao:Digital [email protected]

    Contedo:Alexandre Taz [email protected]

    Editorial:Andr Luiz [email protected]

    Jornalista:Leonardo [email protected]

    Capa:Joo [email protected]

    Colaboradores:Ademir Cristiano GabardoAlexandre Taz AndradeCauan CabralElton Lus MinettoRafael DohmsRoberto S. Lima

    Anncios:Equipe PHP [email protected]

    Todas as informaes e dados tcnicos que constam nos artigos e demais contedos editoriais tm exclusivo objetivo informativo. A revista no se responsabiliza por aplicaes ou usos incor-retos de qualquer uma dessas informaes.

  • PHPReview | 4 edio | novembro-dezembro/2011 | www.phpreview.net 3

    Nesta Edio

    CAPA

    FrameworksFizemos um passeio pelos principais frameworks em PHP para que voc conhea melhor cada um deles

    10

    CakePHPAprenda a instalar e configurar de forma muito fcil

    16

    Web Enterprise com Zend Framework possvel construir uma aplicao robusta usando ZF?

    20

    KohanaVoc tambm deveria us-lo

    23

    COLUNAS

    Mas porque quero escrever testes? 6

    Muito alm do cdigo 8No seja escravo do Framework 9

    ACONTECE

    Geral

    PHP

    ARTIGOS

    Autenticao de usurio com Code Igniter 26

    Frameworks

    Enviando E-mail com PHP Mailer e Smarty 28

    Agenda 5

    Jquery 1.6.3 disponvelPostgreSQL 9.1 RC1

    44

    Acordo garante periodicidade da revista 4

    Verso 5.3.8 j est disponvelCakePHP mais perto da verso 2.0

    55

    Core do PHP usar GIT 5

    Lanamento do Symfony 2.0 5

    MO NA MASSA

  • Acontece

    Jquery 1.6.3 disponvel

    Foi lanado no ltimo dia 01/09 a nova verso do Jquery onde foram corrigidos muitos bugs, prin-cipalmente relacionados a ataques XSS, que eram executados quando uma chamada $() no conti-nha nenhum parmetro. Tambm foram realizadas melhorias no tratamento de atributos HTML 5.Para a correo do bug, necessrio alterar o arqui-vo no servidor, inclusive o nome do mesmo.Baixe agora mesmo a nova verso do Jquery na verso mnima (http://bit.ly/oN5evq) ou na verso completa (http://bit.ly/riF2mg).

    4 PostgreSQL 9.1 RC1

    Foi disponibilizado no ltimo dia 22/08 a primeira verso Pr-Release do PostgreSQL 9.1.O Postgre um poderoso e completo Banco de dados gratuito. Dentre as principais funcionalidades, esto suporte a trigger, Stored Procedure, View. Os dados, divididos em tablespaces, apresentam alto grau de segurana e garantia de performance.Para baixar a nova verso do SGDB PostegreSQL, acesse (http://www.postgresql.org/download/).

    4

    Nova parceria garante periodicidade da PHP Review

    Uma parceria firmada no ms de agosto vai garantir a nossa periodicidade. O acrodo foi firmado com a Digital 3i, empresa do ramo de editorao on-line, que passa a administrar graficamente a revista. Com isso, ns da PHP Review continuamos a fazer toda a adminstrao do contedo tcnico da revista, garantindo assim a manuteno de nossa qualidade. Faz parte do acordo, a reestruturao da diagramao da revista, a reformulao do design do nosso site, a retipagem da logomarca, mas este no o maior ganho que teremos. A Digital 3i atua forte-mente na publicao online de revistas. Ns ganharemos, pois desta foram a PHP Review passa a ter um leitor on-line de contedo, que pode ser acessvel por qualquer smartphone android, alm de tablets, IPhone e IPad.Algumas alteraes j podero ser vistas nesta 4 edio, outras, porm, s surgiro nas prximas edies.

    4

    Enquete

    Perguntamos aos nossos seguidores do Twitter: Qual o editor PHP que voc usa?Confira abaixo o resultado.

    CodeLobster

    PHP Editor

    TextMate

    Aptana 3.0

    Outros

    Dreamweaver

    Zend Studio

    Unicode

    Eclipse PDT

    Netbeans

    Entre no nosso site e responda a nossa prxima en-quete: Voc acha vlida a certificao em PHP?http://www.phpreview.net

    Voc j pode enviar seu artigo para as prximas edies. No nosso ste possvel ver a data prevista de lanamento e o tema de cada revista que ser lanada. Mais detalhes em:http://www.phpreview.net/edicoes/envio

    PHPReview | 4 edio | julho-agosto/2011 | www.phpreview.net 4

  • PHPReview | 4 edio | julho-agosto/2011 | www.phpreview.net 5

    PHP 5.3.8 disponvelFoi lanada no dia 23 de agosto a verso 5.3.8 do PHP. Desta vez, foram feitas apenas duas correes pontuais: a funo crypt (), que quando era usa-da com MD5 retornava apenas o salt da critografia, e um bug no Open SSL que gerava timeout nas req-uisies, o que foi corrigido com o retorno do cdigo da verso 5.3.6. Voc j pode baixar a nova verso no endereo (http://www.php.net/downloads.php).

    4 Core do PHP ser gerenciado no GITDepois de uma enquete realizada entre os desenvolvedores do core do PHP, a maioria decidiu trocar o gerenciamento do cdigo fonte para um servidor GIT. Esta mudana ser realizada at dezembro deste ano. Criado por Linus Torvalds para gerenciar o cdigo fonte do kernel do Linux , o GIT passou a ter adeptos rapidamente devido a sua facilidade de utilizao e armazenamento de histrico, uma vez que toda a rvore replicada em cada branch criado.Existe hoje um livro (em ingls) que introduz o usurio no mundo do GIT e distribuido gratuitamente em (http://progit.org).

    Cake lana verso 2.0Foi lanada no ltimo dia 16/10 a to aguardada verso 2.0 do framework CakePHP, que apresenta um grande pacote de melhorias em relao ltima verso estvel (1.3.11). Segundo os desenvolve-dores apenas alguns bugs foram corrigidos antes do lanamento oficial do Cake 2.0.O Core do Cake foi praticamente refeito, com melhorias que vo desde simples correes na utili-zao de rotas com refatorao de todo o sistema de testes (http://github.com/cakephp/cakephp/tree/2.0). Voc poder conhecer mais sobre o Cake nesta edio no artigo do Cau Cabral.

    4 Lanamento do Symfony 2.0 O Symfony 2.0 foi lanado em julho deste ano e che-ga cheio de novidades em relao a verso 1.4.Dentre as novidades esto: Estrutura de diretrio, que foi melhorada para utilizao mais fcil de he-ranas; criao de um sistema otimizado de auto-loadings, criao facilitada de aplicaes comuns, como websites, blogs, etc.Vale a pena conferir estas mudanas em (http://symfony.com).

    4

    Agenda PHP

    Confira os eventos e j coloque na sua agenda.

    4

    International PHP Conference9 a 12/10/2011Mainz - Alemanha

    Latinoware 201119 a 21/10/2010Usina de Itaupu - PR

    Zend PHP Conference17 a 20/10/2011Santa Clara - Califrnia

    TDC201129 e 30/10/2011Goinia - GO

    Encontro Nordeste SL28 a 30/10/2011Alagoas - SE

    PHPnRio 201105/11/2011CEFETRJ - Rio de Janeiro

    Seu evento nesta lista...

    Envie um e-mail para [email protected] informando o nome do evento, a data e o local.

    Pronto! Seu evento estar na nossa agenda na prxima edio.

    PHPConference1 a 4/12/2011UNIFIEO - Osasco - SP

    HacknRio02 e 03/12/2011UERJ - Rio de Janeiro

  • PHPReview | 4 edio | novembro-dezembro/2011 | www.phpreview.net 6

    Teste, unitrio a completo

    Mas por que quero escrever testes?/*** @nome Rafael Dohms* @email [email protected]* Rafael Dohms Engenheiro da Computao, trabalha com PHP h mais de 10 anos e participa ativamente * da comunidade PHP. Co-Fundador e Coordenador do PHPSP j ajudou a fundar grupos de PHP em outros * estados e um dos hosts do PHPSPCast, em seu tempo livre ele procura organizar aes junto a * comunidade para ajudar o PHP a crescer no mercado. www.rafaeldohms.com.br.***/

    O assunto despertou seu interesse? Ao menos eu es-pero que este seja o motivo pelo qual voc voltou para ler mais um artigo desta coluna, mas e agora? Se o assunto novo para voc, a pergunta em sua cabea agora deve ser algo em torno de; Mas por que eu preciso de testes? ou O que eu tenho a ganhar com essa prtica?. tima pergunta, permita-me mais uma ou duas pginas para tentar lhe convencer de que voc precisa deles. Em primeiro lugar precisamos definir o seu perfil. Eu vou simplificar ao extremo aqui e dividir os leitores em duas camadas: desenvolvedores e gerentes. Para ficar bem claro, vamos definir o desenvolvedor aquele responsvel por produzir o cdigo e eventualmente corrigir os bugs e dar manuteno, e como gerentes todos aqueles que no esto preocupados com o cdigo, mas sim com os clientes e especificamente o lucro. Se analisarmos o mercado desta forma cada um destes possui interesses diferentes que po-dem ou no ser relacionados, mas cada um vai encarar tes-tes de uma forma diferente.

    O Desenvolvedor

    Ento voc um desenvolvedor, guerreiro do c-digo fonte, e possivelmente um sofredor por natureza. Va-mos analisar alguns aspectos do seu dia a dia. Seu trabalho comea com um pedido, ou uma requisio, alguns deta-lhes e um prazo. Munido deste problema e do relgio de contagem regressiva voc marcha em frente procurando a soluo para este problema. Vou fazer um pouco de pen-samento positivo e dizer que voc primeiro pra um pouco para analisar o problema e como sua arquitetura deve se estruturar para resolver isso, alguns diagramas UML, uma ideia geral do comportamento de seus objetos e seu sistema como um todo. Em seguida voc se isola no mundo do seus fones de ouvido e sua escolha de som, seja ela rock, psy, pop ou at sertanejo (eu prefiro msicas de video game em verso metal rock), e o que que acontece em seguida uma

    linda tempestade de cdigo, horas concentrado at que voc finalmente declara, estou pronto. Ok, mentira. Durante este processo voc provavel-mente passou pelo velho ritual do F5: voc escreve um c-digo, abre o browser, preenche o formulrio de 30 campos, aperta submit e ops, um erro, volta pro cdigo, preenche o formulrio de novo (xinga a validao JS) e Bem, aqui voc pode dar sorte, o seu cdigo pode funcionar, mas geralmente este processo se repetir algumas dezenas de vezes at o final do sistema. Depois disso voc volta e testa tudo novamente, em um servidor de homologao (mais pensamento positivo!). Com tudo de acordo voc empurra o cdigo pra frente e l vai ele para seu cliente. No, no, voc no vai sair de frias agora, o cliente acabou de ligar, achou um bug no cadastro com pessoas que tem emails de 300 caracteres. A voc entra no processo do F5 novamente, corrige este bug, corrige o prximo que era disparado pelo usurio que usa uma senha de 3 caracteres, ai vem aquele l que o email tem vrios pontos e derrubou sua regex de validao. Quando voc finalmente passa por tudo isso e acha que acabou, hora de seguir em frente, o cliente do email de 300 caracteres volta e fala que seu email falhou de novo. Voc se pergunta, Mas como? eu j re-solvi isso antes, claro que voc no se lembra mais como resolveu e l vai voc de novo corrigir um bug recorrente. E viveram codando para sempre Esta rotina foi extremamente exagerada pra mostrar diversos pontos de falha, obviamente ela no acontece dessa forma para todos, eu espero. Mas se estou certo voc se identificou com a natureza de um ou dois destes pontos de falha que descrevi, j passou por algo parecido ou cometeu erros similares. Mas o que testes tem a ver com isso? Vamos avaliar o processo passo a passo: Na fase inicial, de projeto, imagine que ao invs de um apanhado de ideias voc tivesse uma estrutura de testes, um grupo de funes que definem entradas (dados) e sadas (dados processados). Ou seja, voc define que vai existir um objeto responsvel por transformar um array em um XML, e escreve um teste para isso passando um array e testando

  • PHPReview | 4 edio | novembro-dezembro/2011 | www.phpreview.net 7

    que a sada um XML compatvel com esta entrada. Este processo se chama Test Driven Development, os testes nas-cem antes do cdigo e um timo exerccio para achar as falhas na sua lgica antes de codar, talvez uma classe que no tinha imaginado, ou uma sequncia que ir falhar. Alm disso voc tem um conjunto claro de regras para validar seu sistema quando ele estiver pronto. Mesmo que a fase inicial no produza estes arte-fatos, pense no ritual do F5. Preencher aquele formulrio um saco n? Suponhamos que voc possui um mtodo que vai processar aquele formulrio, ele que voc esta co-dando e debugando no ? Voc j sabe os dados de en-trada, afinal voc esta digitando eles no formulrio a cada 5 minutos, e se ao invs e usar o formulrio voc simule ele? Um teste simples que passa para o seu cdigo um array de valores, no mesmo formato que o form iria pas-sar. Agora ficou fcil, voc vai na linha de comando roda os testes, valida o resultado, usa um debug para acompanhar os valores internamente na funo ou at vai ao extremo de usar uns var_dump aqui e ali. Voc acabou de matar o processo mais demorado (e chato!) que era o de preencher o formulrio. E os bugs recorrentes? Imagina que ao receber um aviso de bug voc adicione a sua massa de dados (os da-dos simulados que voc passa a sua funo) um email de 300 caracteres, voc vai facilmente identificar o ponto de falha, mas agora alm disso voc ainda tem um certifica-do de que este bug no ir voltar, se voltar voc vai ter um teste falhando pra lhe avisar muito antes do cdigo chegar a produo. Imagine reescrever pedaos de seu cdigo sem medo de que esta alterao v alterar outro pedao do seu sistema que voc nunca imaginou poderia ser afetado. Estes so alguns aspectos do que a prtica de testes pode trazer para um desenvolvedor. Sim, voc vai precisar escrever mais cdigo, pois agora esta escrevendo testes alm do cdigo, mas voc ganhar muito mais produtividade e qualidade de cdigo, podendo lhe salvar o tempo que pas-saria corrigindo bugs e testando formulrios. Parece muito trabalho inicialmente mas a facilidade que acompanha este processo facilmente conquista qualquer um.

    O Gerente

    Ok, voc o gerente, mestre do domnio e senhor do chicote. Brincadeira, voc o responsvel por tudo isso, pelo time estar trabalhando e pelo cliente estar feliz, e o caixa da empresa cheio. Mas o que testes podem trazer para voc? Seu primeiro pensamento : Se eles vo ter trabalho

    extra, o prazo vai aumen-tar, o cliente vai esperar mais, e eu perco dinhei-ro. um pensamento vlido se voc analisar a situao a curto prazo ou com uma viso limitada, testes tem uma funo a longo prazo e vo muito alm da primeira entrega do sistema. Uma estrutura de testes bem desenhada e uma cultura de testes bem imple-mentada em sua equipe ter como resultado uma alterao de prazo muito pequena, ou at mesmo pode gerar uma reduo no prazo. Por exemplo, no caso que descrevi ao desenvolvedor, se ele elimina o processo de repetio de-morada do form, ele pode debuggar e finalizar aquele c-digo mais rpido e entregar o sistema mais rpido. Com a prtica e experincia fica mais simples e rpido escrever tes-tes, identificar pontos onde se deve implementar remover dependncias e tudo corre mais rapidamente. O resultado deste investimento inicial muito posi-tivo, voc vai ter um produto mais confivel, uma mtrica de qualidade que pode se aliar a outras ferramentas como a Integrao Contnua e trazer certeza a toda entrega de seu produto, o nmero de bugs reduzido, o cdigo fica mais limpo e organizado, e mudanas podem ser feitas sem medo de efeitos colaterais. Isso tudo traz muita flexibilidade ao seu produto e confiana a sua equipe de desenvolvimento. Mas nada disso acontece se a prtica no foi levada a srio e o investimento inicial, onde alguns prazos sero atrasados e mais tempo ser gasto em planejamento, no for feito e cumprido. No adianta ficar gritando com a equipe que o produto no esta pronto se o prazo final no foi alcan-ado ainda.

    Convencido?

    Enfim, espero que meu objetivo de lhe convencer que precisa de testes foi cumprido, ou que pelo menos esta pensando com mais calma e sua mo esta coando para no mnimo tentar escrever um teste e ver como . No artigo anterior analisamos as ferramentas e como escrever testes. Nas prximas edies vamos comear a trilhar um caminho e em breve vou poder rechear esta pgina com muito mais cdigo. At l! ?>

    voc vai precisar escrever mais cdigo,

    pois agora esta escrevendo testes

    alm do cdigo, mas voc ganhar muito

    mais produtividade e qualidade de cdigo

    COLUNA | teste, de unitrio a completo

  • PHPReview | 4 edio | novembro-dezembro/2011 | www.phpreview.net 8

    #papodeprogramador

    Muito alm do cdigo/*** @nome Alexandre Taz* @email [email protected]* Alexandre TAZ dos Santos Andrade atua h 8 anos no mercado de PHP. J trabalhou e prestou servios * nas mais diversas reas e em empresas de todos os tamanhos, tais como Rede Bandeirantes de Televiso * e PRODESP. Atualmente, desenvolvedor Snior PHP/MYSQL, locado na Atos Origin. entusiasta da * comunidade PHP e partidrio de uma postura mais profissional para fortalecer o PHP no mercado.***/

    Galera, hoje eu vou tratar de um assunto muito s-rio para os programadores: o que saber alm do cdigo. No estou me referindo sobre que ferramentas aprender, ou que livro ler, no estou tratando de como tornar um produto atraente para seu chefe e para a sua organizao. Mas, o que eu quero dizer com isso? simples. Conheo programadores muito bons, mas que tm um de-feito muito srio: no sabem se vender. E isso vai muito alm do marketing pessoal, e que quando tem de negociar um aumento de salrio e no se consegue. preciso en-tender que no mercado de Desenvolvimento as empresas compram um produto, o nosso conhecimento. E ns deve-mos vender. neste ponto que devemos prestar ateno. Isso deve te nortear desde a busca de um novo tra-balho at na hora de negociar melhores condies. Sem contar que isso o diferencial para o que quer que voc faa. Um exemplo bem claro, quando eu vou procurar tra-balho e entro numa empresa de VAS, rea que atuei muito tempo, deixo bem claro na entrevista tcnica que j domino alguns conceitos da indstria, como o que MSISDN, os que so TOKENS, as principais agregadoras, conceitos de topup etc. Isso demonstra que o empregador ter menos custo no meu treinamento. Mais do que isso: na hora de negociar o salrio isso me faz pedir mais para eles do que pediria em empresa de outro ramo, pois sou mais valioso nesse mercado, oras. Mas isso no um segredo somente para entrevista, um se-gredo para estar dentro da empresa e conseguir progredir nela. Quando voc domina o negcio da empresa, voc est agregando valor ao seu conhecimento como desenvolvedor, diminuindo o tempo que os usurios tm de te explicar determinada coisa. Sugerindo melhorias, maximizando o investimento que a empresa faz em te ter em seu quadro de fun-cionrios. E sabe como : quanto mais voc conhecer o mercado no qual trabalha, mais valor voc tem. Quanto mais valor voc tem, mais deveriam recompensar o seu esforo em aprender.

    Ficou clara a ideia? Sim, porque saber algoritmos, tudo sobre a sua linguagem e banco de dados uma coisa da sua rea, mas ir alm o que diferencia os profissionais realmente valo-rizados no mercado. preciso conhecer o negcio, mas mais do que isso, preciso fazer saber que voc conhece o negcio. Isso deve ser feito sem arrogncia, fazendo pequenas sugestes, conversando com seus colaboradores com o vocabulrio do negcio, minimizando o tecniqus, passando a impresso de que voc um cara mais agradvel e no outro geek de TI. Es-pero que o artigo desta edio tenha sido til e que vocs possam aproveit-lo de alguma maneira para a reflexo sobre atuao e valorizao profissional. ?>

    Quando voc domina o negcio da empresa, voc

    est agregando valor ao seu conhecimento

    VAS: Value-added Service, muito usado no setor deTelecomunicao.

    MSISDN: nmero nico de identificao de uma assinatura em uma rede mvel GSM ou UMTS.

    TOKEN: Arquivo utilizado para informar que um dis-positivo deseja se conectar a outro.

  • PHPReview | 4 edio |novembro-dezembro/2011 | www.phpreview.net 9

    Simples assim

    No seja escravo do framework/*** @nome Andr Luiz Pinheiro* @email [email protected]* Andr Luiz Pinheiro programador PHP h 6 anos, trabalhando como* freelancer na construo de sites de e-commerce. J trabalhou como* consultor em empresas como Vale, banco BMG e Serpro. Tambm faz * parte da equipe de desenvolvimento do Smarty 3.0.***/

    Aqueles que acompanham a evoluo do PHP, no que diz respeito pro-gramao, tm acompanhado tambm o surgimento de uma nova forma de programar: a utilizao do Framework. Esta funcionalidade facilita muito o desenvolvimento de aplicaes web, seja em websites, webservices ou em siste-mas on-line. No entanto, trata-se de um recurso que deve ser usado com moderao para que o seu programa no acabe sendo escravo deste ou daquele framework. Nos tempos em que o PHP no tinha sequer a menor expectativa de possuir orientao a objeto, a programao modular era a forma mais limpa de se ter o cdigo fonte. Bons tempos aqueles em que o programador detinha o controle da situao; quando os mdulos criados serviam para facilitar sua vida e no para ditar a regra com a qual ele estaria programando. A partir da verso 4 do PHP tudo comeou a mudar. O suporte a orientao a objeto, mesmo que da forma mais simplria possvel, fez com que muitos programadores convertessem seus mdulos em classes instanciveis, escalveis, flexveis e muito mais simples de estend-los. Estes mdulos passaram a ser as ferramentas de trabalho que o programador possua. Hoje, so inmeros os frameworks existentes em PHP. Kohana, Zend, CodeIgniter, Symfony, Cake, PHPBurn so alguns exemplos. Mas o que difere um do outro? Cada um tem a sua especificidade, a sua forma de ser trabalhado. Todos eles so conjuntos de ferramentas para auxiliar o programador no momento do desenvolvimento da aplicao. No se deve, por-tanto, programar baseando-se em um framework e sim utiliz-lo para o seu trabalho dirio. Infelizmente, hoje em dia, tenho visto muitos comentrios em grupos de usurios per-guntando qual o melhor ou o pior framework que existe. A resposta muito simples: o melhor aquele que se adapta a sua forma de programar. Logicamente, voc tem que se enquadrar na forma como o framework trabalha, mas isto no pode ser uma imposio, mas conseqncia de uma escolha do programador. Pense assim: voc tem um parafuso Philips para abrir. Se voc possui um conjunto de chaves, voc pode escolher a chave Philips com tamanho ideal para o seu parafuso; se usar a chave maior no cabe na fenda e voc no soltar o parafuso. Se voc usar a chave menor, cai corroer a fenda do parafuso e no o abrir. Voc tambm no pode ter uma chave Philips e achar que todos os parafusos sero abertos por ela, pois se for um parafuso de fenda, com a sua nica chave voc no conseguir abri-lo. O mesmo ocorre na ferramenta de desenvolvimento. Escolha com conscincia a sua ferramenta de trabalho, ela ir aumentar muito a sua produtividade, mas se voc se tornar escravo do framework no poder desenvolver melhorias alm das que existem no modo escolhido. ?>

    O melhor framework aquele que

    se adapta a sua forma de programar

  • PHPReview | 4 edio |novembro-dezembro/2011 | www.phpreview.net 10

    E agora,qual Framework usar?

    Fizemos um passeio pelos principais frameworks em PHP para que voc conhea melhor cada um delespor Elton Minneto

    O que um Framework?

    Um framework de desenvolvimento uma base de onde se pode desenvolver algo maior ou mais especfico. Trata-se de uma coleo de cdigos, classes, funes, tcnicas e me-todologias que facilitam o desenvolvimento de novos softwares. A idia principal de um framework que o desenvolvedor nunca inicie a criao de um aplicativo do zero.

    Por que usar?

    Quando um desenvolvedor comea a estudar um novo framework ele depara-se muitas vezes com uma forma diferente de programar ou at de pensar um sistema. necessrio aprender uma sintaxe dife-rente, convenes para nomes de arquivos, variveis e tabelas de banco de dados. Alm disso, muitas vezes surge a sensao de estar engessado, pois preciso fazer as coisas da forma que o framework trabalha e qualquer coisa diferente requer um pouco de trabalho.

    Mas as vantagens em mdio e longo prazo fazem este pequeno esforo inicial valer. Como todos os desenvolvedores que usam de-terminado framework programam usando as mesmas convenes, classes e bibliotecas, a manuteno de um programa muito mais fcil. Mesmo que determinado script tenha sido escrito por outra equipe h vrios me-ses, no ser necessrio passar horas tentando enten-der para que serve a classe Foo, a varivel $bar, ou se a tabela onde esto armazenados os registros de clientes chama-se Cliente, Clientes ou CLIENTE - como vrios gerenciadores de bancos de dados so case sensitive Cliente e CLIENTE so bem diferentes. Isto contribui para que novos desenvolvedores que ingressem em uma equipe rapidamente possam se inteirar da forma como trabalhado diminuindo custos e tempo para treinamento. Outra vantagem da grande parte dos frame-works que tarefas repetitivas podem ser automati-zadas. o conceito conhecido como DRY Dont Repeat Yourself, que pode ser traduzido para no

  • PHPReview | 4 edio | novembro-dezembro/2011 | www.phpreview.net 11

    se repita. Em uma aplicao que tenha que manipu-lar dados vindos de uma tabela na base de dados as operaes de incluso, excluso e alterao so pra-ticamente iguais para todas as tabelas envolvidas. No teria sentido repetir o esforo para desenvolver este c-digo vrias vezes e a gerao destas funes poderia ser

    automatizada por alguma ferramenta contida no frame-work. Existem outras vantagens como separao de apresentao e lgica, facilidade de gerao de testes automatizados e gerao de documentao.

    Principais Frameworks em PHP Uma das belezas do software livre que sempre existem diversas formas de solucionar um determinado problema. No seria diferente no quesito Frameworks. Existem diversas opes para o desenvolvedor escolher. Mas, com o tempo, alguns destes frameworks acabaram se destacando, por diferentes motivos. Neste artigo, vou citar alguns dos mais usados na atualidade.

    CakePHP

    O CakePHP foi o primeiro framework que eu usei profissionalmente, aps ter criado o meu prprio e perceber que estava reinventando a roda. O CakePHP teve seu desenvolvimento iniciado em 2005 e atualmente encontra-se na verso 1.3.6. Algumas das vantagens de se usar o CakePHP:

    4Instalao simples: ele possui poucos requisitos tc-nicos para rodar. Um servidor Web com possibilidade de reescrita de urls, PHP e uma base de dados.

    4Fortemente baseado em MVC: MVC significa Mo-del (Modelo), View (Viso) e Controller (Controlador). um padro de projetos que favorece a diviso dos cdigos, separando a lgica de acesso a dados (Mo-delo), visualizao (HTML, CSS, JS na camada de Viso) e lgica de negcios (Controlador). Usando-se CakePHP evita-se a mistura de cdigos, facilitando a diviso de trabalho entre a equipe

    4Validaes de campos: criar um formulrio e validar os dados preenchidos em cada um dos campos uma tarefa repetitiva mas importante. O CakePHP possui

    componentes que auxiliam nessa tarefa e que podem ser extendidos para criar validaes especficas.

    4Listas de controle de acesso: componentes que auxi-liam na criao de reas restritas no aplicativo, contro-lando o acesso de usurios de forma segura, flexvel e de simples configurao.

    4Helpers: so conjuntos de funes existentes no framework que auxiliam no desenvolvimento da parte de apresentao dos aplicativos. Existem helpers para auxiliar na gerao de HTML, formulrios, JavaScript e Ajax. Novos helpers podem ser criados para ser reu-tilizados em outros projetos.

    4Gerao de cdigo uma das grandes vantagens de

    CAPA | E agora, qual framework usar?

  • PHPReview | 4 edio |novembro-dezembro/2011 | www.phpreview.net 12

    utilizar um framework como o CakePHP a possibili-dade de gerao de cdigos para evitar o esforo repeti-tivo. O CakePHP apresenta uma ferramenta chamada bake, que permite a criao dos diretrios da aplicao alm da gerao de cdigo CRUD. CRUD um acr-nimo para Create, Retrieve, Update e Delete, que em portugus poderia ser traduzido para: criar, recuperar, atualizar e excluir. Estas so as funes bsicas que um aplicativo deve realizar sobre um conjunto de dados, por exemplo, uma tabela de base de dados.

    O principal objetivo do CakePHP o desen-volvimento rpido de aplicaes. E ele cumpre o que promete. A ferramenta bake, responsvel por gerar

    cdigos e novos projetos de uma utilidade incrvel. Com ela possvel acelerar o desenvolvimento de um novo projeto de maneira significativa. Alm da gerao de cdigos e dos tens citados acima, outro ponto im-portante a existncia de uma comunidade de usurios ativa. Atravs de sites, blogs, frums fcil encontrar exemplos de cdigo, e auxlio em dvidas e tarefas mais complexas. Outro ponto interessante a estrutura de di-retrios do framework. uma das mais simples, mais fceis de se entender e aprender. Para quem est ini-ciando no mundo dos frameworks fcil entender con-ceitos como MVC e reforar a tcnica de Orientao a Objetos.

    Symfony

    O principal objetivo do Symfony aumentar a velocidade de desenvolvi-mento e manuteno de aplicaes web. Ele reduz as tarefas de codificao repetitivas, usando os princpios de DRY Dont Repeat Yourself (no se re-pita) e KISS - Keep It Simple Stupid (mantenha isto simples seu esttipo), representando a idia de manter o software o mais simples possvel. Sua primeira verso foi lanada em 2005, por Fabien Potencier, para ser utilizado por sua empresa, a Sensio http://www.sensio.com. Aps ter sido liberado sobre uma licena livre o cdigo comeou a ser mantido por uma comunidade de desenvolvedores. Algumas das vantagens:

    4Facilidade de instalao: conta com formas de insta-lao facilitada, como o uso de canais PEAR.

    4Flexibilidade: o Symfony altamente configurvel. Desde a estrutura de diretrios at bibliotecas de ter-ceiros, quase tudo pode ser customizado. Isso um fator importante pois facilita o framework ser inserido

    em uma empresa onde j exista um ambiente de desen-volvimento configurado, podendo reaproveitar conhe-cimento e ferramentas j dominadas pelas equipes.

    4No reinventa a roda: uma das decises de projeto tomadas no desenvolvimento do framework foi a de utilizar softwares j existentes e especializados para

    E agora, qual framework usar? | CAPA

  • PHPReview | 4 edio | novembro-dezembro/2011 | www.phpreview.net 13

    fazer determinadas tarefas. Por exemplo, para a conexo com as bases de dados e ORM, o Symfony utiliza a biblioteca chamada Doctrine. Assim, a funo do Symfony agir como unificador destas ferramentas, de forma que aparentem ser uma s e no um Franks-tein cheio de remendos. Para o desenvolvedor que j conhece algumas destas ferramentas mais uma van-tagem em utilizar o Symfony, pois pode aproveitar seu conhecimento j adquirido.

    4Validao de campos: possui formas de validar os dados digitados pelos usurios em formulrios ou urls. Isso ajuda o desenvolvedor a evitar dados incorretos ou problemas de segurana

    4Logs e debugs: Symfony possui opes de gerao de logs de atividades e debug facilitado de variveis e aes. Essas ferramentas auxiliam muito o desenvolve-dor no momento de encontrar possveis erros de inter-ao, dados ou outros.

    4Gerador de cdigos: o Symfony conta com uma fer-ramenta para gerao de projetos e cdigos. Essa fer-ramenta agiliza o desenvolvimento de aplicaes pois evita que cdigos repetitivos sejam gerados.

    Recentemente o framework passou por uma grande reformulao, em sua vindoura verso 2.0, que foi lanada ainda no primeiro semestre de 2011. Segundo os desenvolvedores do projeto, foram imple-mentadas nessa verso o que h de mais moderno na linguagem PHP 5.3, tornando-se um dos mais avana-dos frameworks existentes. Eu usei o Symfony em poucos projetos e to-dos muito pequenos, mas a minha humilde opinio quanto a ele de ser um framework com uma curva de aprendizado um pouco mais ngreme do que os de-mais. Mas aps entender o seu funcionamento e suas metodologias a produtividade no desenvolvimento de aplicativos realmente tem uma grande evoluo, tendo destaque a ferramenta de gerao de cdigos e as fer-ramentas de auxlio ao desenvolvedor, como debug.

    Zend Framework

    O Zend Framework um framework para PHP 5, orientado a objetos e basea-do em MVC, que desenvolvido pela empresa Zend junto com a comunidade de

    usurios PHP.

    Talvez a principal vantagem em se utilizar o Zend Framework poder contar com o suporte de uma empresa especializada. Isso no faz grande difer-ena para desenvolvedores acostumados com o ecossis-tema de software livre, mas para o mundo dos negcios isso importante. A Zend formada por grandes de-senvolvedores da linguagem PHP, como Zeev Suraski and Andi Gutmans, dois dos responsveis por grandes quantias de cdigos nas verses iniciais da linguagem. Ela possui parcerias importantes como IBM e Oracle, o que fortalece o uso do PHP nas grandes empresas.

    Tecnicamente, o framework tambm possui vrios pontos interessantes. O principal deles o fato de ser baseado em componentes reutilizveis. Novos componentes so adicionados na medida em que o framework evolui. Atualmente, o framework encontra-se na verso 1.11.2, e uma verso 2.0 est em desen-volvimento, que ir usar os recursos mais modernos do PHP 5.3. O Zend Framework baseado nos principais pa-dres de projeto, sendo o mais visvel para o desenvolve-dor o MVC, pois todo aplicativo desenvolvido segue esta filosofia.

    CAPA | E agora, qual framework usar?

  • PHPReview | 4 edio |novembro-dezembro/2011 | www.phpreview.net 14

    Eu tenho usado o framework em meus pro-jetos por mais de dois anos e posso citar alguns dos fatores que influenciaram nessa escolha. Alm dos citados acima, como a existncia de uma empresa que venda suporte, o Zend Framework muito flexvel, podendo ser estendido e seus componentes intercam-beados com outros frameworks. Desta forma pos-svel, por exemplo, substituir o componente Zend_Db (res-ponsvel por acesso a uma base de dados) pela bi-blioteca Doctrine, com poucas alteraes em cdigo e arquitetura. Outro fator interessante a existncia de uma certificao a que os desenvolvedores podem se sub-meter, a Zend Framework Certification. Isto facilita na contratao de profissionais, alm de valorizar o de-senvolvedor. Diferentemente do CakePHP e do Symfony, que tem como principal objetivo acelerar o desenvolvi-mento de aplicaes, o objetivo do Zend Framework criar projetos mais robustos, maiores, em detrimento da velocidade de desenvolvimento. Isso no quer dizer que usar o Zend Framework seja demorado ou pou-co produtivo. Ele fornece ferramentas para facilitar o desenvolvimento, mas no possui gerador de cdigos com o CakePHP e sim uma ferramenta para criar a estrutura do projeto apenas. So frameworks com obje-tivos diferentes, mas que compartilham caractersticas em comum.

    Concluso

    Sei que voc leu at aqui e deve estar pensando: Legal! O Minetto vai me dizer agora qual o melhor framework que existe!. Mas essa uma questo com-plicada de se responder. O melhor framework o que se encaixa a sua necessidade. Atualmente os frameworks se equiparam em quesitos tcnicos, o que diferencia um pouco so seus objetivos ou a forma como os atingem. O CakePHP um framework bem acoplado, os seus componentes esto mais unificados, o que pode torn-lo um pouco mais complexo para substituir compo-nentes, mas a facilidade de entendimento de sua estrutura um ponto alto. E a velocidade de desenvolvimento que a ferramenta bake fornece muito importante. O Symfony possui a facilidade de seus compo-nentes poderem ser substitudos e sua velocidade de de-senvolvimento um ponto forte. A curva de aprendizado mais ngreme pode assustar um pouco no comeo mas o pequeno esforo rapidamente compensado. O Zend Framework favorece a criao de apli-caes mais robustas, com foco em escalabilidade e no somente em velocidade de desenvolvimento. Sua docu-mentao clara, a boa quantia de livros existentes, seus excelentes componentes e o aporte de grandes empresas ajudam na sua escolha. A minha opinio? Teste. Instale os frameworks, desenvolva um projeto em cada um deles e tente fazer sua escolha. ?>

    Elton Lus MinettoPossui graduao e especializao em Cincia de Computao. Professor desde 2004 , trabalha com PHP/MySQL desde 2000 e com Linux desde 1998. Autor do livro Frameworks para Desenvolvimento em PHP, da editora Novatec, e co-autor do livro Grid Computing in Research and Education, publicado pela editora IBM/Redbooks, EUA. Scio da Coderockrhttp://www.eltonminetto.net

    E agora, qual framework usar? | CAPA

  • PHPReview | 4 edio |novembro-dezembro/2011 | www.phpreview.net 16

    CakePHPAprenda a instalar e configurar de forma muito fcil.por Cau Cabral

    No h dvida de que existem vrios frame-works disponveis no mercado, e fato que alguns costumam ganhar destaque em deter-minados perodos. Neste artigo, apresentaremos um destes frameworks de destaque: o CakePHP. Se digo que este um dos frameworks de destaque, quais o fatores que o fizeram ganhar esta no-toriedade? Bom, essa uma questo um tanto subje-tiva, mas vamos tentar... . Comeamos pela curva de aprendizado. No CakePHP ela bem suave, se o programador j tiver conhecimento de Programao Orientao a Objetos (OPP) rapidamente pegara os outros conceitos, du-rante a prpria utilizao. Exatamente, voc vai desco-brindo o framework enquanto trabalha com ele. Um fator determinante para essa facilidade esta na filosofia conveno no lugar de configurao, ou seja, seguin-do algumas poucas regras bsicas para nomear arqui-vos e classes voc tem seu sistema funcional sem gastar tempo com configurao. O CakePHP um framework especialmente projetado para agilizar o desenvolvimento de apli-caes, trazendo gerador de cdigo - o famoso bake - uma coleo de classes para tarefas rotineiras como au-tenticao, permissionamento, interao com banco de dados, criao de webservices dentre outras. Editando pouqussimo cdigo possvel ter uma aplicao com criao, leitura, atualizao e remoo de registros, bas-ta seguir as convees. Outro ponto muito favorvel a abundncia de fonte de informao, seja atravs da documentao oficial - composta pelo Cookbook, onde tem-se exem-plos e explicaes mais didticas, e a Api para consulta rpida de funcionalidades - ou ainda diversos sites e blogs, vrios em lngua portuguesa com dicas, artigos, cdigos de exemplo e screencasts alm de listas de dis-cusses e canais de IRC. So inmeros os locais para buscar informao e ajuda, com uma comunidade aberta e muito participativa.

    Um item que s vezes assusta quem est comeando o ingls. Graas a comunidade muito ativa de desenvolvedores no Brasil, temos vrias fontes de informao em nossa lngua ptria. E mais, pos-svel deixar o CakePHP falando nossa lngua, basta uti-lizar um plugin para isso. Do ponto de vista comercial, alm de ser um framework livre e gratuito, o CakePHP distribudo com um licena flexvel, que permite sua integrao com sistemas livres ou proprietrios. Ele ainda conta com uma empresa dedicada ao seu desenvolvimento que pode prestar servio de consultoria e treinamento. Alm disso tudo um framework maduro, tendo mais de 6 anos de desenvolvimento e sendo uti-lizado em vrios sistemas e sites de porte variados. Talvez voc pense: se o CakePHP to fcil de usar, por que esse cara no da um exemplo logo?. Pois bem, vamos a um exemplo.

    Como de praxe, imaginemos um cenrio co-mun entre sistemas, criando uma agenda de contato. Para criar nosso primeiro sistema voc precisa certifi-car-se de trs coisas:

    1. Seu servidor Apache est funcionando com suporte a PHP e o mdulo de reescrita est habilitado (mod_rewrite) 2. Tenha um banco de dados funcionando, uti-lizaremos o MySQL, mas com pouqussimos ajustes. possvel utilizar outro banco de dados. 3. Possui conhecimento mnimo de terminal/console para utilizar as mgicas de gerao de cdigo

    Agora precisamos baixar o arquivo do frame-work. Acesse o endereo oficial do CakePHP [http://cakephp.org] e faa o download da ltima verso estvel (stable - neste momento, verso 1.3.12). Aps fazer o download do arquivo, descom-pacte-o dentro da pasta pblica pro Apache, normal-

  • PHPReview | 4 edio | novembro-dezembro/2011 | www.phpreview.net 17

    mente public_html ou htdocs (Figura 1). Apenas para facilitar o acesso, vamos renomear a pasta que foi criada no momento que descompactamos arquivo. Utilizarei o nome phpreview. Acesse a pasta para ver o contedo dela, que deve ser algo semelhante ao da Figura 2. Experimente agora acessar a pasta phpreview atravs do seu servidor local (http://localhost/phpreview). Deve ser exibida uma pgina de boas vindas do CakePHP (Figura 3) indicando o que falta ser feito para que o framework esteja pronto para o trabalho. As mensagens em amarela so itens que precisam de ateno. As duas primeiras referen-se a constantes usadas para tornar as aplicaes mais seguras, podemos remove-las seguindo suas instrues: acesse o arquivo core.php dentro da pasta phpreview/app/config/ e procure a palavra Security.salt, altere o valor relacionado a ela (voc pode inserir qualquer coisa, seja frases, letras ou nmeros), em seguida busque a palavra Security.cipherSeed e altere o valor relacionado - desta vez so aceitos apenasa nmeros, nada de letras ou espaos. Salve o arquivo e feche. O prximo item aponta a falta de configurao para acesso ao banco de dados. O que a mensagem diz renomeie o arquivo config/database.php.default para config/database.php, mas preciso uma outra coisa. Aps renomear o arquivo conforme pedido, abra-o em um editor e v at a linha 76. Este bloco permite a configurao da conexo com o banco de dados. Preencha os valores com os dados de acesso ao seu banco. Atualize agora a tela do seu navegador com a pgina do cake e veja se todas as mensagens em amarelo sumiram. Caso tenha sumido, pode continuar, seno de uma olhada na mensagem e tente seguir o caminho indicado para resolver o problema.

    Banco de Dados

    Vamos criar agora uma tabela para guardar os registros, para isso, execute o SQL da Listagem 1 no seu gerenciador de banco de dados favorito.

    Gerando o Cdigo do Site

    Terminamos a configurao, vamos gerar cdigo! Acesse um terminal, caminhe at a pasta phpreview/cake/console e execute o comando ./cake bake (repare no ponto antes da barra, ele necessrio quando estiver usando Linux). Primeiro geramos o Model do nosso projeto, teclando M, ele faz o mapeamento do bando de dados pra aplicao. Ele vai fazer algumas perguntas sobre regras de validao e relacionamento com outros modelos. Para este artigo utilizaremos n (no) como

    Figura 1Diretrio inicial do CakePHP

    Figura 2Diretrio renomeado

    Figura 3Se o servidor estiver correto, esta tela apresentada

    CAPA | CakePHP

  • PHPReview | 4 edio |novembro-dezembro/2011 | www.phpreview.net 18

    resposta para todas elas. A ltima pergunta pede para revisar as escolhas e confirmar - tecle y (sim) - seu modelo ser gerado. Em seguida geramos o Controller (controlador), responsvel por gerenciar as aes do usurio, fazendo o meio de campo entre as Views (viso) e o Model (modelo). Responda n para todas as opes exceto a opo Would you like to create some basic class methods e a confirmao final. O primeiro sim para dizer ao CakePHP para criar nossas aes bsicas no controlador, a segunda para permitir a escrita do arquivo. Por ltimo, geramos as Views (viso, nossas telas), neste caso siga apenas as opes padres (aperte enter sem inserir letras). Ao final voc ter os arquivos mostrados na Figura 5. Tendo tudo corrido bem, voc j pode acessar sua aplicao de agenda pelo endereo http://localhost/phpreview/contatos (Figura 4). L voc poder ver a lista de contatos criados, adicionar, editar e excluir registros de contatos alm de visualizar os dados completos de cada um individualmente. Este um exemplo bsico do poder de automatizao de tarefas que o CakePHP proporciona. Espero que o artigo tenha despertado curiosidade em voc para conhecer um pouco mais deste fantstico framework. ?>

    Listagem 1

    CREATE TABLE IF NOT EXISTS contatos`( id INT(11) NOT NULL AUTO_INCREMENT, `nome` VARCHAR(45) NOT NULL, `endereco` VARCHAR(255) NULL, `telefone` VARCHAR(20) NULL, `celular` VARCHAR(20) NULL, `email` VARCHAR(255) NULL, PRIMARY KEY (`id`));

    Figura 5Arvore com os arquivos criados aps a

    execuo do BAKE

    Figura 4Tela final com o cadastro de contatos

    Cau CabralComeou a se interessar por computao (e no computador) aos 12 anos, quando frequentava os canais de IRC. Bacharel em Cincias da Computao pela UFMS, onde aprendeu fundamentos e linguagens de programao, como C/C++, Java e Assembly.Hoje scio da Radig Solues em TI, onde dedica seus esforos no desenvolvimento baseado na web, utilizando a ferramenta que me-lhor lhe servir.

    CakePHP | CAPA

    Aps o fechamento desta edio foi

    lanada a verso 2.0 do Cake PHP, que est disponvel em

    http://github.com/cakephp/

    cakephp/tree/2.0

  • PHPReview | 4 edio |novembro-dezembro/2011 | www.phpreview.net 20

    Web Enterprise com Zend Framework possvel construir uma aplicao robusta usando ZF?por Adler Medrado

    O desenvolvimento web est cada vez mais dinmico e atualmente invivel uma equipe de desenvolvimento utilizar o seu framework caseiro para atender as necessidades de suas empresas e/ou clientes. Neste artigo sero abordados alguns pontos que demonstram porque se deve utilizar um frame-work para desenvolvimento web, neste caso, utilizando a linguagem PHP e o Zend Framework.

    O que um framework

    Um Framework um conjunto de funcionali-dades comuns a vrias aplicaes que visam facilitar o desenvolvimento de software, permitindo assim que a equipe de desenvolvimento preocupe-se com as re-gras de negcios especificas da aplicao ao invs de se preocuparem com a infra-estrutura o que aumenta a produtividade, pois h um reuso maior de cdigo e tambm aumenta a qualidade pois todo framework possui um padro de desenvolvimento que deve ser seguido pela equipe, o que por sua vez facilita a ma-nuteno da aplicao.

    O Zend Framework

    Criado e mantido pela empresa Zend Technologies (criadora do Zend Engine) em conjunto com uma extensa comunidade de desenvolvedores ao redor do mundo, o Zend Framework um framework para desenvolvimento PHP projetado com base nas prticas de desenvolvimento orientado a objetos. Escrito em PHP 5 e totalmente orientado a ob-

    jetos, ele baseado em componentes que so o mn-imo possvel dependentes entre si, ou seja, possuem baixo acoplamento, permitindo que sejam utilizados somente os componentes que realmente sejam impor-tantes no desenvolvimento de uma aplicao. Todos os componentes possuem testes unitri-os, o que diminui as chances de que sejam liberadas releases com componentes defeituosos, claro, nada 100% livre de bugs mas o fato de todo o framework ser exaustivamente testado diminui e muito as chances de componentes irem com erros para uma nova release. A licena utilizada pelo Zend Framework ba-seada na New BSD o que garante aos seus usurios total liberdade com seus cdigos no que diz respeito a copyleft.

    Model, View, Controller

    A estrutura implementada pelo framework baseada no MVC ou seja, as camadas de Modelo, Viso e Controle so distintas. A camada de modelo, dentre as vrias classes que a compe, implementa dois padres interessantes: Table_Data_Gateway e o Row_Data_Gateway que fa-cilitam muito o trabalho relacionado manipulao de tabelas e resultsets. Os cdigos abaixo demonstram esta funcionali-dade:

    class Pessoa extends Zend_Db_Table_Abstract{}

    No cdigo acima ns definimos uma classe chamada Pessoa que por sua vez representa uma tabela

  • PHPReview | 4 edio | novembro-dezembro/2011 | www.phpreview.net 21

    no banco de dados tambm denominada Pessoa.

    $pessoa = new Pessoa();$pessoa = $pessoa->fetchAll();

    Acima, aps criar uma instncia da classe Pes-soa, ns podemos manipular os dados desta tabela. Neste caso, estamos recuperando todos os registros gravados. Na Listagem 1 esto os exemplos para in-serir, alterar e excluir um registro. Obviamente o componente provm muito mais recursos, este foi somente um pequeno exemplo. Controllers e Views so to simples quanto o model, bastando apenas criar uma instancia da classe Zend_View para obter um objeto de viso o que j feito automaticamente pelo framework, en-to, na prtica no necessrio criar uma instancia desta classe explicitamente e o controller por sua vez, basta criar uma classe que faa a herana da classe Zend_Controller_Action.

    Mashup e Syndication

    Atualmente comum integrar sistemas e web-sites com servios de terceiros como Google maps, Google docs, flickr e twitter e quem j implementou e conhece as APIs destes servios provavelmente con-cordar comigo que apesar de existirem as APIs, nem sempre trivial a implementao de certas integraes, pensando nisso, o framework possui componentes di-versos para integrao com servios do Google, Yahoo, Twitter, entre outros, bem como componentes que permitem manipulaes simples de documentos RSS e congneres.

    Caching

    Fazer cache, em muitos casos aumenta a per-formance de nossas aplicaes mas implementar este tipo de funcionalidade do incio nem sempre uma tarefa simples. Para facilitar o trabalho o Zend Framework

    Listagem 1

    //Inserir$pessoa->insert(array(nome => Adler Medrado));$dados = array(nome => Adler Brediks Medrado);$where = id = 1;

    // Alterar$pessoa->update($dados, $where);

    // Excluir$pessoa->delete($where);

    prov o componente Zend_Cache que nos permite gerar e manter cache em diversas fontes como arquivos texto, memcache, APC, entre outros. Realmente, man-ter caches com Zend Framework uma tarefa muito simples.

    Componentes Diversos

    Todo o contedo de entrada deve ser filtrado, isso uma premissa bsica de segurana no desenvolvi-mento web e para isso o Zend Framework provm fil-tros, validadores prontos e meios muito simples de se criar filtros e validadores personalizados O Zend Framework possui tambm compo-nentes para envio de email, gerar documentos PDF, Indexao de documentos e busca com Zend_Search_Lucene que uma implementao em PHP do famoso Apache Lucene. Implementar sistemas que necessitam supor-tar vrios idiomas simples com os componentes de I18N e L10N que por sua vez suportar diversas formas de armazenamento e consulta dos dicionrios de idio-mas. Implementar WebService com Zend Frame-work muito simples, seja com SOAP, XML-RPC ou

    CAPA | Web Enterprise com Zend Framework

  • PHPReview | 4 edio |novembro-dezembro/2011 | www.phpreview.net 22

    REST utilizando os componentes existentes.

    Integrao com outras bibliotecas

    possvel implementar aplicaes Web 2.0 escrevendo todo o cdigo AJAX sem o intermdio de nenhum framework javascript porm esta uma tarefa Herclea que exige muito tempo disponvel e tempo atualmente algo bastante escasso. Dessa forma, comum utilizar frameworks javascript como JQuery ou Dojo para fazer todo o tra-balho difcil e neste ponto a integrao do Zend Frame-work com estas ferramentas muito boa e permite que o desenvolvedor escreva mais cdigo PHP do que Javascript para obter o mesmo resultado; Estou falando dos componentes Zend_Dojo e ZendX_JQuery que j possuem uma integrao muito madura com esses dois frameworks javascript que esto entre os mais utiliza-dos atualmente. O Zend_View provm mecanismos simples para a separao das camadas, neste caso, a camada de viso mas, caso voc j tenha uma boa experin-cia com a biblioteca Smarty voc pode configurar o Zend Framework para utilizar o Smarty na camada de viso e o mesmo conceito ns podemos aplicar para a camada de modelo, pois, se por algum motivo for necessrio usar o Doctrine que o mais conhecido, seno, o nico ORM escrito em PHP como camada de abstrao de banco de dados, voc pode configurar o Zend Framework para utiliz-lo como padro. Existe hoje um trabalho para tornar mais simples a integrao do Doctrine com o Zend Framework. No mercado de RIA, a Adobe imbatvel com o seu Adobe Flex., isso um fato e contra fatos no h argumentos, desta forma, a Adobe em parceria com a Zend implementou um componente chamado Zend_Amf que permite uma integrao simples e transpa-rente do Zend Framework com o Flex substituindo a camada de viso padro do framework pelas interfaces geradas pelo Adobe Flex.

    Consideraes Finais

    Este artigo tinha por objetivo demonstrar su-

    perficialmente as funcionalidades que o Zend Frame-work pode oferecer no desenvolvimento de aplicaes web. Espero que voc tenha aproveitado, e quem sabe, em uma oportunidade futura possamos publicar um tutorial prtico de como usar esta ferramenta. Um abrao e at a prxima. ?>

    Adler Medrado consultor em uma empresa privada com sede em Curitiba e es-critrios em outras unidades da federao; especializado em de-senvolvimento web, treinamento e segurana e tambm instru-tor de PHP de todos os nveis, com mais de 2000 horas dentro de sala de aula. O autor possui as certificaes Zend Certified Engi-neer - PHP 5 e Zend Certified Engineer Zend Framework sendo o primeiro latino-americano a certificar-se nesta ltima.

    Web Enterpriae com Zend Framework | CAPA

    Zend Framework foi projetado com base nas

    boas prticas de desenvolvimento

  • PHPReview | 4 edio | novembro-dezembro/2011 | www.phpreview.net 23

    Kohana FrameworkVoc tambm deveria us-lo!por Daniel Costa

    Desenvolvedores PHP geralmente j tem al-guma posio em relao a frameworks: ou so totalmente contra pois acham que eles diminuem performance, aumentam complexidade e amarraes etc; ou so a favor de algum especfico com o qual trabalham diariamente, e os demais so ignora-dos. Nesta edio venho apresentar o Kohana Frame-work, tanto para quem no usa nenhum - e voc ver que ele pode te ajudar muito daqui pra frente - quanto para quem j adepto de algum outro framework e ainda no descobriu uma opo bacana. O Kohana um framework baseado no j conhecido Code Igniter e nasceu pela necessidade de desenvolver usando PHP 5 totalmente orientado a objetos (o Code Igniter at bem pouco tempo funcio-nava tranquilamente em PHP 4, ento no era exata-mente OO). E foi pensando nisso que ele foi escrito, baseando-se em algumas excelentes idias do CI, como modularizao e hierarquia de componentes, porm aproveitando-se de tudo que o PHP 5 tem a oferecer. Alm disso, ele tambm j vem com uma srie de clas-ses auxiliares que resolvem a maioria dos problemas comuns no desenvolvimento web. Como se espera de qualquer bom framework atual, o Kohana utiliza arquitetura MVC (Model-View -Controller), que ajuda o desenvolvedor a escrever seus cdigos em 3 camadas distintas que so:

    - Models: As classes que manipulam fontes de dados e os dados propriamente dito (que fique bem claro que no estamos falando necessariamente de banco de dados, qualquer fonte de dados entra aqui). - Views: Os arquivos de interface com os usurios e os

    controles da aplicao no lado do cliente (nessa cama-da esto o HTML, CSS, JavaScript...). - Controllers: As classes que esto no comando da aplicao, so as responsveis por exibir as views e gerenciar de volta as requisies das views para os models, e deles de volta para as views (os guardas de trnsito do sis-tema).

    Mas porque usar o Kohana?

    PHP uma linguagem muito, muito fcil de se programar, este um dos motivos por ser to adotado em ambiente web. Esta facilidade e a curva de aprendi-zado tem atrado muitos desenvolvedores ao longo dos ltimos anos. Mas o PHP tem dois pequenos proble-mas. Muitos desenvolvedores experientes ainda resis-tem linguagem devido suas limitaes na Orientao a Objetos, e a quantidade de cdigo ruim que se en-contra por a enorme. Mas com o Kohana qualquer desenvolvedor PHP, do iniciante ao mais experiente, ter que escrever seus cdigos seguindo um mnimo de padro exigido pela arquitetura dele. O Kohana preenche esse abismo entre os ini-ciantes e designers que gostam do PHP por causa da facilidade, e os avanados que escrevem tudo orien-tado a objetos e nada menos que isso. O framework tambm estimula a adoo de engenharia de software e deixa isso mais prximo dos desenvolvedores PHP, por exemplo, com o uso de patterns como Singleton e Factory, pra citar apenas dois. O maior motivo porque voc deve comear a

  • PHPReview | 4 edio |novembro-dezembro/2011 | www.phpreview.net 24

    usar o Kohana esse: voc vai passar a desenvolver cdigo mais padronizado e seguir as melhores prticas de desenvolvimento, o que essencial quando voc tra-balha com equipes de iniciantes a avanados comparti-lhando e mantendo cdigo constantemente.

    Caractersticas do framework

    - Orientao a Objetos: um paradigma padro de mercado e o Koha-na ajuda a consolidar isso no PHP, o que te torna um desenvolvedor que segue os padres da indstria de software e apto para atuar com PHP tanto no mercado corporativo quanto no de aplicaes web.

    - Template: assim como outros vrios frameworks, tem um suporte a templates muito fcil de usar. De forma muito simples, basta voc criar uma view chamada template.php, colocar duas variveis - $title e $content - para indicar onde vo o ttulo e o contedo da pgina e voc j tem um template rodando. E d pra fazer muita coisa personalizada e bacana com templates no Kohana. - Internacionalizao: suporta de uma forma absurdamente simples a internacionalizao do seu sistema. Basicamente preciso criar um arquivo pra cada idioma, e definir no objeto de internacionalizaao qual idioma se quer usar. Mude essa configurao e ele adota o novo idioma au-tomaticamente. Tambm d pra aproveitar bastante essa funcionalidade. - ORM: do ingls Object-Relational Mapping, um con-ceito onde seu cdigo manipula diretamente as tabelas de um banco como objetos, enquanto todo o SQL gerado pra voc nos bastidores. No Kohana to simples de usar que basta que seus models estendam a classe ORM que passar a manipular todo seu banco de dados sem precisar escrever uma nica query. Ele robusto e muito estvel, no sinto nenhuma necessi-dade de acoplar um ORM externo nas minhas apli-caes.

    - MVC: outra sigla que voc t cansado de conhecer, mas bom reforar que com MVC voc mantm seu cdigo organizado, facilitando a vida da sua equipe. Voc pode pegar qualquer sistema feito com o Kohana e facilmente entender o que cada trecho de cdigo faz simplesmente porque tem um fluxo que precisa ser res-peitado: do controller pra uma view ou pra um model que por sua vez retorna pra uma view. - URLs amigveis: cada requisio aponta para um controller e um mtodo (as actions de um controller), no estilo site/controller/action/pa/ra/me/tros. Por exemplo, para chamar o controller blog que exibe o artigo nmero 3, a URL ser algo como [1], o que muito fcil para mapear a aplicao e timo para os motores de busca. - Libraries, Helpers e classes de terceiros: no pacote padro do Kohana voc j recebe inmeras classes com funcionalidades que a maioria das aplicaes web precisam. Por exemplo, para vali-dar qualquer coisa basta usar a classe Validate. H in-meras outras classes e descobr-las vai tornar sua vida de desenvolvedor muito mais produtiva.

    Iniciando de verdade, agora

    Pra comear a desenvolver com o Kohana to simples quanto os passos abaixo:

    1. Baixe o pacote estvel mais recente no site http://www.kohanaframework.org e descompacte o contedo no diretrio pblico do seu servidor.

    2. Configure a URL principal da aplicao de acordo com onde est hospedado (se na raz ou num subdi-retrio), no arquivo application/bootstrap.php na linha onde tem:

    Kohana::init(array(baseurl => /));

    3. Teste se sua instalao est OK acessando a URL

    Kohana Framework | CAPA

  • PHPReview | 4 edio | novembro-dezembro/2011 | www.phpreview.net 25

    onde voc descompactou o framework. Se aparecer algum alerta em vermelho voc precisa verificar os requisitos sugeridos, mas se tudo est OK voc vai ver uma tela de resultado verde e seu framework j est pronto pra ser usado!

    Desenvolvendo um simples formu-lrio com validao dos campos.

    Agora que sua instalao est pronta, va-mos fazer um simples formulrio de contato pra voc entender o fluxo do framework. Criaremos um template, um controller que estende esse template, e uma view para o formulrio.

    1. Template

    Assumimos que voc j tem um layout pro seu sistema, se no tiver, crie um layout simples s com as reas do ttulo e do contedo da pgina. Pronto? Pegue o HTML do seu layout e crie um arquivo chamado template.php dentro do diretrio application/views. Nesse arquivo, edite as reas do ttulo e do contedo colocando os cdigos abaixo:

    - para o ttulo (header, topo da pgina):

    - para o contedo:

    2. Controller

    uma classe simples em PHP com nome site.php situada no diretrio application/classes/controller.

    CAPA | Kohana Framework

    Os arquivos dos exemplos usados

    neste artigo podem ser baixados em:

    https://github.com/phpreview/edicao-4

    3. View

    um arquivo PHP que pode em-butir HTML, CSS e JavaScript. Vamos criar no diretrio application/views o arquivo contact.php com o cdigo html do formulrio. Quando voc acessa a sua URL [2], essa view chamada pelo mtodo contact do controller site e exibe o formulrio de con-tato, ao preencher e enviar os campos o mtodo do controlador ir agora validar de acordo com as regras definidas e exibir mensagem de erro quando necessrio.

    Concluso

    Voc pde ver como fcil desenvolver sistemas web com o Kohana, acredite: poss-vel manter sistemas de qualquer porte com ele. Voc tambm viu como ele facilita sua vida com as classes j disponveis como a Validate do nos-so exemplo. H muito mais para se descobrir, comece hoje mesmo! ?>

    Lista de URLs

    [1] http://seusite.com/blog/exibirArtigo/3[2] http://seuservidor/blog/index.php/site/contact

    Daniel CostaBrasileiro, 20 anos de praia + 5 de cerrado + morando em sampa desde julho/2008, analista desenvolvedor de pro-jetos web e trabalhando com TI e Telecom desde 2002. Bacharel em Cincia da Computao, ps-graduado em Engenharia de Software, tenho experincia em desen-volvimento e manuteno de sites e sistemas web h mais de 10 anos, com conhecimentos em HTML/XHTML, CSS, JavaScript/DOM/AJAX, PHP, ASP, Perl, JSP, MySQL, SQL Server e Oracle.

  • PHPReview | 4 edio | novembro-dezembro/2011 | www.phpreview.net 26

    Autenticao com CodeIgniterCriando uma biblioteca para controle de acesso por usurio aplicada a classes e mtodos com o CodeIgniter.por Ademir Cristiano Gabardo

    As aplicaes PHP esto se tornando mais complexas a cada dia. Aplicaes de uso comercial, acadmico e das mais diversas finalidades exigem um controle mais apurado de acesso. No CodeIgniter, obrigatoriamente, es-tamos sempre acessando uma classe e um m-todo de um controlador. Desta forma possvel mapear todas as possveis aes e/ou caminhos disponveis em uma aplicao e adicionar o con-trole de acesso aos mtodos que desejamos con-trolar. Desenvolvi uma biblioteca (librarie) para controlar o acesso dos usurios; o funcionamento o seguinte. Em uma tabela no banco de dados (sys_metodos) ficam guardados os nomes de classe e mtodos, mapeando todos os possveis caminhos, e em outra (sys_permissoes) ficam as ids dos usurios com os respectivos mtodos a que eles tm acesso. Esta segunda tabela est relacionada a tabela de cadastro de usurios (tb_usuarios) (Figura 1). Seria bastante trabalhoso ter que popu-lar a tabela de mtodos manualmente, ou criar um Admin para ela, desta forma, foi includa uma rotina na prpria biblioteca para que, quan-do um mtodo invocado por ela no for encon-trado na tabela sys_metodos, ele seja automat-icamente criado. Desta forma, na primeira vez em que um mtodo for acessado, ningum ter permisso de acesso, assim, ser necessrio par-ametrizar o sistema uma nica vez no primeiro acesso. Depois poder se construir uma rea de administrao para varrer a tabela de mtodos e adicionar ou remover as permisses dos usuri-os. O CodeIgniter prov uma maneira de

    checarmos onde estamos, ou seja, em que classe e em que mtodo. Para verificar o nome da classe utilize a seguinte linha de cdigo:

    $this->router->class

    E para recuperar o nome do mtodo utilize:

    $this->router->method

    Desta forma, podemos passar para a biblioteca o caminho completo de onde estamos da seguinte forma:

    $this->auth->check_logged( $this->router->class , $this->router->method);

    Sendo auth o nome da biblioteca e check_logged o mtodo que estamos acessando na biblioteca. Como esta biblioteca estar sendo acessada em muitas classes e mtodos preferv-el carregar no autoload para que ela esteja sem-pre disponvel em qualquer parte da aplicao. Para proteger um mtodo, basta incluir a linha de cdigo conforme mostrado na primeira linha do mtodo, da seguinte forma:

    Os arquivos dos exemplos usados

    neste artigo podem ser baixados em:

    https://github.com/phpreview/edicao-4

    Artigo

  • PHPReview | 4 edio | novembro-dezembro/2011 | www.phpreview.net 27

    Vejamos ento como fica o cdigo fonte da bi-blioteca. Salve o cdigo-fonte a seguir com o nome de arquivo auth.php na pasta system/application/libraries: Note que a biblioteca se encarrega de inserir os dados de mtodos e classes que ainda no estejam cadastrados na tabela sys_metodos. Quando um usurio tentar acessar uma rea do website ou sistema que ele no tenha privilgios, ele ser redirecionado para uma pgina especfica.

    redirect( base_url().home/sempermissao, refresh );

    E quando ele no estiver logado ser redirecio-nado para a pgina de login.

    redirect( base_url().home/login,refresh );

    Inclu tambm um mtodo na biblioteca para checar se o usurio logado no sistema tem permisso para acessar um determinado mtodo de uma classe chamado check_menu. Para utilizar a autenticao no menu, basta che-car se o usurio tem permisso para o caminho. Isto pode ser feito diretamente na view do menu com o cdigo da Listagem 1. Observe tambm que na tabela sys_metodos existe um campo chamado privado que tem por ob-jetivo liberar o acesso de mtodos que estejam prote-gidos. Caso voc construa um sistema de admin para gerenciar esta tabela, quando um mtodo est com o campo privado definido como 1, significa que ele est com seu acesso restrito somente a usurios com per-misso de acesso, e quando est ajustado como 0, que est liberado como mtodo pblico. Outro detalhe desta tabela um apelido, ele cadastrado num primeiro momento como classe/mtodo, mas poder ser alterado para qualquer nome amigvel e compreensivel para os usurios. Como por exemplo: Home/login poderia ser substitudo por Acesso a tela de login. Para autenticar um usurio no sistema, crie um formulrio com os campos: usuario, cnpj e senha e aponte para uma classe de sua preferncia (eu uso a classe de nome home) com os seguintes mtodos:

    Com isso, conclumos nosso sistema de autenti-cao com controle de nvel de acesso por classe e mtodo. No exatamente a coisa mais simples do mundo, mas tam-bm no a mais complicada. importante resaltar que estou guardando as sesses do codeIgniter no banco de da-dos. O cadastro de usurio e as funes de administrao das permisses de usurios na tabela de permisso devem ser construdas separadamente. Implementaes futuras esto previstas, e um inconveniente deste sistema que quando voc altera um nome de classe ou mtodo, necessrio ajustar a tabela sys_metodos. isso a. Espero ter ajudado a entender um pouco mais sobre o CodeIgniter e como fazer autenti-cao de usurio. At mais! ?>

    Listagem 1

    Ademir Gabardo Autor, Professor e Instrutor, Desenvolvedor web, entusiasta PHP e de software livre. Atualmente desenvolvendo sistemas baseados em PHP e MySQL com apoio em frameworks MVC e orientao a objetos. Tambm ministra cursos nas reas de Software livre, BrOffice.org e plataforma MS Office. Objetivando lecionar discipli-nas correlatas em curso superior e continuar desenvolvendo siste-mas de Internet e Intranet.

    ARTIGO | Autenticao com CodeIgniter

    Figura 1Estrutura de tabela.

  • PHPReview | 4 edio | novembro-dezembro/2011 | www.phpreview.net 28

    E-mail fcil com PHP MailerAprenda a enviar e-mail com PHPMailer e Smarty templatespor Beto Lima

    Ol para todos, com imenso prazer que estou aqui pra dar minha contribuio.O PHPMailer uma classe para envio de e-mails atravs do PHP via conexo SMTP ou POP3. Ele distribudo de acordo com o GNU Lesser General Public License (LGPL), muito usada em sistemas e sites por a a fora. Uma das vantagens de usar o phpmailer poder enviar e-mails autenticados por smtp, j que a funo mail interna do php no possvel. Bom, vamos direto ao assunto: para mais detalhes sobre o PHPMailer visite o site do projeto (http://phpmailer.worxware.com/). Primeiro temos uma funo que defini com o nome de envia_email. Esta funo in-clui uma classe de template que por vez estende a classe phpmailer. A codificao pode ser vista no re-positrio no arquivo funcao.php. Para que o e-mail seja enviado corre-tamente, criei uma classe chamada Template-Mail que estende a classe do PHPMailer e contm todos os parmetros para o envio do e-mail, como servidor SMTP, usurio, senha e outros. Esta classe pode ser vista no arquivo TemplateMail.class.php. Uma vez que tenho esta classe definida

    e a funo de envio de e-mail, vamos criar agora o nosso arquivo de entrada index.php que se parece com a Listagem 1 O arquivo de template vai ser algo mais ou menos assim:

    Ol %%Nome%%Voc est recebendo email de teste na caixa %%Email%%.

    O que estiver dentro daqueles sinais de porcentagens duplas sero substitudos pelo seu nome e seu email. At a prxima.

    Roberto S. Lima natural de Esteio RS e trabalha com programao web h 4 anos, usando linguagens HTML, CSS, JAVASCRIPT, PHP, POST-GRESQL, MYSQL. Atualmente, trabalho em projetos de Sistemas Web usando HTML5, PHP5, YII e PostgreSQL 9.

    Os arquivos dos exemplos usados

    neste artigo podem ser baixados em:

    https://github.com/phpreview/edicao-4

    Listagem 1

    Mo na Massa

  • PHPReview | 4 edio | novembro-dezembro/2011 | www.phpreview.net 29

    Gerenciamento de cdigo-fonteVoc gerencia o seu cdigo-fonte? Se no faz, ento voc pode conhecer os projetos Google Code e o Github. Atravs destes dois servidores voc poder manter o cdigo fonte da sua aplicao guardado em um servidor independente. Assim, as chances de voc perder um trabalho quase nula.

    User GroupsUma forma muito rpida de receber suporte para as suas dvidas fazer parte dos vrios grupos de usurios espalhados por todo o mundo. Existem grupos relacionados a linguagens de programao, como PHP, .Net, grupos de sistemas especficos, como Smarty, Jquery, Ajax entre outros. Voc pode procurar no Google Groups quanto no Yahoo grupos.

    HTML5Se voc no gosta de mexer com HTML ento est na hora de aprender. O HTML 5 est a e quem conhece a fundo o seu funcion-amento est anos-luz a frente dos concorrentes. Aproveite, estude e saia na frente na hora de buscar uma posio melhor no mercado.

    SlideshareEste site rene apresentaes de palestras de todos os grandes eventos, congressos e foruns do mundo. possvel, por exemplo, ver todas as plestras do ZendCon 2010, ou das palestras do PHP Conference BR 2010 no mesmo site. A busca pode ser feita por tre-cho da palestra ou por tags colocadas pelo prprio palestrante.

    HTML5 a linguagem de marcao que amplia de forma sur-preendente as fun-cionalidades da HTML, alterando de maneira significativa como voc desenvolve para a web. Trata-se da mais extensa especificao

    para a HTML focada em criar funcionalidades para desenvolvimento no s de sites, mas tambm de aplicaes de internet rica (RIA). A linguagem possibilita criar um cdigo to-talmente semntico empregando os novos elementos da linguagem.

    Editora: NovatecPreo: R$ 73,00Comprar Online

    Estudo prtico e didti-co fornecido neste livro, que traz os prin-cipais conceitos sobre manipulao de dados com a linguagem SQL (T-SQL), por meio de exemplos fceis, expli-caes diretas e exer-ccios para fixao do

    contedo. Apresenta uma breve introduo ao banco de dados relacional, comandos DDL (estrutura do BD) e DML para preench-er tabelas, views (vises), comandos de con-sulta e outros relacionados programao de scripts e detalhes sobre instalao.Para a execuo dos scripts abordados, foi utilizado o gerenciador de banco de dados relacional Microsoft SQL Server 2008 R2 Ex-press.

    Editora: ricaPreo: R$ 56,00Comprar Online

    Dicas

    envie sua [email protected]

    Livros

  • Humor

    http://www.vidadeprogramador.com.br