Focado no desevolvimento para WordPress
Developers,
como todos perceberam, não venho mais publicando artigos sobre Zend Framework. Meu foco era em ZF quando eu queria desenvolver grandes apps com PHP, e o ZF era o mais indicado. Porém, as coisas tomaram outro rumo e a empresa onde trabalho se tornou a primeira empresa no Brasil 100% voltada para o desenvolvimento com WordPress.
Meu foco mudou a partir daí, do momento em que comecei a usar o WordPress 24h por dia, 365 dias no ano. Com o WordPress enxerguei grandes possibilidades de dar vida aos meus aplicativos e comecei a estudar como migrar esses aplicativos criados em ZF para WP. A migração foi um sucesso, e meus aplicativos se tornaram plugins WordPress.
A cerca de 3 anos venho me especializando no desenvolvimento de plugins WordPress e sua API de desenvolvimento, e nada mais justo do que colaborar com todos vocês um pouco do meu dia-a-dia no desenvolvimento e uso desse grande CMS.
Não estarei removendo os artigos sobre Zend Framework aqui no meu blog, pois eles estão sendo muito úteis para a comunidade. Apenas desabilitei os comentários desses artigos, já que não estou mais por dentro das novidades sobre ZF.
Nos dias atuais, as coisas estão muito corridas, mas farei uma força grande para postar sempre novidades e exemplos no desenvolvimento de aplicativos com WordPress. O que vocês me sugerem? Algum tema que queiram discutir e aprender?
Aqui o silêncio não é ouro.
Como evitar erros no desenvolvimento de plugins WordPress
Graças às boas práticas adotadas por alguns desenvolvedores de plugins WordPress, podemos hoje desfrutar de aplicações fantásticas criadas a partir da API de plugins do WordPress. Um plugin WordPress incrementa novas funcionalidades ou estende as já existentes. Para que isso seja possível, o desenvolvedor precisa conhecer a API dos plugins WordPress e conhecer algumas dessas boas práticas adotadas por grandes desenvolvedores.
Continue lendo esse meu artigo publicado no iMasters: Boas práticas para o desenvolvimento de plugins WordPress – Evitando Erros
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']



