Tengo una aplicación en Zend Framework 1.0.3 con una base de datos por defecto. En el .INI coloque los elementos de la conexion, un archivo conexion.PHP donde coloco lo siguiente:
Código PHP:
<?php
error_reporting(E_ALL|E_STRICT);
date_default_timezone_set('America/Caracas');
set_include_path('.'. PATH_SEPARATOR .'./library'
. PATH_SEPARATOR . './application/models'
. PATH_SEPARATOR . get_include_path());
include "Zend/Loader.php";
Zend_Loader::loadClass('Zend_Controller_Front');
Zend_Loader::loadClass('Zend_Config_Ini');
Zend_Loader::loadClass('Zend_Registry');
Zend_Loader::loadClass('Zend_Db');
Zend_Loader::loadClass('Zend_Db_Table');
Zend_Loader::loadClass('Zend_Auth');
Zend_Loader::loadClass('Zend_Session');
Zend_Loader::loadClass('Zend_Controller_Plugin_ErrorHandler');
Zend_Loader::loadClass('Zend_Log');
Zend_Loader::loadClass('Zend_Log_Writer_Stream');
Zend_Loader::loadClass('Zend_Session_Namespace');
$config = new Zend_Config_Ini('./application/config.ini','conexion');
$registry = Zend_Registry::getInstance();
$registry->set('conexion',$config);
//Configuracion del Acceso a DB
$db = Zend_db::factory($config->db->adapter,$conexion->db->conexion->toArray());
Zend_Db_Table::setDefaultAdapter($db);
Zend_Registry::set('basedatos',$db);
$frontController = Zend_Controller_Front::getInstance();
//$frontController->throwExceptions(true);
//$frontController->setControllerDirectory('./application/controllers');
$frontController->addModuleDirectory('./application/modules/');
$frontController->registerPlugin(new Zend_Controller_Plugin_ErrorHandler());
$frontController->dispatch();
Y luego en cada controller verifico si la sesion existe con este codigo:
Código PHP:
if ((!$auth->hasIdentity())||(!Zend_Session::sessionExists())){
//inicio del if
$url = $this->view->baseUrl.'/autentico/autentico/findesesion';
echo "<script language>alert('Se ha terminado el tiempo de su sesión, por favor ingrese de nuevo...!');window.top.location='".$url."';</script>";
}//fin del if
Pero mi duda es la siguiente, en el .INI yo incorpore otro elemento para la conexion a otra base de datos. No quiero incorporar en el conexion.PHP el llamado a esa nueva Base de Datos ya que esta solo debe abrir cuando el usuario este en un controller especifico.
Yo realice otro archivo llamado conexion2.PHP pero como lo llamo desde el controller para que realice la conexion? y como hago para no utilizar
Código PHP:
$registry = Zend_Registry::getInstance();
$registry->set('conexion',$config);
Código PHP:
Zend_Db_Table::setDefaultAdapter($db);
Zend_Registry::set('basedatos',$db);