SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
Ferramentas Essenciais para
Desenvolvedores de Plugins
WordPress
Tiago Hillebrandt
@tiagoscd
Tiago Hillebrandt
● Head of DevOps na Rainmaker Digital Services
● Trabalha diariamente em uma estrutura com milhares de instalações WordPress
● Colaborador de diversos projetos de software livre, tais como WordPress, WP-CLI, Ubuntu,
dentre outros
https://twitter.com/tiagoscd
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
● Se cada vez que você vê um repositório com essa estrutura de arquivos
você se pergunta WTF?, essa palestra é pra você.
● Cada uma das ferramentas mencionadas nesta apresentação já estão
consolidadas no mercado, e são amplamente utilizadas por diversas
empresas de desenvolvimento de plugins.
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
Ferramentas Essenciais
● Vagrant
● Composer
● PHP Code Sniffer
● Npm
● Grunt
● EditorConfig
● readme.txt
● Readme Validator
● WP Readme
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
Plugin de exemplo que usaremos na apresentação:
https://github.com/tiagohillebrandt/wordcamp-example-plugin/
Vagrant
● Permite criar ambientes de desenvolvimento em máquinas virtuais
● Possibilita a criação de ambientes locais mais próximos ao de produção
● Diversas imagens (boxes) estão disponíveis gratuitamente na Vagrant Cloud:
○ ubuntu/xenial64: Ubuntu 16.04 Xenial Xerus
○ debian/jessie64: Debian 8 Jessie
○ centos/7: CentOS 7
● Box para desenvolvedores WordPress: https://varyingvagrantvagrants.org/
○ https://varyingvagrantvagrants.org/docs/en-US/installed-packages/
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
Vagrant
Instalação
● Acessar a página do Vagrant e baixar a versão de acordo
com o seu sistema operacional:
○ https://www.vagrantup.com/downloads.html
● Requer um software de virtualização:
○ VirtualBox
○ VMware
○ Docker
○ Hyper-V
○ Outros
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
Vagrant
Como funciona?
Criando um novo ambiente Vagrant:
$ mkdir my-wp-plugin
$ cd my-wp-plugin
$ vagrant init ubuntu/xenial64
Ligando a máquina virtual:
$ vagrant up
Acessando a máquina virtual:
$ vagrant ssh
Desligando a máquina virtual:
$ vagrant halt
Ao desligar, todos os dados são preservados.
Destruindo a máquina virtual:
$ vagrant destroy
Ao destruir, todos os dados serão apagados.
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
Composer
● Ferramenta para gerenciamento de dependências em PHP
● Permite a declaração e gerenciamento de bibliotecas que seu o projeto depende para funcionar
○ https://packagist.org/
● Conceito similar ao de outros gerenciadores de dependências:
○ npm (Node.js)
○ bundler (Ruby)
○ pip (Python)
○ apt-get (Debian/Ubuntu)
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
Composer
Instalação
● Bash (Linux, Unix, Mac):
○ curl -sS https://getcomposer.org/installer | php
○ sudo mv composer.phar /usr/local/bin/composer
● Pacote PHAR:
○ https://getcomposer.org/composer.phar
● Windows:
○ https://getcomposer.org/Composer-Setup.exe
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
Composer
Como funciona?
● Caso queira instalar a biblioteca bootstrap no seu projeto:
$ composer require twbs/bootstrap
● Ao rodar esse comando em um novo projeto:
○ O arquivo composer.json será criado incluindo o nome da biblioteca que você está instalando.
○ O arquivo composer.lock será criado com detalhes da versão sendo instalada atualmente no projeto.
○ O diretório vendor/ será criado e o bootstrap será instalado dentro dele.
● Commitar os arquivos composer.json e composer.lock junto com seu projeto.
● O diretório vendor/ nunca deve ser commitado (adicionar ao .gitignore).
https://github.com/tiagohillebrandt/wordcamp-example-plugin/blob/master/composer.json
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
Composer
Como funciona?
● Se você baixar qualquer projeto cujo arquivo composer.json já exista, basta acessar o diretório
onde o arquivo se encontra e rodar:
$ composer install
● O Composer irá ler os arquivos .json e .lock e instalar as dependências listadas neles dentro do
diretório vendor/.
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
PHP Code Sniffer
● Permite a definição e validação de padrões de desenvolvimento (coding standards) para seu projeto
● Importante para manter a consistência do código
● Coding standards do WordPress:
○ https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/
● Extensões:
○ Para verificar se seu código é compatível com os coding standards do WordPress:
■ https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards
○ Para verificar se seu código é compatível com uma determinada versão do PHP:
■ https://github.com/wimg/PHPCompatibility
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
PHP Code Sniffer
Instalação
● Instalando o PHPCS:
$ composer require squizlabs/php_codesniffer --dev
● Instalando a extensão WPCS:
$ composer require wp-coding-standards/wpcs --dev
● Instalando a extensão PHPCompatibility:
$ composer require wimg/php-compatibility --dev
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
PHP Code Sniffer
Instalação
● Habilitando as extensões no PHPCS:
$ ./vendor/bin/phpcs --config-set installed_paths
vendor/wp-coding-standards/wpcs/,vendor/wimg/php-compatibility/
● Outra opção carregar as extensões dentro do próprio composer.json:
"scripts": {
"post-update-cmd": [
"./vendor/bin/phpcs --config-set installed_paths
vendor/wp-coding-standards/wpcs/,vendor/wimg/php-compatibility/"
]
}
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
PHP Code Sniffer
Como funciona?
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
● Os padrões de desenvolvimento são definidos dentro do arquivo phpcs.xml.dist ou ruleset.xml
○ https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml
● PHPCS oferece suporte nativo aos padrões PSR2, Zend, Squiz, PEAR e PSR1
● Se uma determinada regra (sniff code) do padrão não for necessária no seu projeto, você pode
desabilitá-la através da tag exclude
● Exemplo de configuração:
○ https://github.com/tiagohillebrandt/wordcamp-example-plugin/blob/master/phpcs.xml.dist
PHP Code Sniffer
Quem usa?
● WP-CLI
○ https://github.com/wp-cli/wp-cli/blob/master/phpcs.xml.dist
● WooCommerce
○ https://github.com/woocommerce/woocommerce/blob/master/phpcs.ruleset.xml
● Yoast SEO
○ https://github.com/Yoast/wordpress-seo/blob/trunk/phpcs.xml
● WP Healthcheck
○ https://github.com/wp-healthcheck/wp-healthcheck/blob/develop/phpcs.xml.dist
● Genesis Framework
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
npm
● Gerenciador de pacotes para Node.js
● Usado para gerenciar as dependências em JavaScript
● Ou seja, assim como o Composer, o npm permite a declaração e gerenciamento de bibliotecas que
o seu projeto necessita
○ https://www.npmjs.com/
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
npm
Instalação
● Ao instalar o Node.js em sua máquina, o npm já será instalado com ele
● Debian/Ubuntu:
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install -y nodejs
● Outras plataformas:
○ https://nodejs.org/en/download/
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
npm
Como funciona?
● O primeiro passo é acessar o seu projeto e rodar o seguinte comando:
$ npm init
● Ao rodar o comando acima, algumas informações serão solicitadas, e no fim o arquivo package.json
será criado no seu projeto.
● Agora estamos prontos pra usar o npm no nosso projeto.
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
npm
Como funciona?
● Caso queira instalar o Gulp no seu projeto:
$ npm install gulp --save-dev
● Ao rodar esse comando em um novo projeto:
○ O arquivo package.json será atualizado incluindo o nome da biblioteca que você está instalando.
○ O arquivo package-lock.json será criado com detalhes da versão sendo instalada atualmente no projeto.
○ O diretório node_modules/ será criado e o Gulp será instalado dentro dele.
● Commitar os arquivos package.json e package-lock.json junto com seu projeto.
● O diretório node_modules/ nunca deve ser commitado (adicionar ao .gitignore).
https://github.com/tiagohillebrandt/wordcamp-example-plugin/blob/master/package.json
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
Grunt
● Execução de tarefas em JavaScript pela linha de comando
● As tarefas são configuradas dentro de um arquivo JS, geralmente chamado Gruntfile.js
● Ao instalar certos plugins, você pode automatizar várias tarefas do seu projeto com o Grunt:
○ Gerar o catálogo de traduções do seu plugin (arquivo POT)
○ Verificar se as funções de localização (i18n) do WordPress foram usadas corretamente
○ Compilar Sass para CSS
○ Minificar os arquivos JavaScript e CSS
○ Averiguar a qualidade do seu código JavaScript (linting)
○ Criar um arquivo zip do seu plugin (build)
○ Dentre outras
● Página oficial com os plugins disponíveis:
○ https://gruntjs.com/plugins
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
Grunt
Instalação
● Primeiro precisamos criar um arquivo package.json para seu projeto:
$ npm init
● Ao rodar o comando acima, no campo entry point informe o nome Gruntfile.js
● Feito isso, para instalar o Grunt:
$ npm install grunt --save-dev
● Para executar o Grunt:
$ node_modules/grunt/bin/grunt
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
Grunt
Gruntfile.js
● Configuração das tarefas que serão executadas no seu projeto
● É possível criar custom tasks, que compreendem um conjunto de tarefas a serem executadas
● Se o nome da tarefa não for passado como parâmetro ao chamar o Grunt, a tarefa default será
executada automaticamente
● Exemplo de configuração:
○ https://github.com/tiagohillebrandt/wordcamp-example-plugin/blob/master/Gruntfile.js
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
Grunt
Quem usa?
● jQuery
○ https://github.com/jquery/jquery/blob/master/Gruntfile.js
● WordPress
○ https://develop.svn.wordpress.org/trunk/Gruntfile.js
● WooCommerce
○ https://github.com/woocommerce/woocommerce/blob/master/Gruntfile.js
● Yoast SEO
○ https://github.com/Yoast/wordpress-seo/blob/trunk/Gruntfile.js
● Bootstrap
○ https://github.com/twbs/bootstrap/blob/master/Gruntfile.js
● WP Healthcheck
○ https://github.com/wp-healthcheck/wp-healthcheck/blob/develop/Gruntfile.js
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
EditorConfig
● Usado para definir e manter um estilo de codificação consistente entre diferentes editores e IDEs
● Você declara as propriedades (indentação, codificação, etc) no arquivo .editorconfig
○ https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties
● Ao abrir o editor ou IDE, ele lê o arquivo e adere ao estilo de codificação definido no .editorconfig
● É necessário baixar o plugin para seu editor ou IDE:
○ http://editorconfig.org/#download
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
EditorConfig
Quem usa?
● PHP
○ http://git.php.net/?p=php-src.git;a=blob_plain;f=.editorconfig;hb=HEAD
● WordPress
○ https://develop.svn.wordpress.org/trunk/.editorconfig
● WooCommerce
○ https://github.com/woocommerce/woocommerce/blob/master/.editorconfig
● jQuery
○ https://github.com/jquery/jquery/blob/master/.editorconfig
● WP-CLI
○ https://github.com/wp-cli/wp-cli/blob/master/.editorconfig
● Yoast SEO
○ https://github.com/Yoast/wordpress-seo/blob/trunk/.editorconfig
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
● Arquivo com informações sobre o plugin
● Pode conter a descrição, passos para instalação, perguntas frequentes, listagem de screenshots,
changelog, notas de upgrade, dentre outras coisas
● É usado para gerar a página do plugin no WordPress Plugin Directory:
○ https://developer.wordpress.org/plugins/wordpress-org/how-your-readme-txt-works/
● Oferece suporte a Markdown:
○ https://daringfireball.net/projects/markdown/syntax
● Diferente do README.md
● Requerido no processo de submissão de plugins para o WordPress Plugin Directory
readme.txt
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
Readme Validator
● Permite validar o conteúdo do seu readme.txt
○ https://wordpress.org/plugins/developers/readme-validator/
● No entanto, ele não permite que você pré-visualize o conteúdo do seu arquivo
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
WP Readme
● Assim como o Readme Validator, valida o
conteúdo do seu readme.txt
● Além de validar, você também consegue
pré-visualizar seu readme.txt
https://wpreadme.com/
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
Plugin: WP Healthcheck
● Plugin para verificar o estado da sua instalação WordPress
● Verifica o número e tamanho de Transients e Autoload Options
● Limpeza de Transients e desativação de Autoload Options
● Verifica a versão dos softwares instalados no servidor:
○ PHP
○ MySQL/MariaDB
○ WordPress
○ Servidor web
● Em breve: notificações quando o seu certificado SSL estiver próximo da data de expiração
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
Plugin: WP Healthcheck
Disponível gratuitamente para download.
● WordPress Plugin Directory:
○ https://wordpress.org/plugins/wp-healthcheck/
● WP-CLI:
○ wp plugin install wp-healthcheck
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt ( @tiagoscd )
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress

Weitere ähnliche Inhalte

Was ist angesagt?

Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história ...
Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história ...Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história ...
Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história ...Stefan Teixeira
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...tdc-globalcode
 
Gerenciando o Zabbix com o SaltStack
Gerenciando o Zabbix com o SaltStackGerenciando o Zabbix com o SaltStack
Gerenciando o Zabbix com o SaltStackAécio Pires
 
Use o git e perca o medo de errar
Use o git e perca o medo de errarUse o git e perca o medo de errar
Use o git e perca o medo de errarBruno Calheira
 
Dia Debian 2007 - Desenvolvendo aplicações no Linux
Dia Debian 2007 - Desenvolvendo aplicações no LinuxDia Debian 2007 - Desenvolvendo aplicações no Linux
Dia Debian 2007 - Desenvolvendo aplicações no LinuxJorge Pereira
 
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Renato Groff
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsGilmar Pupo
 
Jenkins + DCS / Dafiti Conference 2014
Jenkins + DCS / Dafiti Conference 2014Jenkins + DCS / Dafiti Conference 2014
Jenkins + DCS / Dafiti Conference 2014Rodrigo Moyle
 
Jenkins, o CI ao seu dispor
Jenkins, o CI ao seu disporJenkins, o CI ao seu dispor
Jenkins, o CI ao seu dispors4nx
 
Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014Jonathan Prates
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerWellington Silva
 
TDC2016SP - Trilha DevOps Java
TDC2016SP - Trilha DevOps JavaTDC2016SP - Trilha DevOps Java
TDC2016SP - Trilha DevOps Javatdc-globalcode
 
Minicurso Git Semcomp Beta
Minicurso Git   Semcomp BetaMinicurso Git   Semcomp Beta
Minicurso Git Semcomp BetaBruno Orlandi
 
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ....NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ...Renato Groff
 
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas....NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas...Renato Groff
 
Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Erik Cruz
 
.NET Core e ASP.NET Core: Presente e Futuro - .NET SP - Novembro/2018
.NET Core e ASP.NET Core: Presente e Futuro - .NET SP - Novembro/2018.NET Core e ASP.NET Core: Presente e Futuro - .NET SP - Novembro/2018
.NET Core e ASP.NET Core: Presente e Futuro - .NET SP - Novembro/2018Renato Groff
 

Was ist angesagt? (20)

Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história ...
Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história ...Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história ...
Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história ...
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
 
Secomp 2018 - DO Ruby ao Elixir
Secomp 2018 - DO Ruby ao ElixirSecomp 2018 - DO Ruby ao Elixir
Secomp 2018 - DO Ruby ao Elixir
 
Gerenciando o Zabbix com o SaltStack
Gerenciando o Zabbix com o SaltStackGerenciando o Zabbix com o SaltStack
Gerenciando o Zabbix com o SaltStack
 
Use o git e perca o medo de errar
Use o git e perca o medo de errarUse o git e perca o medo de errar
Use o git e perca o medo de errar
 
Git Overview: Grupo RBS
Git Overview: Grupo RBSGit Overview: Grupo RBS
Git Overview: Grupo RBS
 
Dia Debian 2007 - Desenvolvendo aplicações no Linux
Dia Debian 2007 - Desenvolvendo aplicações no LinuxDia Debian 2007 - Desenvolvendo aplicações no Linux
Dia Debian 2007 - Desenvolvendo aplicações no Linux
 
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com Jenkins
 
Jenkins + DCS / Dafiti Conference 2014
Jenkins + DCS / Dafiti Conference 2014Jenkins + DCS / Dafiti Conference 2014
Jenkins + DCS / Dafiti Conference 2014
 
Jenkins, o CI ao seu dispor
Jenkins, o CI ao seu disporJenkins, o CI ao seu dispor
Jenkins, o CI ao seu dispor
 
Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com Docker
 
TDC2016SP - Trilha DevOps Java
TDC2016SP - Trilha DevOps JavaTDC2016SP - Trilha DevOps Java
TDC2016SP - Trilha DevOps Java
 
Minicurso Git Semcomp Beta
Minicurso Git   Semcomp BetaMinicurso Git   Semcomp Beta
Minicurso Git Semcomp Beta
 
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ....NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ...
 
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas....NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas...
 
Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021
 
.NET Core e ASP.NET Core: Presente e Futuro - .NET SP - Novembro/2018
.NET Core e ASP.NET Core: Presente e Futuro - .NET SP - Novembro/2018.NET Core e ASP.NET Core: Presente e Futuro - .NET SP - Novembro/2018
.NET Core e ASP.NET Core: Presente e Futuro - .NET SP - Novembro/2018
 
Web open source
Web open sourceWeb open source
Web open source
 

Ähnlich wie Ferramentas Essenciais para Desenvolvedores de Plugins WordPress

Seguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP SnifferSeguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP SnifferVinicius Warto Campos
 
Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizadosThiago Rodrigues
 
Vagrant uma ferramenta realmente útil e versátil
Vagrant   uma ferramenta realmente útil e versátilVagrant   uma ferramenta realmente útil e versátil
Vagrant uma ferramenta realmente útil e versátilWanderlei Silva do Carmo
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
 
Xdebug seus problemas acabaram - TDC - PHPeste
Xdebug   seus problemas acabaram - TDC - PHPesteXdebug   seus problemas acabaram - TDC - PHPeste
Xdebug seus problemas acabaram - TDC - PHPesteVitor Mattos
 
TDC2016 | Trilha PHP - Xdebug: Seus problemas acabaram!
TDC2016 | Trilha PHP - Xdebug: Seus problemas acabaram!TDC2016 | Trilha PHP - Xdebug: Seus problemas acabaram!
TDC2016 | Trilha PHP - Xdebug: Seus problemas acabaram!tdc-globalcode
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo realEvandro Silvestre
 
Composer dependency manager - TDC - POA 2017
Composer   dependency manager - TDC - POA 2017Composer   dependency manager - TDC - POA 2017
Composer dependency manager - TDC - POA 2017Vitor Mattos
 
12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com DockerWellington Silva
 
Lab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvLab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvPedro Fernandes Vieira
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Luís Cobucci
 
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...Embarcados
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorFelipe Pedroso
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigitalJust Digital
 
CEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniterCEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniterEric Silva
 
Postgresql 50 Sabores - PgDay Ceará 2013
Postgresql 50 Sabores - PgDay Ceará 2013Postgresql 50 Sabores - PgDay Ceará 2013
Postgresql 50 Sabores - PgDay Ceará 2013Cláudio Leopoldino
 

Ähnlich wie Ferramentas Essenciais para Desenvolvedores de Plugins WordPress (20)

Seguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP SnifferSeguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP Sniffer
 
Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizados
 
Vagrant uma ferramenta realmente útil e versátil
Vagrant   uma ferramenta realmente útil e versátilVagrant   uma ferramenta realmente útil e versátil
Vagrant uma ferramenta realmente útil e versátil
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 
Meetup-Churrops
Meetup-ChurropsMeetup-Churrops
Meetup-Churrops
 
Xdebug seus problemas acabaram - TDC - PHPeste
Xdebug   seus problemas acabaram - TDC - PHPesteXdebug   seus problemas acabaram - TDC - PHPeste
Xdebug seus problemas acabaram - TDC - PHPeste
 
TDC2016 | Trilha PHP - Xdebug: Seus problemas acabaram!
TDC2016 | Trilha PHP - Xdebug: Seus problemas acabaram!TDC2016 | Trilha PHP - Xdebug: Seus problemas acabaram!
TDC2016 | Trilha PHP - Xdebug: Seus problemas acabaram!
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
WP Composer
WP ComposerWP Composer
WP Composer
 
Composer dependency manager - TDC - POA 2017
Composer   dependency manager - TDC - POA 2017Composer   dependency manager - TDC - POA 2017
Composer dependency manager - TDC - POA 2017
 
12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com Docker
 
Lab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvLab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenv
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011
 
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
 
Iniciando com django
Iniciando com djangoIniciando com django
Iniciando com django
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigital
 
CEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniterCEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniter
 
Postgresql 50 Sabores - PgDay Ceará 2013
Postgresql 50 Sabores - PgDay Ceará 2013Postgresql 50 Sabores - PgDay Ceará 2013
Postgresql 50 Sabores - PgDay Ceará 2013
 
Django
DjangoDjango
Django
 

Ferramentas Essenciais para Desenvolvedores de Plugins WordPress

  • 1. Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt @tiagoscd
  • 2. Tiago Hillebrandt ● Head of DevOps na Rainmaker Digital Services ● Trabalha diariamente em uma estrutura com milhares de instalações WordPress ● Colaborador de diversos projetos de software livre, tais como WordPress, WP-CLI, Ubuntu, dentre outros https://twitter.com/tiagoscd Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 3. ● Se cada vez que você vê um repositório com essa estrutura de arquivos você se pergunta WTF?, essa palestra é pra você. ● Cada uma das ferramentas mencionadas nesta apresentação já estão consolidadas no mercado, e são amplamente utilizadas por diversas empresas de desenvolvimento de plugins. Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 4. Ferramentas Essenciais ● Vagrant ● Composer ● PHP Code Sniffer ● Npm ● Grunt ● EditorConfig ● readme.txt ● Readme Validator ● WP Readme Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd ) Plugin de exemplo que usaremos na apresentação: https://github.com/tiagohillebrandt/wordcamp-example-plugin/
  • 5. Vagrant ● Permite criar ambientes de desenvolvimento em máquinas virtuais ● Possibilita a criação de ambientes locais mais próximos ao de produção ● Diversas imagens (boxes) estão disponíveis gratuitamente na Vagrant Cloud: ○ ubuntu/xenial64: Ubuntu 16.04 Xenial Xerus ○ debian/jessie64: Debian 8 Jessie ○ centos/7: CentOS 7 ● Box para desenvolvedores WordPress: https://varyingvagrantvagrants.org/ ○ https://varyingvagrantvagrants.org/docs/en-US/installed-packages/ Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 6. Vagrant Instalação ● Acessar a página do Vagrant e baixar a versão de acordo com o seu sistema operacional: ○ https://www.vagrantup.com/downloads.html ● Requer um software de virtualização: ○ VirtualBox ○ VMware ○ Docker ○ Hyper-V ○ Outros Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 7. Vagrant Como funciona? Criando um novo ambiente Vagrant: $ mkdir my-wp-plugin $ cd my-wp-plugin $ vagrant init ubuntu/xenial64 Ligando a máquina virtual: $ vagrant up Acessando a máquina virtual: $ vagrant ssh Desligando a máquina virtual: $ vagrant halt Ao desligar, todos os dados são preservados. Destruindo a máquina virtual: $ vagrant destroy Ao destruir, todos os dados serão apagados. Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 8. Composer ● Ferramenta para gerenciamento de dependências em PHP ● Permite a declaração e gerenciamento de bibliotecas que seu o projeto depende para funcionar ○ https://packagist.org/ ● Conceito similar ao de outros gerenciadores de dependências: ○ npm (Node.js) ○ bundler (Ruby) ○ pip (Python) ○ apt-get (Debian/Ubuntu) Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 9. Composer Instalação ● Bash (Linux, Unix, Mac): ○ curl -sS https://getcomposer.org/installer | php ○ sudo mv composer.phar /usr/local/bin/composer ● Pacote PHAR: ○ https://getcomposer.org/composer.phar ● Windows: ○ https://getcomposer.org/Composer-Setup.exe Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 10. Composer Como funciona? ● Caso queira instalar a biblioteca bootstrap no seu projeto: $ composer require twbs/bootstrap ● Ao rodar esse comando em um novo projeto: ○ O arquivo composer.json será criado incluindo o nome da biblioteca que você está instalando. ○ O arquivo composer.lock será criado com detalhes da versão sendo instalada atualmente no projeto. ○ O diretório vendor/ será criado e o bootstrap será instalado dentro dele. ● Commitar os arquivos composer.json e composer.lock junto com seu projeto. ● O diretório vendor/ nunca deve ser commitado (adicionar ao .gitignore). https://github.com/tiagohillebrandt/wordcamp-example-plugin/blob/master/composer.json Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 11. Composer Como funciona? ● Se você baixar qualquer projeto cujo arquivo composer.json já exista, basta acessar o diretório onde o arquivo se encontra e rodar: $ composer install ● O Composer irá ler os arquivos .json e .lock e instalar as dependências listadas neles dentro do diretório vendor/. Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 12. PHP Code Sniffer ● Permite a definição e validação de padrões de desenvolvimento (coding standards) para seu projeto ● Importante para manter a consistência do código ● Coding standards do WordPress: ○ https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/ ● Extensões: ○ Para verificar se seu código é compatível com os coding standards do WordPress: ■ https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards ○ Para verificar se seu código é compatível com uma determinada versão do PHP: ■ https://github.com/wimg/PHPCompatibility Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 13. PHP Code Sniffer Instalação ● Instalando o PHPCS: $ composer require squizlabs/php_codesniffer --dev ● Instalando a extensão WPCS: $ composer require wp-coding-standards/wpcs --dev ● Instalando a extensão PHPCompatibility: $ composer require wimg/php-compatibility --dev Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 14. PHP Code Sniffer Instalação ● Habilitando as extensões no PHPCS: $ ./vendor/bin/phpcs --config-set installed_paths vendor/wp-coding-standards/wpcs/,vendor/wimg/php-compatibility/ ● Outra opção carregar as extensões dentro do próprio composer.json: "scripts": { "post-update-cmd": [ "./vendor/bin/phpcs --config-set installed_paths vendor/wp-coding-standards/wpcs/,vendor/wimg/php-compatibility/" ] } Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 15. PHP Code Sniffer Como funciona? Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd ) ● Os padrões de desenvolvimento são definidos dentro do arquivo phpcs.xml.dist ou ruleset.xml ○ https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml ● PHPCS oferece suporte nativo aos padrões PSR2, Zend, Squiz, PEAR e PSR1 ● Se uma determinada regra (sniff code) do padrão não for necessária no seu projeto, você pode desabilitá-la através da tag exclude ● Exemplo de configuração: ○ https://github.com/tiagohillebrandt/wordcamp-example-plugin/blob/master/phpcs.xml.dist
  • 16. PHP Code Sniffer Quem usa? ● WP-CLI ○ https://github.com/wp-cli/wp-cli/blob/master/phpcs.xml.dist ● WooCommerce ○ https://github.com/woocommerce/woocommerce/blob/master/phpcs.ruleset.xml ● Yoast SEO ○ https://github.com/Yoast/wordpress-seo/blob/trunk/phpcs.xml ● WP Healthcheck ○ https://github.com/wp-healthcheck/wp-healthcheck/blob/develop/phpcs.xml.dist ● Genesis Framework Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 17. npm ● Gerenciador de pacotes para Node.js ● Usado para gerenciar as dependências em JavaScript ● Ou seja, assim como o Composer, o npm permite a declaração e gerenciamento de bibliotecas que o seu projeto necessita ○ https://www.npmjs.com/ Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 18. npm Instalação ● Ao instalar o Node.js em sua máquina, o npm já será instalado com ele ● Debian/Ubuntu: $ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - $ sudo apt-get install -y nodejs ● Outras plataformas: ○ https://nodejs.org/en/download/ Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 19. npm Como funciona? ● O primeiro passo é acessar o seu projeto e rodar o seguinte comando: $ npm init ● Ao rodar o comando acima, algumas informações serão solicitadas, e no fim o arquivo package.json será criado no seu projeto. ● Agora estamos prontos pra usar o npm no nosso projeto. Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 20. npm Como funciona? ● Caso queira instalar o Gulp no seu projeto: $ npm install gulp --save-dev ● Ao rodar esse comando em um novo projeto: ○ O arquivo package.json será atualizado incluindo o nome da biblioteca que você está instalando. ○ O arquivo package-lock.json será criado com detalhes da versão sendo instalada atualmente no projeto. ○ O diretório node_modules/ será criado e o Gulp será instalado dentro dele. ● Commitar os arquivos package.json e package-lock.json junto com seu projeto. ● O diretório node_modules/ nunca deve ser commitado (adicionar ao .gitignore). https://github.com/tiagohillebrandt/wordcamp-example-plugin/blob/master/package.json Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 21. Grunt ● Execução de tarefas em JavaScript pela linha de comando ● As tarefas são configuradas dentro de um arquivo JS, geralmente chamado Gruntfile.js ● Ao instalar certos plugins, você pode automatizar várias tarefas do seu projeto com o Grunt: ○ Gerar o catálogo de traduções do seu plugin (arquivo POT) ○ Verificar se as funções de localização (i18n) do WordPress foram usadas corretamente ○ Compilar Sass para CSS ○ Minificar os arquivos JavaScript e CSS ○ Averiguar a qualidade do seu código JavaScript (linting) ○ Criar um arquivo zip do seu plugin (build) ○ Dentre outras ● Página oficial com os plugins disponíveis: ○ https://gruntjs.com/plugins Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 22. Grunt Instalação ● Primeiro precisamos criar um arquivo package.json para seu projeto: $ npm init ● Ao rodar o comando acima, no campo entry point informe o nome Gruntfile.js ● Feito isso, para instalar o Grunt: $ npm install grunt --save-dev ● Para executar o Grunt: $ node_modules/grunt/bin/grunt Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 23. Grunt Gruntfile.js ● Configuração das tarefas que serão executadas no seu projeto ● É possível criar custom tasks, que compreendem um conjunto de tarefas a serem executadas ● Se o nome da tarefa não for passado como parâmetro ao chamar o Grunt, a tarefa default será executada automaticamente ● Exemplo de configuração: ○ https://github.com/tiagohillebrandt/wordcamp-example-plugin/blob/master/Gruntfile.js Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 24. Grunt Quem usa? ● jQuery ○ https://github.com/jquery/jquery/blob/master/Gruntfile.js ● WordPress ○ https://develop.svn.wordpress.org/trunk/Gruntfile.js ● WooCommerce ○ https://github.com/woocommerce/woocommerce/blob/master/Gruntfile.js ● Yoast SEO ○ https://github.com/Yoast/wordpress-seo/blob/trunk/Gruntfile.js ● Bootstrap ○ https://github.com/twbs/bootstrap/blob/master/Gruntfile.js ● WP Healthcheck ○ https://github.com/wp-healthcheck/wp-healthcheck/blob/develop/Gruntfile.js Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 25. EditorConfig ● Usado para definir e manter um estilo de codificação consistente entre diferentes editores e IDEs ● Você declara as propriedades (indentação, codificação, etc) no arquivo .editorconfig ○ https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties ● Ao abrir o editor ou IDE, ele lê o arquivo e adere ao estilo de codificação definido no .editorconfig ● É necessário baixar o plugin para seu editor ou IDE: ○ http://editorconfig.org/#download Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 26. EditorConfig Quem usa? ● PHP ○ http://git.php.net/?p=php-src.git;a=blob_plain;f=.editorconfig;hb=HEAD ● WordPress ○ https://develop.svn.wordpress.org/trunk/.editorconfig ● WooCommerce ○ https://github.com/woocommerce/woocommerce/blob/master/.editorconfig ● jQuery ○ https://github.com/jquery/jquery/blob/master/.editorconfig ● WP-CLI ○ https://github.com/wp-cli/wp-cli/blob/master/.editorconfig ● Yoast SEO ○ https://github.com/Yoast/wordpress-seo/blob/trunk/.editorconfig Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 27. ● Arquivo com informações sobre o plugin ● Pode conter a descrição, passos para instalação, perguntas frequentes, listagem de screenshots, changelog, notas de upgrade, dentre outras coisas ● É usado para gerar a página do plugin no WordPress Plugin Directory: ○ https://developer.wordpress.org/plugins/wordpress-org/how-your-readme-txt-works/ ● Oferece suporte a Markdown: ○ https://daringfireball.net/projects/markdown/syntax ● Diferente do README.md ● Requerido no processo de submissão de plugins para o WordPress Plugin Directory readme.txt Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 28. Readme Validator ● Permite validar o conteúdo do seu readme.txt ○ https://wordpress.org/plugins/developers/readme-validator/ ● No entanto, ele não permite que você pré-visualize o conteúdo do seu arquivo Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 29. WP Readme ● Assim como o Readme Validator, valida o conteúdo do seu readme.txt ● Além de validar, você também consegue pré-visualizar seu readme.txt https://wpreadme.com/ Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 30. Plugin: WP Healthcheck ● Plugin para verificar o estado da sua instalação WordPress ● Verifica o número e tamanho de Transients e Autoload Options ● Limpeza de Transients e desativação de Autoload Options ● Verifica a versão dos softwares instalados no servidor: ○ PHP ○ MySQL/MariaDB ○ WordPress ○ Servidor web ● Em breve: notificações quando o seu certificado SSL estiver próximo da data de expiração Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )
  • 31. Plugin: WP Healthcheck Disponível gratuitamente para download. ● WordPress Plugin Directory: ○ https://wordpress.org/plugins/wp-healthcheck/ ● WP-CLI: ○ wp plugin install wp-healthcheck Ferramentas Essenciais para Desenvolvedores de Plugins WordPress Tiago Hillebrandt ( @tiagoscd )