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));
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.
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.
Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.