SlideShare uma empresa Scribd logo
1 de 74
Baixar para ler offline
para quem gosta de
Ricardo Moraleida
- HTMLeiro quando <marquee> era chique
- Desenvolvedor PHP e WordPress desde 2010
- Senior Web Engineer na 10up desde 2015
- Twitter: @co_di_go
- about.me/ricardo.moraleida
- 10up.com/careers ← <blink>contratando!</blink>
Um olhar crítico,
mas generoso
para quem gosta de
Eu venho
em paz
Como chegamos
até aqui?
2003
- PHP 4.3
- CLI
- WordPress 0.7
- fork b2/cafelog
Como chegamos
até aqui?
2003
2004
- WordPress 1.0 e 1.2
Como chegamos
até aqui?
2003
2004
2005
- PHP 4.4 e 5.1
- WordPress 1.5 e 2.0
Como chegamos
até aqui?
2003
2004
2005
2006
2007
2008
2009
- PHP 5.3
- namespaces
- closures
- WordPress 2.8 e 2.9
- instalação de temas,
editor de imagens
- batch updates
Como chegamos
até aqui?
2003
2004
2005
2006
2007
2008
2009
2010
- WordPress 3.0
- API de temas
- Multisite nativo
Como chegamos
até aqui?
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
- PHP 5.4
- Traits
- []
- Web server
- WordPress 3.4
- Customizer
Como chegamos
até aqui?
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
- PHP 5.6
- const
- use
- WordPress 3.9, 4.0, 4.1
- Previews
- Distraction-free
Como chegamos
até aqui?
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
- PHP 7.3
- reference assignment
- array deconstruction
- WordPress 5.0
- Gutenberg
Controvérsias
25 Years of PHP
https://www.youtube.com/watch?v=iGOAQli7
tGc
Controvérsias
PHP
- register_globals
- magic_quotes
- inconsistências em needle, haystack
WordPress
- código legado
- $wpdb
- “developer experience”
Controvérsias
You Don’t Know Query
https://wordpress.tv/2012/06/15/andrew-nac
in-wp_query/
É tudo verdade.
E também não é toda a verdade.
Controvérsias
A que custo?
Controvérsias
A política de retrocompatibilidade
“WordPress strives to never break backwards compatibility. It’s one of our most important philosophies,
and makes updates much easier on users and developers alike.”
- WordPress Core Handbook
Refatorar para EvoluirUm pouco de história
34,6%
De todos os sites usam WordPress.
(W3Techs, setembro/2019)
61,3%
dos sites que usam algum CMS, usam WordPress.
(W3Techs, setembro/2019)
97,7%*
dos sites que usam WordPress usam uma versão que ainda recebe atualizações de segurança
automaticamente.
(W3Techs, setembro/2019)
Pensar o WordPress como
um desenvolvedor eficiente
para quem gosta de
WordPress não é
um framework
framework?
Quando escolher WordPress?
Eu preciso de um
Banco de Dados?
Geradores de Sites
Estáticos
- gatsbyjs.com
- hugo.io
- jekyll (pages.github.com)
A estrutura do
Banco de Dados
Guarda de dados baseada em conteúdo
textual e metadados
Guarda de dados baseada em conteúdo
textual e metadados
UX como guia
WP como “Sistema
Operacional”
para quem gosta de
Temas como Gerenciadores de
Janelas
Plugins como
Pacotes/Bibliotecas
$ apt-get install <nome>
$ wp plugin install <nome>
Entender a arquitetura
do WordPress
para quem gosta de
Mas e o MVC? Orientação a Objetos?
MVC
A ORIENTAÇÃO A
OBJETOS?
Arquitetura dirigida
por eventos
Arquitetura dirigida por eventos
Arquitetura dirigida por eventos
Sistema de views
Sistema de views
Rotas-base (que carregam templates):
- página frontal
- página índice
- página de arquivo
- página individual
- resultado de busca
- 404
Sistema de views
Rotas-base (que carregam templates):
- página frontal
- página índice
- página de arquivo
- página individual
- resultado de busca
- 404
Sistema de views
Hierarquia de templates.
Do Bootstrap ao
Sistema de Views
Do Bootstrap ao
Sistema de Views
Do Bootstrap ao
Sistema de Views
Do Bootstrap ao
Sistema de Views
Do Bootstrap ao
Sistema de Views
Arquitetura
MVC Event-driven
Middleware
Arquitetura
MVC Event-driven
Arquitetura
Event-driven Tema
Plugin
Tema
Arquitetura
Event-driven App MVC
Microservices
Procedural
No WordPress Core
apply_filters() do_action()
retorna um valor retorna void
manipula um dado no causa um efeito indireto
sistema
8611846
No WordPress Core
apply_filters() do_action()
retorna um valor retorna void
manipula um dado no causa um efeito indireto
sistema
Desenvolvendo para
WordPress em 2019
para quem gosta de
APIs
Linha de Comando
https://wp-cli.org/
APIs
Linha de Comando
https://wp-cli.org/
APIs
REST API
https://developer.wordpress.org/rest-api/
APIs
REST API
https://developer.wordpress.org/rest-api/
APIs
Object Cache
https://developer.wordpress.org/reference/cla
sses/wp_object_cache/
wp-memcached
https://github.com/Automattic/wp-memcached
APIs
- Dashboard Widgets API
- Database API
- HTTP API
- REST 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
Outras APIs
https://codex.wordpress.org/WordPress_APIs
Interfaces de
edição de
conteúdo
Gutenberg
https://wordpress.org/gutenberg/
Interfaces de
edição de
conteúdo
Customizer
https://developer.wordpress.org/themes/customize-api/
Ambiente de
desenvolvimento
Composer
Autoloader (PSR-4)
WordPress Packagist
https://wpackagist.org/
Ambiente de
desenvolvimento
Qualidade de código
WordPress Coding Standards (CodeSniffer)
https://github.com/WordPress/WordPress-Coding-Stand
ards
WP_Mock
https://github.com/10up/wp_mock
WP_Acceptance
https://github.com/10up/wpacceptance
Ambiente de
desenvolvimento
Qualidade de código
10up Engineering Best Practices
https://10up.github.io/Engineering-Best-Practices/
WP Local Docker v2
https://github.com/10up/wp-local-docker-v2
WordPress extensions for PHPStan
https://github.com/szepeviktor/phpstan-wordpress
Documentação
Handbooks oficiais
https://developer.wordpress.org/
Documentação
Referência
https://developer.wordpress.org/reference/
E por fim
para quem gosta de
Vale a pena escolher
WordPress?
Obrigado!
Vamos construir o futuro do WordPress?
https://10up.com/careers/
Avalie a palestra no joind.in:
https://joind.in/talk/4fe5b
para quem gosta de

Mais conteúdo relacionado

Mais procurados

Mais procurados (8)

PHP
PHPPHP
PHP
 
Wordpress
WordpressWordpress
Wordpress
 
Site completo profissional sem código
Site completo profissional sem códigoSite completo profissional sem código
Site completo profissional sem código
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 
01 Introdução à programação web
01 Introdução à programação web01 Introdução à programação web
01 Introdução à programação web
 
Web 2.0 e RIA com PHP
Web 2.0 e RIA com PHPWeb 2.0 e RIA com PHP
Web 2.0 e RIA com PHP
 
Desbravando o HTML5
Desbravando o HTML5Desbravando o HTML5
Desbravando o HTML5
 
Introdução a Tecnologias Web
Introdução a Tecnologias WebIntrodução a Tecnologias Web
Introdução a Tecnologias Web
 

Semelhante a WordPress para quem gosta de php

Wordpress além do blog
Wordpress além do blogWordpress além do blog
Wordpress além do blogMateus Neves
 
T@rget trust microsoft asp.net mvc
T@rget trust   microsoft asp.net mvcT@rget trust   microsoft asp.net mvc
T@rget trust microsoft asp.net mvcTargettrust
 
T@rget trust asp.net avançado
T@rget trust   asp.net avançadoT@rget trust   asp.net avançado
T@rget trust asp.net avançadoTargettrust
 
WordCamp SP 2014 - SEO para Desenvolvedores WordPress
WordCamp SP 2014 - SEO para Desenvolvedores WordPressWordCamp SP 2014 - SEO para Desenvolvedores WordPress
WordCamp SP 2014 - SEO para Desenvolvedores WordPressRuan Barbosa
 
The Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressThe Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressJackson F. de A. Mafra
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloelliando dias
 
T@rget trust crystal reports - geração de relatórios
T@rget trust   crystal reports - geração de relatóriosT@rget trust   crystal reports - geração de relatórios
T@rget trust crystal reports - geração de relatóriosTargettrust
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPArlindo Santos
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosRodolfo Fadino Junior
 
Construindo sites e sistemas com WordPress
Construindo sites e sistemas com WordPressConstruindo sites e sistemas com WordPress
Construindo sites e sistemas com WordPressLeo Baiano
 
Treinamento de Wordpress versão 3.1 (1 de 3)
Treinamento de Wordpress versão 3.1 (1 de 3)Treinamento de Wordpress versão 3.1 (1 de 3)
Treinamento de Wordpress versão 3.1 (1 de 3)wvtodoz
 
T@rget trust asp.net
T@rget trust   asp.netT@rget trust   asp.net
T@rget trust asp.netTargettrust
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks phpIgor Moura
 
Desenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPDesenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPMarcelo Andrade
 
Curso de Wordpress - Do Zero ao Site no Ar
Curso de Wordpress - Do Zero ao Site no ArCurso de Wordpress - Do Zero ao Site no Ar
Curso de Wordpress - Do Zero ao Site no ArRenzo Colnago
 
Conhecendo o asp.net core
Conhecendo o asp.net coreConhecendo o asp.net core
Conhecendo o asp.net coreNicolas Takashi
 

Semelhante a WordPress para quem gosta de php (20)

Wordpress além do blog
Wordpress além do blogWordpress além do blog
Wordpress além do blog
 
Workshop ASP.NET MVC 5
Workshop ASP.NET MVC 5Workshop ASP.NET MVC 5
Workshop ASP.NET MVC 5
 
T@rget trust microsoft asp.net mvc
T@rget trust   microsoft asp.net mvcT@rget trust   microsoft asp.net mvc
T@rget trust microsoft asp.net mvc
 
T@rget trust asp.net avançado
T@rget trust   asp.net avançadoT@rget trust   asp.net avançado
T@rget trust asp.net avançado
 
ASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e alémASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e além
 
WordCamp SP 2014 - SEO para Desenvolvedores WordPress
WordCamp SP 2014 - SEO para Desenvolvedores WordPressWordCamp SP 2014 - SEO para Desenvolvedores WordPress
WordCamp SP 2014 - SEO para Desenvolvedores WordPress
 
The Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressThe Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPress
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro bolo
 
T@rget trust crystal reports - geração de relatórios
T@rget trust   crystal reports - geração de relatóriosT@rget trust   crystal reports - geração de relatórios
T@rget trust crystal reports - geração de relatórios
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
Construindo sites e sistemas com WordPress
Construindo sites e sistemas com WordPressConstruindo sites e sistemas com WordPress
Construindo sites e sistemas com WordPress
 
Cake Php
Cake PhpCake Php
Cake Php
 
Treinamento de Wordpress versão 3.1 (1 de 3)
Treinamento de Wordpress versão 3.1 (1 de 3)Treinamento de Wordpress versão 3.1 (1 de 3)
Treinamento de Wordpress versão 3.1 (1 de 3)
 
T@rget trust asp.net
T@rget trust   asp.netT@rget trust   asp.net
T@rget trust asp.net
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks php
 
Desenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPDesenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHP
 
Curso de Wordpress - Do Zero ao Site no Ar
Curso de Wordpress - Do Zero ao Site no ArCurso de Wordpress - Do Zero ao Site no Ar
Curso de Wordpress - Do Zero ao Site no Ar
 
Conhecendo o asp.net core
Conhecendo o asp.net coreConhecendo o asp.net core
Conhecendo o asp.net core
 
Asp.net
Asp.netAsp.net
Asp.net
 

WordPress para quem gosta de php