Utilizando Bibliotecas de Terceiros

O Yii foi projetado cuidadosamente de modo que bibliotecas de terceiros possam ser facilmente integradas para estender ainda mais as funcionalidades do Yii. Ao utilizar uma biblioteca de terceiros em um projeto, os desenvolvedores frequentemente encontram problemas de nomenclatura de classes e inclusão de arquivos. Uma vez que todas as classes do Yii são prefixadas com a letraC, é menos provável que um problema de nomenclatura de classes ocorra; e já que o Yii confia no autoload da SPL para realizar a inclusão de arquivos de classes, ele pode funcionar bem com outras bibliotecas se elas usam a mesma funcionalidade de auto-carregamento ou o caminho de inclusão do PHP para incluir os arquivos de classes.

A seguir usamos um exemplo para ilustrar como utilizar o componente Zend_Search_Lucene do Zend framework em uma aplicação Yii.

Primeiramente, extraímos o arquivo do Zend Framework em um diretório em protected/vendors, assumindo que protected é o diretório base da aplicação. Verifique se o arquivo protected/vendors/Zend/Search/Lucene.php existe.

Então, no começo de um arquivo de uma classe de controle, insira as seguintes linhas:

Yii::import('application.vendors.*');
require_once('Zend/Search/Lucene.php');

O código acima inclui o arquivo de classe Lucene.php. Por estarmos usando um caminho relativo, precisamos alterar o caminho de inclusão do PHP de modo que o arquivo possa ser localizado corretamente. Isso é feito chamando Yii::import antes de require_once.

Uma vez que a configuração acima tenha sido feita, podemos usar a classe Lucene em uma ação do controle, como a seguir:

$lucene=new Zend_Search_Lucene($pathOfIndex);
$hits=$lucene->find(strtolower($keyword));

1. Utilizando Bibliotecas de Terceiros com Namespace

Para utilizar uma biblioteca com namespace que segue o PSR-0 (tais como o Zend Framework 2 ou o Symfony2) você precisa registrar a sua raiz como um alias de caminho.

Como exemplo utilizaremos a Imagine. Se incluirmos um diretório Imagine em protected/vendors estaremos aptos a utilizá-la da seguinte forma:

Yii::setPathOfAlias('Imagine',Yii::getPathOfAlias('application.vendors.Imagine'));
 
// E então o código padrão do guia da Imagine
// $imagine = new Imagine\Gd\Imagine();
// etc.

No código acima, o nome do alias que nós definimos deve ser o mesmo que a primeira parte do namespace utilizado na biblioteca.

2. Utilizando o Yii em Sistemas de Terceiros

O Yii também pode ser utilizado como uma biblioteca auto-contida para suportar o desevolvimento e reforçar sistemas de terceiros existentes, tais como o WordPress, Joomla, etc. Para fazer isso, inclua o seguinte código no código de inicialização do sistema de terceiros:

require_once('path/to/yii.php');
Yii::createWebApplication('path/to/config.php');

O código acima é muito parecido com o código de inicialização usado por uma aplicação Yii típica, exceto por uma coisa: ele não inclui a chamada do método run() depois de criar a instância da aplicação Web.

Agora você pode utilizar a maioria das funcionalidades oferecidas pelo Yii ao desenvolver melhorias em softwares de terceiros. Por exemplo, você pode usar Yii::app() para acessar a instância da aplicação; nós podemos utilizar as funcionalidades de banco de dados tais como DAO e ActiveRecord; podemos utilizar a funcionalidade de modelos e validações; e assim por diante.

$Id$

Be the first person to leave a comment

Please to leave your comment.