Integrar a biblioteca Zend com WordPress

Procurando uma forma de integrar a biblioteca do Zend Framework para implementar algumas funcões do WordPress, pesquisei em alguns sites algumas sugestões de como proceder. O resultado postado abaixo sugere uma mescla dos diversos resultados encontrados adaptados à minha atual necessidade. Os sites usados na pesquisa encontram-se relacionados abaixo.

Faça o download do Zend Framework Minimal Package no site da Zend (http://www.zend.com/community/downloads)

Descompacte e transfira a pasta library para a raiz do seu template.

No arquivo functions.php insira o código abaixo que fará o include da biblioteca Zend no WP.

set_include_path(
  get_include_path() .
  PATH_SEPARATOR .
  dirname(__FILE__) .
  DIRECTORY_SEPARATOR .
  'library'
);
require_once 'Zend/Loader/Autoloader.php';
$autoloader = Zend_Loader_Autoloader::getInstance();

A partir de agora, qualquer chamada às classes do Zend Framework pelo seu template retornará resultado. Para testar insira o código abaixo em algum arquivo do wordpress, pode ser o single.php se for visualizar um post ou  page.php se for visualizar uma página padrão.

$data = new Zend_Date();
echo $data; // Exibe a data corrente de acordo com o padrão do servidor
$data->toString('YYYY-MM-dd'); // Formata a data no padrão descrito na string

Mas e como fazer para usar as classes que traballham com banco de dados, como o Zend_Db_Table?

No arquivo functions.php, faça a chamada do método Zend_Loader e configure o acesso ao banco de dados.

Zend_Loader::registerAutoload();
$db = Zend_Db::factory('Pdo_Mysql', array(
  'host'          => 'localhost',
  'username'      => 'usuario',
  'password'      => 'senha',
  'dbname'        => 'nomedobanco'
  ));

Zend_Db_Table::setDefaultAdapter($db);

Para cada tabela no banco de dados você deve criar uma classe semelhante a descrita abaixo. Para quem já conhece POO será fácil compreender a estrutura e os elementos.

class Users extends Zend_Db_Table_Abstract {
  protected $_name = 'wp_users';
  }

Para fazer as pesquisas faça a chamada das funções no seu template.

$users = new Users();
$users = $users->fetchAll()->toArray();

echo "<pre>";
  print_r($users[0]);
echo "</pre>";

Não tenho certeza se esse é o método mais seguro ou o mais prático, talvez dê para colocar a configuração do banco no wp-config.php, enfim, ainda serão necessários alguns testes para moldar qual a melhor forma.

Existe um método mais intrusivo descrito em http://www.krotscheck.net/2009/05/16/bootstrapping-a-startup-zend-and-wordpress-auth-integration.html mas que demanda muito mais conhecimento.

Qualquer sugestão a respeito, envie seu comentário.

Referências

http://stackoverflow.com/questions/377628/can-i-integrate-a-zend-framework-powered-web-application-into-a-wordpress-site

http://pt.w3support.net/index.php?db=so&id=377628

http://www.projeteweb.com.br/blog/como-integrar-o-zend-framework-em-um-tema-wordpress

 

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *