Palestra: Boas práticas no desenvolvimento de plugins WordPress
Developers,
hoje ministrei no WordCamp Curitiba sobre Boas práticas no desenvolvimento de plugins WordPress e ontem dei um mini-curso sobre desenvolvimento de plugins WordPress com Orientação a Objetos. O evento foi muito bom, reuniu toda a comunidade WordPress do Brasil e de Curitiba.
Acompanhe abaixo como foi a minha palestra sobre “Boas práticas no desenvolvimento de plugins WordPress”.
Palestra: Apresentando o WordPress
Palestra ministrada pelo meu amigo Arilton Freitas (@arisenna) e por mim (@danieldeveloper) no evento GV Community Day em Gov. Valadares – MG. Este evento aconteceu no dia 20 de novembro de 2010 na Univale e reuniu diversos expectadores com o intuito de conhecer melhor o WordPress.
WordCamp Curitiba
Developers,
O WordCamp Curitiba é uma conferência sobre WordPress, e é organizada pela Comunidade WordPress-BR onde desenvolvedores, designers, blogueiros e usuários casuais poderão assistir palestras e apresentações, trocar idéias e se conhecer num ambiente informal. O evento acontecerá nos dias 22 e 23 de Outubro de 2010 na FESP/PR, e contará com uma grade de atividades que contempla os mais variados níveis de usuários.
Neste grande evento, ministrarei um mini-curso sobre Desenvolvimento de plugin usando Orientação a Objetos e também darei uma palestra sobre Boas práticas no desenvolvimento de plugins WordPress. O evento contará com grandes palestras, mini-cursos e diversas outras atividades.
Se ainda não se cadastrou, faça sua inscrição! Aguardo todos vocês lá!
Desenvolvendo plugins WordPress Orientados a Objetos
Developers,
a alguns meses venho desenvolvendo plugins para WordPress utilizando programação orientada a objetos, e notei o quão ficou mais fácil desenvolvê-los. Sabemos que 98% dos plugins desenvolvidos não usam POO, e hoje com a quantidade enorme de plugins existentes, é muito mais fácil entrarem em conflito.
Por que desenvolver plugins orientados a objetos?
Usando orientação a objetos, seus códigos ficam mais legíveis e suas funções reutilizáveis, além de poder definir constantes, variáveis e funções sem se preocupar com conflitos entre outros plugins que usem métodos com o mesmo nome.
Pré-requisitos
Bom, primeiramente, devemos ter um bom conhecimento sobre WordPress e a API de plugins do mesmo. Saber orientação a objetos (POO) também é imprescindível.
Como seria o desenvolvimento afinal?
Simples, o cabeçalho do plugin não sofre alterações quanto a isso, irá continuar com o padrão do WordPress.
<?php /* Plugin Name: Daniel Developer POO Plugin URI: http://danieldeveloper.com Description: Exemplo de como usar Orientação a Objetos em um plugin WordPress Version: 1.0 Author: Name Daniel Developer Author URI: http://danieldeveloper.com License: GPL2 */ ?>
Agora, precisamos criar a classe do plugin, juntamente com seu método construtor e instanciar o objeto.
Usando PHP 4, teremos:
<?php
class DanielDeveloperPOO {
function DanielDeveloperPOO()
{
echo 'Acessando a função contrutora com PHP 4';
}
}
$plugin_danieldeveloper_poo = new DanielDeveloperPOO();
?>
Usando PHP 5, teremos:
<?php
class DanielDeveloperPOO {
public function __construct()
{
echo 'Acessando a função contrutora com PHP 5';
}
}
$plugin_danieldeveloper_poo = new DanielDeveloperPOO();
?>
Mas porque a diferença entre as duas versões? Simples, a versão 4 do PHP não tem suporte à métodos de orientação a objetos por completo. Como se nota, na versão 4, o método construtor recebe o mesmo nome da classe, e os outros métodos não recebem definições como public, protected, private. Ao contrário da versão 5 do PHP que é mais completo em relação a orientação a objetos.
Neste artigo vamos adotar o PHP 5 para concluirmos nosso exemplo.
Continuando, ao adicionar hooks (ganchos) e filtros em seu plugin, todos eles devem estar dentro do método construtor. Veja um exemplo abaixo:
<?php
class DanielDeveloperPOO {
public function __construct()
{
add_action( 'init', array( &$this, 'textdomain') );
add_action( 'admin_menu', array( &$this, 'menu') );
}
public function textdomain()
{
//...
}
public function menu()
{
//...
}
}
$plugin_danieldeveloper_poo = new DanielDeveloperPOO();
?>
Note que temos novidades na função add_action dos ganchos (linha 6 e 7) ao definir qual método do plugin deverá ser executado. Pois bem, precisamos passar esse array referenciando o objeto em que estamos, juntamente com o nome do método, assim o gancho do WordPress interpretará normalmente qual método executar dentro do seu plugin.
Desenvolver um plugin orientado a objetos é muito interessante para seu código, seu dia-a-dia e para dar aqueles famosos upgrades. Quando desenvolvemos em POO, podemos definir quais métodos estarão públicos e quais estarão disponíveis apenas para o plugin em si. Veja um exemplo abaixo:
<?php
class DanielDeveloperPOO {
public function __construct()
{
add_action( 'admin_menu', array( &$this, 'menu') );
}
public function menu()
{
add_menu_page( 'POO', 'POO', $this->_get_capability(), '' );
}
public function output_capability()
{
echo $this->_get_capability();
}
private function _get_capability()
{
return 'administrator';
}
}
$plugin_danieldeveloper_poo = new DanielDeveloperPOO();
?>
Note o método _get_capability(), ela é privado da classe DanielDeveloperPOO, portanto só poderá ser acessado a partir dela e não de outros arquivos ou classes, dando mais integridade ao seu plugin. No exemplo acima , o método é usado por outros métodos dentro da classe e nunca poderá ser usado ou chamado fora dela.
Observação: Todo método chamado pelos hooks (ganchos), deverão ser publicos, nunca privados ou protegidos. A função add_action é externa e precisa executar métodos definidos em nosso plugin.
Outra coisa que nos deixa mais a vontade ao desenvolver com Orientação a Objetos, é o fato de não nos preocuparmos com os nomes que daremos aos métodos de nosso plugin. Quando programamos em POO, encapsulamos nosso plugin e podemos dar os nomes que desejarmos aos nossos métodos, sem nos preocupar com conflitos entre funções de outros plugins e do WordPress.
É isso Developers, agora que já sabem como usar POO em seus plugins WordPress, vamos colocar a mão na massa? Nossos plugins ficarão mais profissionais e poderão servir de exemplo para muitos outros desenvolvedores. Deixe suas dúvidas e comentários para que possa ajudá-lo.
Bom trabalho a todos.
Obs: Esses produtos abaixo listados, são ofertas de produtos do BuscaPé. Para fazer isso é usado o plugin Lomadee WP – Ofertas Relacionadas, ele foi desenvolvido com orientação a objetos e é um bom exemplo para vocês baixarem e darem uma olhada no seu código.
[lomadeewpro category='' keywords='dell']
Como acelerar o WordPress e melhorar seu desempenho
Developers,
Syed Balkhi (@syedbalkhi) do WPBeginner, apresentou no WordCamp Birminghan 2010 na sessão de desenvolvimento o tema: How to Speed up WordPress and Boost Site Performance, onde ele aborda soluções para melhorar o desempenho e acelerar o WordPress. Vale a pena conferir.



