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

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

If you can't read please download the document

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

Lush Green

WordPress para Desenvolvedores - Uso do WP como Framework de Desenvolvimento / FISL16George Mendona

WordPress para Desenvolvedores

Uso do WP como Framework de Desenvolvimento

George Mendona @george_mendonca

O WordPress

Quem sou euAnalista de sistemas (PTV Tecnologia)

Coordenador adjunto dos cursos TI da Faculdade JK de Tecnologia (FJK) em Santa Maria-DF

Professor das disciplinas de Orientao 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 Braslia, DFPress, GOPHP, PHPDF, WP Brasil, #GRITA...

Objetivo deste trabalho (2015 2016)1 ano: Pesquisa do desenvolvimento de apliciaes web com WordPress

2 ano: Continuidade da pesquisa com implementaes prticas de alto nvel

ndice

O WordPress

Frameworks de Desenvolvimento

WordPress para Desenvolvedores

WordPress como Framework de Desenvolvimento

Exemplo um plugin simples de cadastro de escolas

Schoolpress

Comunidades

Consideraes Finais

O WordPress

O que o WordPress?CMS (Gerenciador de Contedo) Blogs, sites e sistemas (porque no?)

O mais popular do mundo!w3techs CMS Overview - Usage of content management systems for websites

07/07/2015

O WordPress

WordPress?Curva de aprendizado pequena (fcil)

Foco na simplicidade sempre

Responsivo

Plugins (aplicativos, extenses)

Themes (Temas)

Fora da caixa (gerenciamento simples)

Limpo, leve e econmico

Software Livre: (licena GPLv2 ou superior)

Desenvolvido com software livre! (PHP/MySQL)

O WordPress

Repositrio de plugins O maior entre os CMSshttps://wordpress.org/plugins/

Repositrio de temas Inmeros gratuitos e premiumhttps://wordpress.org/themes/

Social Network Rede Social WP: BuddyPresshttps://buddypress.org/

Frum - bbPresshttps://bbpress.org/

Documentao Completa WordPress https://codex.wordpress.org

Frameworks de Desenvolvimento

Conjunto de classes que colaboram para realizar uma responsabilidade para um domnio de um subsistema da aplicao

Conjunto de padres de projeto (PP) de desenvolvimento de software (funcionalidades em comum) para prover uma funcionalidade genrica em uma linguagem especfica

Dita o fluxo de controle (inverso de controle). No um PP!

Frameworks de Desenvolvimento

Visualizando

BLIBLIOTECA

FRAMEWORK

Frameworks de Desenvolvimento

VantagensAutomatizao da construo da soluo

Eficincia na soluo de problemas, reutilizao, extensibilidade e otimizao de recursos

Modularizao e Componentizao de software

Deteco de erros

Concentrao na abstrao das solues e regras de negcio a serem implementadas

Inverso de controle Fluxo e execuo no controle do framework

Frameworks de Desenvolvimento

DesvantagensCurva de aprendizado maior

necessrio dominar a estrutura e/ou arquitetura proposta pelo Framework adotado

Estrutura e arquiteturas complexas, porm a maioria abstrada

Exige um nvel de experincia em desenvolvimento de software

necessrio "entrar na caixa"!

WordPress para Desenvolvedores

RECURSOS: APIs do WordPressPossui abundantes interfaces de programao em sua documentao: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 documetnao completa de APIs em codex.wordpress.org/WordPress_APIs

WordPress para Desenvolvedores

RECURSOS: PluginsFerramentas ou aplicaes para estender a funcionalidade do WordPress

O ncleo do WordPress foi desenvolvido para maximizar a flexibilidade no configurao/desenvolvimento da aplicao

Plugins do WP so fantsticos! Elementos de frente no sucesso do WP!

Oferecem funes personalizadas e funcionalidades que permitem que cada usurio possa adequar seu site sua necessidade

WordPress para Desenvolvedores

RECURSOS: PluginsSo distrigudos com software livre (GPLv2) Siga as regras da comunidade!

Diretrio de Plugins38.648 plugins com 970.272.612 downloads no repositrio em 07/07/2015

Contm todos os plugins desenvolvidos pela comunidade e outros que no esto no repositrio (gratuitos e premium)

Link: https://wordpress.org/plugins/

Handbook: https://developer.wordpress.org/plugins/

WordPress para Desenvolvedores

RECURSOS: TemasColeo de arquivos que trabalham juntos para produzir uma interface grfica com um design unificador ("Skin" ou tema do seu site)

Direcionam o FrontEnd da aplicao

Somente o design de seu site alterado

Todos os dados ficam intactos no banco de dados

Os Temas WordPress oferecem total controle sobre a aparncia e a apresentao do contedo do seu site

WordPress para Desenvolvedores

RECURSOS: TemasHierarquia de Modelos WordPresshttp://codex.wordpress.org/pt-br:Hierarquia_de_Modelos_WordPress

Desenvolvimento de Temashttps://codex.wordpress.org/Theme_Development

Handbook (em breve)https://make.wordpress.org/docs/theme-developer-handbook/

WordPress para Desenvolvedores

RECURSOS: WidgetsWidgets em WordPress permite que voc adicione contedo e recursos nas reas "widgetizadas" de seu tema

O principal a barra lateral (sidebar)

No entanto, estas reas de widgets prontos podem estar no cabealho, rodap, barra lateral ou basicamente qualquer outra rea em seu tema

Isso depender do tema em uso

WordPress como Framework de Desenvolvimento

SitePginas web contendo infos acessadas por meio de um navegador web

AplicaoSoftware aplicativo, app, projetado para realizar tarefas especficas

Aplicao WebAplicao por meio de uma app Web

WordPress (app web com inmeros recursos prontos)

WordPress como Framework de Desenvolvimento

WP como CMSBlog, site, e-commerce, etc

WP como Aplicao WebUtilizao das APIs WordPress para desenvolver aplicaes web

WP como Framework de DesenvolvimentoUtilizao das APIs WordPress utilizando recursos do CMS e padres de projeto

Diversas formas de implemetnao, tcnicas e arquiteturasExemplo: Modelo MVC

WordPress como Framework de Desenvolvimento

Situao do WP2006

2013 em diante

Por volta de 2006...

Atualidade...

Figure 1-1. Diagrams from Matt MullenwegsState of WordPress
presentation in 2013. WordPress wasnt always so stable.safaribooksonline.com

Apresentado por Matt Mullenweg
no WordCamp So Francisco 2013

WordPress como Framework de Desenvolvimento

CMSs comumente so descartados em discusses sobre frameworks

Mas... o WordPress particularmente excelente para a proposta de um framework: criar aplicaes rapidamente

Em instantes podemos criar uma aplicao com gesto de usurios, sesses e contedo por meio do painel do WordPress

Para as estruturas complexas: APIs, objetos e funes!

WordPress como Framework de Desenvolvimento

WP x MVCMVC (Model, View and Controller) uma arquitetura de software para para desenvolvimento com objetivo de separar o moldelo (regras de negcio e transaes de banco de dados), das camadas de viso (visual) e controle (fluxo)Desenvolvida por um conjunto de padres

Utilizao de cdido

Separao de responsabilidades

Figure 1-3. How MVC workssafaribooksonline.com

WordPress como Framework de Desenvolvimento

WP x MVCO ncleo do WP no 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 prope, enquanto o core no suporta MVC

No livro Building Web Apps with WordPress, Brian Messenlehner e Jason Coleman propem[Modelos = Plugins] [Vises = Temas] [Controladores = Carregador de Templates]

WordPress como Framework de Desenvolvimento

WP x MVCObviamente que as comparaes no se sustentam ao MVC

No entanto, um mapeamento do processo MVC pode ajudar os programadores WordPress a desenvolver aplicaes que usufruem dos vrios benefcios deste padro:

WordPress como Framework de Desenvolvimento

WP x MVC[Modelos = Plugins]Nos plugins programadores WP vo desenvolver estruturas de dados, lgicas de negcio e definio de tipos de post (model)

[Vises = Templates]Temas so apropriados para armazenar cdigo e lgica de templates (view)

[Controladores = Carregadores de Templates]: Arquivos index.php e Hierarquia de Templates (controller)

WordPress como Framework de Desenvolvimento

WP x MVCObstculosModelDiversos plugins implementam comportamentos semelhantes s de viso

Formulrios e componentes de viso tambm so tratados no painel do WP e geralmente tratados por plugins

Sada: Criar uma pasta template ou pages para o cdigo frontend

ViewNo WP os templates no tem um mapeamento um para um

Sada: Mesmo assim um excelente ponto de partida

WordPress como Framework de Desenvolvimento

WP x MVCImportanteTodo o cdigo da aplicao pode estar em um s tema ou plugin

Na prtica reserva-se temas para a camada de viso (front-end) e os plugins para a camada de modelo e controladores (backend)

WordPress como Framework de Desenvolvimento

WP x MVCQuando desenvolver Aplicaes?Quando necessita de uma aplicao completa, utilizando a instalao do WP, com acesso total ao site, temas e plugins instalados

DiretrizesPlugin principal

Funcionalidades modulares (outros projetos, reutilizao) em plugin separado

Jamais altere o core

WordPress como Framework de Desenvolvimento

WP x MVCQuando desenvolver Plugins?Quando se necessita criar aplicaes modulares para reutilizao

Ser utilizado por outros sites

Um bom momento para se produzir um software livre ;)

WordPress como Framework de Desenvolvimento

WP x MVCQuando desenvolver Temas?Seguindo o racioccio dos plugins modulares, desenvolve-se temas quando o objetivo criar um tema a ser distributo

Que de penda de tipos de post personalizados

Podendo anda, por dependncia do tema, transferir cdigos de plugins para seu tema

Excelente oportunidade para se desenvolver software livre tambm

Exemplo um plugin simples de cadastro de escolas

Plugin didtico escrito por mim no grupo GoWordPress no GitLab:Escola (CRUDESCOLAS)CRUDInserir

Listar

Atualizar

Remover

Link: https://gitlab.com/go-wordpress/gowp-plugins/tree/master/crudescolas

Schoolpress

Aplicao 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/

Comunidades WordPress

Comunidades BR (fruns, tutoriais, traduo, eventos, etc.)Comunidade WordPress BR http://wp-brasil.org/ - Face

WordPress.org Brasil https://br.wordpress.org/

Go WordPress Comunidade WordPress de Goishttp://gowordpress.org/

WP Braslia (pgina comunidade) e DF Press (grupo) Comunidade WordPress do Distrito Federalhttps://www.facebook.com/WordPressBrasilia e https://www.facebook.com/groups/dfpress

Consideraes Finais

Ficou evidente que o WordPress pode ser facilmente utilizado como um ferramenta poderosa para o desenvolvimento de aplicaes web

Seja como um blog, um site, aplicao comum ou mesmo como um framework de desenvolvimentoPERGUNTAS?

Consideraes Finais

O trabalhoWordPress para Desenvolvedores - Uso do WP como Framework de DesenvolvimentodeGeorge Mendona um REA e est licenciado com uma LicenaCreative Commons - Atribuio-NoComercial-CompartilhaIgual 4.0 Internacional

Utilize e copie o que tem de melhor na web com sabedoria, mantendo referncias e ajudando ao prximo.Deus os abenoe!