Yii + Zend Framework 1.12

He visto en la WEB muchas comparaciones entre estas dos herramientas, también muchas formas de integrar Zend Framework 2 en Yii. Lo que no es muy común es encontrarse una integración de las herramientas de Zend Framework 1 en Yii y tampoco en muchos otros. Bueno yo les traigo una guía de como usar las bibliotecas de esta herramienta tan poderosa y tan rica en todos los sentidos. Me refiero no a usar ni sus modelos, ni sus controladores ni sus vistas. Más bien a usar bibliotecas como las siguientes:

[list=1]

[*]Zend_Barcode

[*]Zend_Feed

[*]Zend_File

[*]Zend_Http

[*]Zend_Json

[*]Zend_Ldap

[*]Zend_Mail

[*]Zend_Oauth

[/list]Y muchos otros que pueden encontrar en la Referencia de Zend Framework 1.12.

Esta guía se centra en configurar una aplicación Yii para que pueda usar libremente cualquiera de estas bibliotecas, específicamente, Zend_Http_Client.

Edite el archivo index.php de su proyecto de Yii, note que en el caso de querer usar Zend también en la consola hay que hacer lo mismo en el archivo protected/yiic.php.


define('WEBROOT', dirname(__FILE__));

 

define('YII_ROOT', dirname(__FILE__).'/protected');

set_include_path(YII_ROOT . "/includes" . PATH_SEPARATOR . get_include_path());

require_once 'Zend/Loader/Autoloader.php';

 

Zend_Loader_Autoloader::getInstance();

require_once($yii);



Note que el directorio protected/includes del proyecto se configura como include path. Esto significa que luego podría incluirse en el interior del proyecto cualquier archivo de este usando la directiva require_once.

Luego coloque la carpeta Zend del paquete ZendFramework-1.12.9.tar.gz : ZendFramework-1.12.9/library/ en el directorio protected/includes del que habíamos hablado.

Listo, a partir de este punto puede usar el Zend Framework 1.12 en cualquier lugar de su proyecto Yii de la siguiente forma: por ejemplo para usar la API HTTP de Zend:


function post($url, $data=array()){

 $client = new Zend_Http_Client($url, param('httpClient.config'));

 $client->setParameterPost($data);

 $r = $client->request('POST');

 return CJSON::decode($r->getBody());

}

 

function get($url, $data=array(), $encode_json=true){

 $client = new Zend_Http_Client($url, param('httpClient.config'));

 $client->setParameterGet($data);

 $r = $client->request();

 return $encode_json

 ? CJSON::decode($r->getBody())

 : $r->getBody();

}

En este ejemplo en específico desarrollamos dos funciones: una para GET y otra para POST usando la API de Zend Framework en YII.

Bueno, esto es todo. Como ustedes mismos pudieron observar, debido a que no se usaron conceptos muy específicos de Yii podríamos usar, con solo algunos cambios podríamos aplicarlo a cualquier otro Framework.

Hasta la próxima y que les sea de MUCHA utilidad.