Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Jason Coleman
Novatec
Authorized Portuguese translation of the English edition of Building Web Apps with Wordpress, ISBN
9781449364076 2014 Brian Messenlehner, Jason Coleman. This translation is published and sold
by permission of O'Reilly Media, Inc., which owns or controls all rights to publish and sell the same.
Traduo em portugus autorizada da edio em ingls da obra Building Web Apps with Wordpress, ISBN
9781449364076 2014 Brian Messenlehner, Jason Coleman Esta traduo publicada e vendida com
a permisso da O'Reilly Media, Inc., detentora de todos os direitos para publicao e venda desta obra.
Novatec Editora Ltda. 2014.
Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. proibida a reproduo desta
obra, mesmo parcial, por qualquer processo, sem prvia autorizao, por escrito, do autor e da Editora.
Editor: Rubens Prates
Traduo: Lcia A. Kinoshita
Reviso gramatical: Marta Almeida de S
Editorao eletrnica: Carolina Kuwabata
ISBN: 978-85-7522-377-2 IG20141008
Histrico de impresses:
Outubro/2014
Primeira edio
captulo 1
Vamos comear definindo o que uma aplicao web e como ela difere de um
site ou de um web service.
Na verdade, este livro lhe ajudar a criar de tudo com o WordPress: sites, temas,
plugins, web services e aplicaes web. Optamos por focar em aplicaes web
porque elas podem ser vistas como supersites que fazem uso de todas as tcnicas
que sero discutidas.
H muitas pessoas que acreditam que o WordPress no eficaz o suficiente ou
que no foi feito para criar aplicaes web; ento trataremos desse assunto mais
adiante. Criamos aplicaes web com o WordPress h muitos anos e sabemos
que absolutamente possvel criar aplicaes escalveis usando o WordPress.
Neste captulo, discutiremos por que o WordPress um timo framework para a
criao de aplicaes web. Tambm discutiremos algumas situaes em que usar
o WordPress no ser a melhor maneira de criar sua aplicao web.
O que um site?
Voc sabe o que um site. Um site um conjunto de uma ou mais pginas web
contendo informaes e que acessado por meio de um navegador web.
24
25
26
27
28
29
Plugins
Existem mais de 27 mil plugins gratuitos no repositrio do WordPress
(http://wordpress.org/plugins/). H muito mais plugins, tanto gratuitos quanto pagos,
em diversos sites pela Internet. Se voc tiver uma ideia para fazer uma extenso
em seu site, h uma boa chance de que haver um plugin para isso, que far voc
economizar tempo e dinheiro.
Existem alguns plugins indispensveis que acabaremos usando em quase todos
os sites e nas aplicaes web que criarmos.
Na maioria dos sites que criar, voc vai querer colocar a sada em cache para uma
navegao mais rpida, usar ferramenta como o Google Analytics para monitorar
as visitas, criar mapas do site e ajustar as configuraes da pgina com vistas ao
SEO (Seach Engine Optimization, ou Otimizao para Mecanismos de Pesquisa),
juntamente com vrias outras tarefas comuns.
H muitos plugins com timos suportes para todas essas funes. Sugerimos
nossos favoritos ao longo deste livro; voc pode encontrar uma lista deles no site
do livro (http://bwawwp.com/plugins/).
Flexibilidade importante
O WordPress um framework maduro, capaz de realizar muitas tarefas. Alm do
mais, ele foi implementado com base nas tecnologias PHP, JavaScript e MySQL,
portanto tudo o que voc puder criar usando PHP/MySQL (ou seja, praticamente
qualquer coisa) pode ser facilmente encaixado em sua aplicao WordPress.
O WordPress e o PHP/MySQL em geral no so perfeitos para todas as tarefas,
porm so bastante adequados para uma ampla variedade delas. Ter uma plataforma que ir crescer juntamente com seu negcio pode permitir que voc entre
em ao rapidamente.
Por exemplo, aqui est uma progresso tpica do site de uma empresa startup
enxuta que utiliza o WordPress:
1. Anuncie sua startup por meio de um site de uma pgina.
2. Adicione um formulrio para coletar endereos de email.
3. Acrescente um blog.
4. Foque em SEO e otimize todo o contedo.
5. Envie postagens de blog para o Twitter e para o Facebook.
6. Acrescente fruns.
30
7. Utilize o plugin Paid Memberships Pro para permitir que os clientes paguem
pelo acesso.
8. Adicione formulrios personalizados, ferramentas e recursos aplicao
para os membros pagantes.
9. Atualize a UI usando AJAX.
10. Ajuste o site e o servidor para que possam ser escalados.
11. Faa a localizao do site ou da aplicao para diferentes pases e idiomas.
12. Crie wrappers iOS e Android para a aplicao.
O aspecto interessante em relao a percorrer esse caminho que, a cada passo,
voc ter o mesmo banco de dados de usurios e estar usando a mesma plataforma de desenvolvimento.
Custo
O WordPress gratuito. O PHP gratuito. O MySQL gratuito. A maioria dos
plugins gratuita. A hospedagem paga. Porm, conforme o tamanho de sua aplicao web e o volume de trfego obtido, esse custo pode ser relativamente baixo. Se
voc precisar de funcionalidades personalizadas que no se encontrem em nenhum
plugin existente, pode ser que seja necessrio pagar um desenvolvedor para cri-las.
Ou, se voc mesmo for um desenvolvedor, haver o custo de seu tempo.
31
Aplicao .NET
1. IIS Pago por licena
2. Servidor SQL Pago por licena
3. Desenvolvedores .NET normalmente custam mais que desenvolvedores PHP.
4. preciso pagar para criar um esquema de banco de dados slido.
5. preciso pagar para criar funes auxiliares para transferir dados de e para
seu banco de dados.
6. preciso pagar para criar um processo de login para seus usurios.
7. preciso pagar para desenvolver qualquer funcionalidade personalizada
necessria.
8. Segurana! Voc no tem ideia de como sua aplicao se portar na Internet,
mas ir pagar para tentar torn-la o mais seguro possvel.
Aplicao WordPress
1. Apache $0
2. MySQL $0
3. Desenvolvedores PHP normalmente custam menos que desenvolvedores
.NET e so muito mais simpticos! Isso um fato.
4. O WordPress tem um esquema de banco de dados comprovado e pronto
para ser usado.
5. O WordPress tem inmeras funes auxiliares para interagir com o banco
de dados e, na maioria dos casos, voc pode utilizar CPTs e taxonomias
para armazenar e classificar seus dados sem usar muito cdigo.
6. O WordPress j tem um processo slido de login.
7. Voc pode obter a maior parte das funcionalidades necessrias a partir de
plugins gratuitos de terceiros. Se algum desenvolvimento personalizado for
necessrio, ser apenas para funcionalidades especficas que ainda no existam.
8. Segurana! O WordPress executado em aproximadamente 20% de todos os
sites da Internet. Voc pode apostar que ele uma das plataformas mais seguras que existem (no crie sua senha de administrador como password).
32
Em suma, voc pode criar uma aplicao de qualquer tamanho com o WordPress,
e em nove entre dez vezes ela custar menos e exigir menos tempo para ser desenvolvida quando comparada a qualquer outra plataforma.
Afirmaes como essa eram verdadeiras alguns anos atrs, porm o WordPress,
desde ento, implementou uma funcionalidade robusta de CMS, tornando-o til
para outros sites focados em contedo. O WordPress atualmente o CMS mais
popular em uso, com mais de 50% de participao no mercado.4
A figura 1.1 mostra um slide da apresentao State of WordPress (Situao do
WordPress) de Matt Mullenweg, feita no WordCamp em So Francisco em 2013. A
pirmide invertida esquerda representa o WordPress aproximadamente no ano
de 2006, com a maior parte do cdigo dedicada aplicao de blog e um pouco de
cdigo de CMS e de plataforma para sustent-lo. A pirmide direita representa
a situao atual da plataforma WordPress, em que a maior parte do cdigo est
na prpria plataforma, com uma camada de CMS sobre ela e a aplicao de blog
executada sobre a camada de CMS. O WordPress uma plataforma muito mais
estvel em relao ao que era alguns anos atrs.
Blog
CMS
Plataforma
Blog
CMS
Plataforma
Figura 1.1 Diagramas da apresentao State of WordPress (Situao do WordPress) de
Matt Mullenweg em 2013. O WordPress nem sempre foi to estvel.
4 O W3Tech (http://bit.ly/w3techs) faz pesquisas frequentes sobre o uso de diferentes sistemas de
gerenciamento de contedo.
33
A API Custom Post Types pode ser usada para ajustar sua instalao do WordPress
de modo a suportar outros tipos de contedo alm de postagens de blog ou pginas. Esse assunto ser discutido em detalhes no captulo 5.
O WordPress serve apenas para sites de contedo. Semelhante turma do apenas para
blogs, algumas pessoas diro que o WordPress serve somente para sites de contedo.
O WordPress a opo evidente para qualquer site relacionado a contedo. Entretanto, como veremos em detalhes neste mesmo livro, o WordPress um timo
framework para criar aplicaes web mais interativas tambm.
O principal recurso que permite ao WordPress ser usado como um framework a
API de plugins, que permite que voc se atrele ao modo de funcionamento default
do WordPress e faa alteraes. Voc no s pode usar os milhares de plugins
disponveis no repositrio do WordPress e em outros locais na Internet como
tambm pode usar a API de plugins para criar seus prprios plugins personalizados e fazer o WordPress realizar tudo o que for possvel usando PHP/MySQL.
O WordPress no escalvel. Algumas pessoas apontaro para uma instalao
default do WordPress sendo executada em um provedor de hospedagem simples,
observaro como o site se torna lento ou provoca falhas quando h muita carga
e concluiro que o WordPress no escalvel.
Por um lado, como o WordPress muito popular, ele ser alvo de hackers que
procuram explorar falhas de segurana. E, pelo fato de o cdigo ser aberto, ser
mais fcil descobrir essas falhas de segurana.
5 Top sites do Quantcast (http://www.quantcast.com/top-sites) e do Alexa (http://www.alexa.com/topsites).
34
Por outro lado, como o WordPress tem cdigo aberto, voc ouvir falar dessas
falhas de segurana quando elas se tornarem pblicas e, provavelmente, haver
outra pessoa corrigindo-as para voc.
Ns nos sentimos mais seguros sabendo que h muitas pessoas por a tentando
explorar as falhas de segurana do WordPress e a mesma quantidade delas trabalhando para tornar o WordPress mais seguro contra essas exploraes de falha. No
acreditamos em segurana por meio de obscuridade, exceto como uma medida
adicional. Preferimos que as brechas de segurana em nosso software apaream
explicitamente em vez de passarem despercebidas at o pior momento possvel.
No captulo 8 discutiremos os problemas de segurana com mais detalhes, incluindo uma lista das melhores prticas para tornar sua instalao do WordPress
mais robusta e mostrando como codificar de forma segura.
Os plugins do WordPress so um lixo. A API de plugin do WordPress e os milhares de
plugins que foram desenvolvidos e que a utilizam so o segredo da receita e, em
nossa opinio, o motivo principal pelo qual o WordPress se tornou to popular
e to bem-sucedido como plataforma para sites.
35
36
Em geral, atualizar seu tema ou trocar de plugins em um site WordPress ser mais
rpido que desenvolver recursos a partir do zero em outra plataforma.
No entanto, nos casos em que a otimizao e o desempenho forem mais importantes do que ser capaz de atualizar rapidamente a aplicao, programar uma aplicao nativa ou programar diretamente em PHP ser uma opo mais adequada.
Por exemplo, se sua aplicao for realizar uma nica tarefa simples (por exemplo,
apenas apresentar o horrio corrente), voc vai querer cri-la em um nvel mais
baixo. De modo semelhante, se voc tiver os recursos que o Facebook tem, poder
se dar o luxo de criar tudo manualmente e usar compiladores personalizados de
PHP para C para ganhar alguns milissegundos nos tempos de carga de seu site.
37
Blog
CMS
Plataforma
Figure 1.2 A plataforma WordPress.
38
Manipula
VISO
CONTROLADOR
Usa
USURIO
39
Modelos = plugins
Em um framework MVC, o cdigo que armazena as estruturas de dados subjacentes e a lgica do negcio encontra-se nos modelos. nesse local que os
programadores gastaro a maior parte de seu tempo.
No WordPress, os plugins so os locais apropriados para armazenar novas estruturas de dados, lgicas de negcio complexas e definies de tipos de post
personalizados.
Essa comparao no se sustenta de acordo com alguns aspectos. Em primeiro
lugar, muitos plugins adicionam funcionalidades semelhantes s de viso e contm
elementos de design. Tome qualquer plugin que adicione um widget a ser usado
em suas pginas. Em segundo lugar, os formulrios e outros componentes de
design usados no painel do WordPress em geral so tratados tambm por plugins.
Uma maneira de fazer a separao das responsabilidades de forma mais clara
ao adicionar componentes associados viso aos seus plugins do WordPress
consiste em criar uma pasta templates ou pages e colocar a o seu cdigo
de frontend. Uma prtica comum consiste em permitir que os templates sobrescrevam o template usado pelo plugin. Por exemplo, ao usar o WordPress
com o plugin Paid Memberships Pro, voc pode colocar uma pasta chamada
paid-memberships-pro/pages em seu tema ativo para sobrescrever os templates
default da pgina.6
Vises = temas
Em um framework MVC, o cdigo para exibir os dados ao usurio est implementado nas vises. nesse local que os designers gastaro a maior parte de seu tempo.
No WordPress, os temas so os locais apropriados para armazenar o cdigo e a
lgica dos templates.
Novamente, a comparao aqui no tem um mapeamento de um para um, porm
vises = temas um bom ponto de partida.
6 Essa tcnica para sobrescrever os templates do plugin ser discutida no captulo 4.
40
41
O que o SchoolPress?
O SchoolPress uma aplicao web que facilita aos professores interagir com
seus alunos fora da sala de aula. Os professores podem criar classes e convidar
seus alunos para participarem delas. Cada classe tem um frum para discusses
ad hoc, alm de um sistema mais estruturado para os professores postarem lies
de casa (assignments) e os alunos entregarem suas tarefas.
A aplicao funcional pode ser encontrada no site do SchoolPress ( http://
schoolpress.me). O cdigo-fonte do SchoolPress est disponvel no GitHub
(https://github.com/bwawwp/schoolpress).
42
43
44
45