SlideShare uma empresa Scribd logo
WordPress para DesenvolvedoresWordPress para Desenvolvedores
Uso do WP como Framework de DesenvolvimentoUso do WP como Framework de Desenvolvimento
George Mendonça – @george_mendonca
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 2
O WordPress
● Quem sou eu
– Analista de sistemas (PTV Tecnologia)
– Coordenador adjunto dos cursos TI da Faculdade JK de Tecnologia (FJK) em Santa
Maria-DF
– Professor das disciplinas de Orientação a objetos, Processo de Desenvolvimento de
Software e Software Livre nos campi de Santa Maria e Taguatinga, DF, na FJK
– Membro: FGSL, FLISOLDF, FLISOLGO, GoWordPress, WordPress Brasília, DFPress,
GOPHP, PHPDF, WP Brasil, #GRITA...
● Objetivo deste trabalho (2015 – 2016)
– 1° ano: Pesquisa do desenvolvimento de apliciações web com WordPress
– 2° ano: Continuidade da pesquisa com implementações práticas de alto nível
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 3
Índice
● O WordPress
● Frameworks de Desenvolvimento
● WordPress para Desenvolvedores
● WordPress como Framework de Desenvolvimento
● Exemplo um plugin simples de cadastro de escolas
● Schoolpress
● Comunidades
● Considerações Finais
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 4
O WordPress
● O que é o WordPress?
– CMS (Gerenciador de Conteúdo) – Blogs, sites e sistemas (porque não?)
● O mais popular do mundo!
– w3techs CMS Overview - Usage of content management systems for
websites
07/07/2015
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 5
O WordPress
● WordPress?
– Curva de aprendizado pequena (fácil)
– Foco na simplicidade sempre
– Responsivo
– Plugins (aplicativos, extensões)
– Themes (Temas)
– Fora da caixa (gerenciamento simples)
– Limpo, leve e econômico
– Software Livre: (licença GPLv2 ou superior)
– Desenvolvido com software livre! (PHP/MySQL)
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 6
O WordPress
● Repositório de plugins – O maior entre os CMSs
– https://wordpress.org/plugins/
● Repositório de temas – Inúmeros gratuitos e premium
– https://wordpress.org/themes/
● Social Network – Rede Social WP: BuddyPress
– https://buddypress.org/
● Fórum - bbPress
– https://bbpress.org/
● Documentação Completa WordPress – https://codex.wordpress.org
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 7
Frameworks de Desenvolvimento
● Conjunto de classes que colaboram para realizar uma
responsabilidade para um domínio de um subsistema da
aplicação
● Conjunto de padrões de projeto (PP) de desenvolvimento de
software (funcionalidades em comum) para prover uma
funcionalidade genérica em uma linguagem específica
● Dita o fluxo de controle (inversão de controle). Não é um PP!
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 8
Frameworks de Desenvolvimento
● Visualizando
BLIBLIOTECA FRAMEWORK
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 9
Frameworks de Desenvolvimento
● Vantagens
– Automatização da construção da solução
– Eficiência na solução de problemas, reutilização, extensibilidade e
otimização de recursos
– Modularização e Componentização de software
– Detecção de erros
– Concentração na abstração das soluções e regras de negócio a serem
implementadas
– Inversão de controle – Fluxo e execução no controle do framework
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 10
Frameworks de Desenvolvimento
● Desvantagens
– Curva de aprendizado é maior
– É necessário dominar a estrutura e/ou arquitetura proposta pelo
Framework adotado
– Estrutura e arquiteturas complexas, porém a maioria é abstraída
– Exige um nível de experiência em desenvolvimento de software
– É necessário "entrar na caixa"!
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 11
WordPress para Desenvolvedores
● RECURSOS: APIs do WordPress
– Possui abundantes interfaces de programação em sua documentação:
● Dashboard Widgets API, Database API, HTTP API, File Header API,
Filesystem API, Metadata API, Options API, Plugin API, Quicktags API,
Rewrite API, Settings API, Shortcode API, Theme Modification API, Theme
Customization API, Transients API, Widgets API, XML-RPC WordPress API
● Veja documetnação completa de APIs em codex.wordpress.org/WordPress_APIs
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 12
WordPress para Desenvolvedores
● RECURSOS: Plugins
– Ferramentas ou aplicações para estender a funcionalidade do
WordPress
– O núcleo do WordPress foi desenvolvido para maximizar a flexibilidade
no configuração/desenvolvimento da aplicação
– Plugins do WP são fantásticos! Elementos de frente no sucesso do WP!
– Oferecem funções personalizadas e funcionalidades que permitem que
cada usuário possa adequar seu site à sua necessidade
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 13
WordPress para Desenvolvedores
● RECURSOS: Plugins
– São distriguídos com software livre (GPLv2) – Siga as regras da comunidade!
– Diretório de Plugins
● 38.648 plugins com 970.272.612 downloads no repositório em 07/07/2015
● Contém todos os plugins desenvolvidos pela comunidade e outros que não estão
no repositório (gratuitos e premium)
●
Link: https://wordpress.org/plugins/
– Handbook: https://developer.wordpress.org/plugins/
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 14
WordPress para Desenvolvedores
● RECURSOS: Temas
– Coleção de arquivos que trabalham juntos para produzir uma interface
gráfica com um design unificador ("Skin" ou tema do seu site)
– Direcionam o FrontEnd da aplicação
– Somente o design de seu site é alterado
– Todos os dados ficam intactos no banco de dados
– Os Temas WordPress oferecem total controle sobre a aparência e a
apresentação do conteúdo do seu site
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 15
WordPress para Desenvolvedores
● RECURSOS: Temas
– Hierarquia de Modelos WordPress
● http://codex.wordpress.org/pt-br:Hierarquia_de_Modelos_WordPress
– Desenvolvimento de Temas
● https://codex.wordpress.org/Theme_Development
– Handbook (em breve)
● https://make.wordpress.org/docs/theme-developer-handbook/
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 16
WordPress para Desenvolvedores
● RECURSOS: Widgets
– Widgets em WordPress permite que você adicione conteúdo e recursos
nas áreas "widgetizadas" de seu tema
– O principal é a barra lateral (sidebar)
– No entanto, estas áreas de widgets prontos podem estar no cabeçalho,
rodapé, barra lateral ou basicamente qualquer outra área em seu tema
– Isso dependerá do tema em uso
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 17
WordPress como Framework de
Desenvolvimento
● Site
– Páginas web contendo infos acessadas por meio de um navegador web
● Aplicação
– Software aplicativo, app, projetado para realizar tarefas específicas
● Aplicação Web
– Aplicação por meio de uma app Web
● WordPress (app web com inúmeros recursos prontos)
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 18
WordPress como Framework de
Desenvolvimento
● WP como CMS
– Blog, site, e-commerce, etc
● WP como Aplicação Web
– Utilização das APIs WordPress para desenvolver aplicações web
● WP como Framework de Desenvolvimento
– Utilização das APIs WordPress utilizando recursos do CMS e padrões de projeto
– Diversas formas de implemetnação, técnicas e arquiteturas
● Exemplo: Modelo MVC
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 19
WordPress como Framework de
Desenvolvimento
● Situação do WP
– 2006
– 2013 em diante
● Por volta de 2006...
● Atualidade...
Figure 1-1. Diagrams from Matt Mullenweg’s“State of WordPress”
presentation in 2013. WordPress wasn’t always so stable.
safaribooksonline.com
Apresentado por Matt Mullenweg
no WordCamp São Francisco 2013
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 20
WordPress como Framework de
Desenvolvimento
● CMSs comumente são descartados em discussões sobre
frameworks
● Mas... o WordPress particularmente é excelente para a proposta
de um framework: criar aplicações rapidamente
● Em instantes podemos criar uma aplicação com gestão de
usuários, sessões e conteúdo por meio do painel do WordPress
● Para as estruturas complexas: APIs, objetos e funções!
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 21
WordPress como Framework de
Desenvolvimento
● WP x MVC
– MVC (Model, View and Controller) é uma arquitetura de software para
para desenvolvimento com objetivo de separar o moldelo (regras de
negócio e transações de banco de dados), das camadas de visão
(visual) e controle (fluxo)
● Desenvolvida por um conjunto de padrões
● Utilização de códido
● Separação de responsabilidades
Figure 1-3. How MVC works
safaribooksonline.com
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 22
WordPress como Framework de
Desenvolvimento
● WP x MVC
– O núcleo do WP não suporta MVC oficialmente
– Amarrar MVC ao WP pode causar problemas, devido a esta natureza
– No entando pode-se adequar à estrutura WP para atender o que de
melhos esta arquitetura propõe, enquanto o core não suporta MVC
– No livro Building Web Apps with WordPress, Brian Messenlehner e
Jason Coleman propõem
● [Modelos = Plugins] [Visões = Temas] [Controladores = Carregador de Templates]
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 23
WordPress como Framework de
Desenvolvimento
● WP x MVC
– Obviamente que as comparações não se sustentam ao MVC
– No entanto, um mapeamento do processo MVC pode ajudar os
programadores WordPress a desenvolver aplicações que usufruem dos
vários benefícios deste padrão:
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 24
WordPress como Framework de
Desenvolvimento
● WP x MVC
– [Modelos = Plugins]
● Nos plugins programadores WP vão desenvolver estruturas de dados, lógicas de
negócio e definição de tipos de post (model)
– [Visões = Templates]
● Temas são apropriados para armazenar código e lógica de templates (view)
– [Controladores = Carregadores de Templates]:
● Arquivos index.php e Hierarquia de Templates (controller)
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 25
WordPress como Framework de
Desenvolvimento
● WP x MVC
– Obstáculos
● Model
– Diversos plugins implementam comportamentos semelhantes às de visão
– Formulários e componentes de visão também são tratados no painel do WP e geralmente
tratados por plugins
– Saída: Criar uma pasta template ou pages para o código frontend
● View
– No WP os templates não tem um mapeamento um para um
– Saída: Mesmo assim é um excelente ponto de partida
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 26
WordPress como Framework de
Desenvolvimento
● WP x MVC
– Importante
● Todo o código da aplicação pode estar em um só tema ou plugin
● Na prática reserva-se temas para a camada de visão (front-end) e os plugins
para a camada de modelo e controladores (backend)
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 27
WordPress como Framework de
Desenvolvimento
● WP x MVC
– Quando desenvolver Aplicações?
● Quando necessita de uma aplicação completa, utilizando a instalação do WP,
com acesso total ao site, temas e plugins instalados
● Diretrizes
– Plugin principal
– Funcionalidades modulares (outros projetos, reutilização) em plugin separado
– Jamais altere o core
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 28
WordPress como Framework de
Desenvolvimento
● WP x MVC
– Quando desenvolver Plugins?
● Quando se necessita criar aplicações modulares para reutilização
● Será utilizado por outros sites
● Um bom momento para se produzir um software livre ;)
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 29
WordPress como Framework de
Desenvolvimento
● WP x MVC
– Quando desenvolver Temas?
● Seguindo o raciocício dos plugins modulares, desenvolve-se temas quando o
objetivo é criar um tema a ser distribuíto
● Que de penda de tipos de post personalizados
● Podendo anda, por dependência do tema, transferir códigos de plugins para seu
tema
● Excelente oportunidade para se desenvolver software livre também
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 30
Exemplo um plugin simples de cadastro de
escolas
● Plugin didático escrito por mim no grupo GoWordPress no
GitLab:
– Escola (CRUDESCOLAS)
● CRUD
– Inserir
– Listar
– Atualizar
– Remover
● Link: https://gitlab.com/go-wordpress/gowp-plugins/tree/master/crudescolas
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 31
Schoolpress
● Aplicação completa com a estrutura MVC adaptada ao WordPress,
proposta pelos autores do livro Building Web Apps with
WordPress:
– https://github.com/bwawwp/schoolpress
– Exemplo: http://schoolpress.me/
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 32
Comunidades WordPress
● Comunidades BR (fóruns, tutoriais, tradução, eventos, etc.)
– Comunidade WordPress BR – http://wp-brasil.org/ - Face
– WordPress.org Brasil – https://br.wordpress.org/
– Go WordPress – Comunidade WordPress de Goiás
● http://gowordpress.org/
– WP Brasília (página comunidade) e DF Press (grupo) – Comunidade
WordPress do Distrito Federal
● https://www.facebook.com/WordPressBrasilia e https://www.facebook.com/groups/dfpress
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 33
Considerações Finais
● Ficou evidente que o WordPress pode ser facilmente utilizado
como um ferramenta poderosa para o desenvolvimento de
aplicações web
● Seja como um blog, um site, aplicação comum ou mesmo como
um framework de desenvolvimento
PERGUNTAS?
08/07/2015
WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16
George Mendonça 34
Considerações Finais
O trabalho WordPress para Desenvolvedores - Uso do WP
como Framework de Desenvolvimento de George Mendonça é
um REA e está licenciado com uma Licença
Creative Commons - Atribuição-NãoComercial-CompartilhaIgual 4.0 Internacional
Utilize e copie o que tem de melhor na web com sabedoria, mantendo
referências e ajudando ao próximo.
Deus os abençoe!

Mais conteúdo relacionado

ODP
Criando Projetos de Software Livre no meio Acadêmico
PDF
Desenvolvimento de uma ferramenta para auxiliar a construção de plugins
ODP
Software livre, história, paradigmas, comunidade e colaboração
PDF
Software livre para leigos - VII SIECOMP
PDF
Pentaho: Inteligência de Negócios utilizando Software Livre - FliSOL São Paul...
PDF
Desenvolvendo websites com Drupal - IV ENSOL
PDF
Software livre pra quem não é da área
PDF
Palestra Drupal - Campus Party 2014
Criando Projetos de Software Livre no meio Acadêmico
Desenvolvimento de uma ferramenta para auxiliar a construção de plugins
Software livre, história, paradigmas, comunidade e colaboração
Software livre para leigos - VII SIECOMP
Pentaho: Inteligência de Negócios utilizando Software Livre - FliSOL São Paul...
Desenvolvendo websites com Drupal - IV ENSOL
Software livre pra quem não é da área
Palestra Drupal - Campus Party 2014

Destaque (15)

PPTX
Apresentação Fumo
DOCX
Como estudar melhor
DOC
Núria costa act5
PDF
Dnal 1
PPS
Cristo E NóS.Jrcordeiro.
PDF
taller de informatica y pedagogia de los idiomas extrangeros
PDF
Waddell House CAD
PPT
Isla De Flores
PPT
Destiny's work
PDF
Accounting Webinar
PPTX
IE express yourself applicant Ruslan Hernandez
DOCX
Jason Pannell Resume TESOL
PPTX
Genre research
PPTX
Ppt kebakaran hutan
PDF
Xa gico dossier vcds vw golf mkvii
Apresentação Fumo
Como estudar melhor
Núria costa act5
Dnal 1
Cristo E NóS.Jrcordeiro.
taller de informatica y pedagogia de los idiomas extrangeros
Waddell House CAD
Isla De Flores
Destiny's work
Accounting Webinar
IE express yourself applicant Ruslan Hernandez
Jason Pannell Resume TESOL
Genre research
Ppt kebakaran hutan
Xa gico dossier vcds vw golf mkvii
Anúncio

Semelhante a WordPress para Desenvolvedores - Utilizando WP como framework de desenvolvimento - FISL 16 (20)

PDF
Minicurso - Desenvolvimento de sites com WordPress
PDF
Palestra wordpress - II forum revista espírito livre
PPTX
Introdução ao WordPress
PPTX
BITS | BrasilCMS | wordpress
DOC
PPTX
Mini Curso Wordpress
PPT
Palestra WordPress Flisol Amontada
ODP
Fortaleza WordPress Meetup
PDF
Minicurso WordPress
PDF
00-Apresentação de WordPress e criação de sites.pdf
PDF
Content Management System CMS: Wordpress
PDF
WordPress para quem gosta de php
PPTX
WordPress - Gerenciando Conteúdo
PDF
Ricardo Zein - WordPress como framework de desenvolvimento
PDF
(Intercon) wordpress como framework de desenvolvimento
PDF
Introdução ao Wordpress
PPTX
Desmitificando o WordPress
PPTX
Wordpress
PDF
Desenvolvendo Um Projeto de um Portal Responsivo com WordPress - 10° FGSL
PDF
Conhecendo o WordPress
Minicurso - Desenvolvimento de sites com WordPress
Palestra wordpress - II forum revista espírito livre
Introdução ao WordPress
BITS | BrasilCMS | wordpress
Mini Curso Wordpress
Palestra WordPress Flisol Amontada
Fortaleza WordPress Meetup
Minicurso WordPress
00-Apresentação de WordPress e criação de sites.pdf
Content Management System CMS: Wordpress
WordPress para quem gosta de php
WordPress - Gerenciando Conteúdo
Ricardo Zein - WordPress como framework de desenvolvimento
(Intercon) wordpress como framework de desenvolvimento
Introdução ao Wordpress
Desmitificando o WordPress
Wordpress
Desenvolvendo Um Projeto de um Portal Responsivo com WordPress - 10° FGSL
Conhecendo o WordPress
Anúncio

Mais de George Mendonça (20)

ODP
Iniciando na Programação com Python - FLISOL Paracatu 2016
ODP
Orientação a Objetos com Python e UML - XIII FGSL
ODP
Python - Orientação a Objetos com UML no Batismo Digital 3.0 da Faculdade JK ...
ODP
Confirurando Dababase Development no Eclipse Luna
PDF
Dominando o WordPress - A plataforma de sites e blogs mais popular do mundo
PDF
Libre Office Magazine Edição 11
PDF
Codando com PHP e JQuery
PDF
Quebrando Paradigmas e Conhecendo o Movimento Software Livre
PDF
Discutindo Governança e Gestão de Projetos com Ferramentas Livres
PDF
Desenvolvendo Um Projeto de Um Portal Responsivo Com WordPress
PDF
Oficina de PHP - Software Freedom Day Luziânia 2013
PDF
Free Software in the Cloud - Deixe as Nuvens facilitar a sua vida com Softwar...
PDF
Palestra Batismo Digital como uma Ferramenta Social no Ensino de Software Liv...
PDF
FGSL - Batismo Digital
PDF
Evangelismo e Missões - Elucidando o papel do cristão e da Igreja
PDF
Curriculum - George Mendonça
PDF
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
PDF
PHP 5.3 - Classes e Objetos
PDF
PHP 5.3 - Estruturas de Controle
PDF
PHP 5.3 - Funções
Iniciando na Programação com Python - FLISOL Paracatu 2016
Orientação a Objetos com Python e UML - XIII FGSL
Python - Orientação a Objetos com UML no Batismo Digital 3.0 da Faculdade JK ...
Confirurando Dababase Development no Eclipse Luna
Dominando o WordPress - A plataforma de sites e blogs mais popular do mundo
Libre Office Magazine Edição 11
Codando com PHP e JQuery
Quebrando Paradigmas e Conhecendo o Movimento Software Livre
Discutindo Governança e Gestão de Projetos com Ferramentas Livres
Desenvolvendo Um Projeto de Um Portal Responsivo Com WordPress
Oficina de PHP - Software Freedom Day Luziânia 2013
Free Software in the Cloud - Deixe as Nuvens facilitar a sua vida com Softwar...
Palestra Batismo Digital como uma Ferramenta Social no Ensino de Software Liv...
FGSL - Batismo Digital
Evangelismo e Missões - Elucidando o papel do cristão e da Igreja
Curriculum - George Mendonça
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
PHP 5.3 - Classes e Objetos
PHP 5.3 - Estruturas de Controle
PHP 5.3 - Funções

WordPress para Desenvolvedores - Utilizando WP como framework de desenvolvimento - FISL 16

  • 1. WordPress para DesenvolvedoresWordPress para Desenvolvedores Uso do WP como Framework de DesenvolvimentoUso do WP como Framework de Desenvolvimento George Mendonça – @george_mendonca
  • 2. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 2 O WordPress ● Quem sou eu – Analista de sistemas (PTV Tecnologia) – Coordenador adjunto dos cursos TI da Faculdade JK de Tecnologia (FJK) em Santa Maria-DF – Professor das disciplinas de Orientação a objetos, Processo de Desenvolvimento de Software e Software Livre nos campi de Santa Maria e Taguatinga, DF, na FJK – Membro: FGSL, FLISOLDF, FLISOLGO, GoWordPress, WordPress Brasília, DFPress, GOPHP, PHPDF, WP Brasil, #GRITA... ● Objetivo deste trabalho (2015 – 2016) – 1° ano: Pesquisa do desenvolvimento de apliciações web com WordPress – 2° ano: Continuidade da pesquisa com implementações práticas de alto nível
  • 3. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 3 Índice ● O WordPress ● Frameworks de Desenvolvimento ● WordPress para Desenvolvedores ● WordPress como Framework de Desenvolvimento ● Exemplo um plugin simples de cadastro de escolas ● Schoolpress ● Comunidades ● Considerações Finais
  • 4. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 4 O WordPress ● O que é o WordPress? – CMS (Gerenciador de Conteúdo) – Blogs, sites e sistemas (porque não?) ● O mais popular do mundo! – w3techs CMS Overview - Usage of content management systems for websites 07/07/2015
  • 5. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 5 O WordPress ● WordPress? – Curva de aprendizado pequena (fácil) – Foco na simplicidade sempre – Responsivo – Plugins (aplicativos, extensões) – Themes (Temas) – Fora da caixa (gerenciamento simples) – Limpo, leve e econômico – Software Livre: (licença GPLv2 ou superior) – Desenvolvido com software livre! (PHP/MySQL)
  • 6. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 6 O WordPress ● Repositório de plugins – O maior entre os CMSs – https://wordpress.org/plugins/ ● Repositório de temas – Inúmeros gratuitos e premium – https://wordpress.org/themes/ ● Social Network – Rede Social WP: BuddyPress – https://buddypress.org/ ● Fórum - bbPress – https://bbpress.org/ ● Documentação Completa WordPress – https://codex.wordpress.org
  • 7. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 7 Frameworks de Desenvolvimento ● Conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação ● Conjunto de padrões de projeto (PP) de desenvolvimento de software (funcionalidades em comum) para prover uma funcionalidade genérica em uma linguagem específica ● Dita o fluxo de controle (inversão de controle). Não é um PP!
  • 8. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 8 Frameworks de Desenvolvimento ● Visualizando BLIBLIOTECA FRAMEWORK
  • 9. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 9 Frameworks de Desenvolvimento ● Vantagens – Automatização da construção da solução – Eficiência na solução de problemas, reutilização, extensibilidade e otimização de recursos – Modularização e Componentização de software – Detecção de erros – Concentração na abstração das soluções e regras de negócio a serem implementadas – Inversão de controle – Fluxo e execução no controle do framework
  • 10. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 10 Frameworks de Desenvolvimento ● Desvantagens – Curva de aprendizado é maior – É necessário dominar a estrutura e/ou arquitetura proposta pelo Framework adotado – Estrutura e arquiteturas complexas, porém a maioria é abstraída – Exige um nível de experiência em desenvolvimento de software – É necessário "entrar na caixa"!
  • 11. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 11 WordPress para Desenvolvedores ● RECURSOS: APIs do WordPress – Possui abundantes interfaces de programação em sua documentação: ● Dashboard Widgets API, Database API, HTTP API, File Header API, Filesystem API, Metadata API, Options API, Plugin API, Quicktags API, Rewrite API, Settings API, Shortcode API, Theme Modification API, Theme Customization API, Transients API, Widgets API, XML-RPC WordPress API ● Veja documetnação completa de APIs em codex.wordpress.org/WordPress_APIs
  • 12. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 12 WordPress para Desenvolvedores ● RECURSOS: Plugins – Ferramentas ou aplicações para estender a funcionalidade do WordPress – O núcleo do WordPress foi desenvolvido para maximizar a flexibilidade no configuração/desenvolvimento da aplicação – Plugins do WP são fantásticos! Elementos de frente no sucesso do WP! – Oferecem funções personalizadas e funcionalidades que permitem que cada usuário possa adequar seu site à sua necessidade
  • 13. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 13 WordPress para Desenvolvedores ● RECURSOS: Plugins – São distriguídos com software livre (GPLv2) – Siga as regras da comunidade! – Diretório de Plugins ● 38.648 plugins com 970.272.612 downloads no repositório em 07/07/2015 ● Contém todos os plugins desenvolvidos pela comunidade e outros que não estão no repositório (gratuitos e premium) ● Link: https://wordpress.org/plugins/ – Handbook: https://developer.wordpress.org/plugins/
  • 14. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 14 WordPress para Desenvolvedores ● RECURSOS: Temas – Coleção de arquivos que trabalham juntos para produzir uma interface gráfica com um design unificador ("Skin" ou tema do seu site) – Direcionam o FrontEnd da aplicação – Somente o design de seu site é alterado – Todos os dados ficam intactos no banco de dados – Os Temas WordPress oferecem total controle sobre a aparência e a apresentação do conteúdo do seu site
  • 15. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 15 WordPress para Desenvolvedores ● RECURSOS: Temas – Hierarquia de Modelos WordPress ● http://codex.wordpress.org/pt-br:Hierarquia_de_Modelos_WordPress – Desenvolvimento de Temas ● https://codex.wordpress.org/Theme_Development – Handbook (em breve) ● https://make.wordpress.org/docs/theme-developer-handbook/
  • 16. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 16 WordPress para Desenvolvedores ● RECURSOS: Widgets – Widgets em WordPress permite que você adicione conteúdo e recursos nas áreas "widgetizadas" de seu tema – O principal é a barra lateral (sidebar) – No entanto, estas áreas de widgets prontos podem estar no cabeçalho, rodapé, barra lateral ou basicamente qualquer outra área em seu tema – Isso dependerá do tema em uso
  • 17. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 17 WordPress como Framework de Desenvolvimento ● Site – Páginas web contendo infos acessadas por meio de um navegador web ● Aplicação – Software aplicativo, app, projetado para realizar tarefas específicas ● Aplicação Web – Aplicação por meio de uma app Web ● WordPress (app web com inúmeros recursos prontos)
  • 18. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 18 WordPress como Framework de Desenvolvimento ● WP como CMS – Blog, site, e-commerce, etc ● WP como Aplicação Web – Utilização das APIs WordPress para desenvolver aplicações web ● WP como Framework de Desenvolvimento – Utilização das APIs WordPress utilizando recursos do CMS e padrões de projeto – Diversas formas de implemetnação, técnicas e arquiteturas ● Exemplo: Modelo MVC
  • 19. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 19 WordPress como Framework de Desenvolvimento ● Situação do WP – 2006 – 2013 em diante ● Por volta de 2006... ● Atualidade... Figure 1-1. Diagrams from Matt Mullenweg’s“State of WordPress” presentation in 2013. WordPress wasn’t always so stable. safaribooksonline.com Apresentado por Matt Mullenweg no WordCamp São Francisco 2013
  • 20. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 20 WordPress como Framework de Desenvolvimento ● CMSs comumente são descartados em discussões sobre frameworks ● Mas... o WordPress particularmente é excelente para a proposta de um framework: criar aplicações rapidamente ● Em instantes podemos criar uma aplicação com gestão de usuários, sessões e conteúdo por meio do painel do WordPress ● Para as estruturas complexas: APIs, objetos e funções!
  • 21. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 21 WordPress como Framework de Desenvolvimento ● WP x MVC – MVC (Model, View and Controller) é uma arquitetura de software para para desenvolvimento com objetivo de separar o moldelo (regras de negócio e transações de banco de dados), das camadas de visão (visual) e controle (fluxo) ● Desenvolvida por um conjunto de padrões ● Utilização de códido ● Separação de responsabilidades Figure 1-3. How MVC works safaribooksonline.com
  • 22. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 22 WordPress como Framework de Desenvolvimento ● WP x MVC – O núcleo do WP não suporta MVC oficialmente – Amarrar MVC ao WP pode causar problemas, devido a esta natureza – No entando pode-se adequar à estrutura WP para atender o que de melhos esta arquitetura propõe, enquanto o core não suporta MVC – No livro Building Web Apps with WordPress, Brian Messenlehner e Jason Coleman propõem ● [Modelos = Plugins] [Visões = Temas] [Controladores = Carregador de Templates]
  • 23. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 23 WordPress como Framework de Desenvolvimento ● WP x MVC – Obviamente que as comparações não se sustentam ao MVC – No entanto, um mapeamento do processo MVC pode ajudar os programadores WordPress a desenvolver aplicações que usufruem dos vários benefícios deste padrão:
  • 24. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 24 WordPress como Framework de Desenvolvimento ● WP x MVC – [Modelos = Plugins] ● Nos plugins programadores WP vão desenvolver estruturas de dados, lógicas de negócio e definição de tipos de post (model) – [Visões = Templates] ● Temas são apropriados para armazenar código e lógica de templates (view) – [Controladores = Carregadores de Templates]: ● Arquivos index.php e Hierarquia de Templates (controller)
  • 25. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 25 WordPress como Framework de Desenvolvimento ● WP x MVC – Obstáculos ● Model – Diversos plugins implementam comportamentos semelhantes às de visão – Formulários e componentes de visão também são tratados no painel do WP e geralmente tratados por plugins – Saída: Criar uma pasta template ou pages para o código frontend ● View – No WP os templates não tem um mapeamento um para um – Saída: Mesmo assim é um excelente ponto de partida
  • 26. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 26 WordPress como Framework de Desenvolvimento ● WP x MVC – Importante ● Todo o código da aplicação pode estar em um só tema ou plugin ● Na prática reserva-se temas para a camada de visão (front-end) e os plugins para a camada de modelo e controladores (backend)
  • 27. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 27 WordPress como Framework de Desenvolvimento ● WP x MVC – Quando desenvolver Aplicações? ● Quando necessita de uma aplicação completa, utilizando a instalação do WP, com acesso total ao site, temas e plugins instalados ● Diretrizes – Plugin principal – Funcionalidades modulares (outros projetos, reutilização) em plugin separado – Jamais altere o core
  • 28. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 28 WordPress como Framework de Desenvolvimento ● WP x MVC – Quando desenvolver Plugins? ● Quando se necessita criar aplicações modulares para reutilização ● Será utilizado por outros sites ● Um bom momento para se produzir um software livre ;)
  • 29. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 29 WordPress como Framework de Desenvolvimento ● WP x MVC – Quando desenvolver Temas? ● Seguindo o raciocício dos plugins modulares, desenvolve-se temas quando o objetivo é criar um tema a ser distribuíto ● Que de penda de tipos de post personalizados ● Podendo anda, por dependência do tema, transferir códigos de plugins para seu tema ● Excelente oportunidade para se desenvolver software livre também
  • 30. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 30 Exemplo um plugin simples de cadastro de escolas ● Plugin didático escrito por mim no grupo GoWordPress no GitLab: – Escola (CRUDESCOLAS) ● CRUD – Inserir – Listar – Atualizar – Remover ● Link: https://gitlab.com/go-wordpress/gowp-plugins/tree/master/crudescolas
  • 31. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 31 Schoolpress ● Aplicação completa com a estrutura MVC adaptada ao WordPress, proposta pelos autores do livro Building Web Apps with WordPress: – https://github.com/bwawwp/schoolpress – Exemplo: http://schoolpress.me/
  • 32. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 32 Comunidades WordPress ● Comunidades BR (fóruns, tutoriais, tradução, eventos, etc.) – Comunidade WordPress BR – http://wp-brasil.org/ - Face – WordPress.org Brasil – https://br.wordpress.org/ – Go WordPress – Comunidade WordPress de Goiás ● http://gowordpress.org/ – WP Brasília (página comunidade) e DF Press (grupo) – Comunidade WordPress do Distrito Federal ● https://www.facebook.com/WordPressBrasilia e https://www.facebook.com/groups/dfpress
  • 33. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 33 Considerações Finais ● Ficou evidente que o WordPress pode ser facilmente utilizado como um ferramenta poderosa para o desenvolvimento de aplicações web ● Seja como um blog, um site, aplicação comum ou mesmo como um framework de desenvolvimento PERGUNTAS?
  • 34. 08/07/2015 WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16 George Mendonça 34 Considerações Finais O trabalho WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento de George Mendonça é um REA e está licenciado com uma Licença Creative Commons - Atribuição-NãoComercial-CompartilhaIgual 4.0 Internacional Utilize e copie o que tem de melhor na web com sabedoria, mantendo referências e ajudando ao próximo. Deus os abençoe!