Foros del Web » Programando para Internet » PHP » Zend »

Zend Framework 1.8 - ¿cómo capturar valores del ini file?

Estas en el tema de Zend Framework 1.8 - ¿cómo capturar valores del ini file? en el foro de Zend en Foros del Web. Hola. No puedo capturar los valores de un ini file, con el objeto de poder levantar desde ahí los datos para poder conectar a una ...
  #1 (permalink)  
Antiguo 21/07/2009, 15:46
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 15 años, 5 meses
Puntos: 2
Zend Framework 1.8 - ¿cómo capturar valores del ini file?

Hola.
No puedo capturar los valores de un ini file, con el objeto de poder levantar desde ahí los datos para poder conectar a una base de datos.
Al intentar mostrar los valores del ini file, estos me aparecen vacíos.


Este es el public/index.php :

<?php

define('BASE_PATH', realpath(dirname(__FILE__) . '/../'));
define('APPLICATION_PATH', BASE_PATH . '/application');

// Include path
set_include_path(
BASE_PATH . '/library'
. PATH_SEPARATOR . get_include_path()
);

// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV',
(getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
: 'production'));

// Zend_Application
require_once 'Zend/Application.php';

$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);

echo "<br> ESTE VALOR APARECE VACIO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!: ".
$application->resources->db->params->host;

/** Base de Datos */
/* no se si debo colocar algo aqui para asociar el INI con la BD */


$application->bootstrap();
$application->run();



Este es mi bootstrap:

<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initView()
{
// Initialize view
$view = new Zend_View();
$view->doctype('XHTML1_TRANSITIONAL');
$view->headTitle('Mi Proyecto ZEND');
$view->env = APPLICATION_ENV;

// Add it to the ViewRenderer
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelp er(
'ViewRenderer'
);
$viewRenderer->setView($view);

// Return it, so that it can be stored by the bootstrap
return $view;
}

}


Y este es el ini que lo ví en varios sitios que hablan sobre el zend:

[production]

# Debug output
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0

# Include path
includePaths.library = APPLICATION_PATH "/../library"

# Bootstrap
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

# Front Controller
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.env = APPLICATION_ENV

# Layout
resources.layout.layout = "layout"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"

# Views
resources.view.encoding = "UTF-8"
resources.view.basePath = APPLICATION_PATH "/views/"

# Database
resources.db.adapter = "pdo_mysql"
resources.db.params.host = "localhost"
resources.db.params.username = "root"
resources.db.params.password = ""
resources.db.params.dbname = "mi_db"
resources.db.isDefaultTableAdapter = true

# Session
resources.session.save_path = APPLICATION_PATH "/../data/session"
resources.session.remember_me_seconds = 864000

[testing : production]

# Debug output
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

# Database
resources.db.params.dbname = "myproject_testing"

[development : production]

# Debug output
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

# Database
resources.db.params.dbname = "mi_db"


¿Alguien puede ayudarme con el código que me falta para poder trabajar, tomar los valores del ini, y poder trabajar con una base de datos ?
Thanks!
Mauricio.
  #2 (permalink)  
Antiguo 21/07/2009, 15:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Zend Framework 1.8 - ¿cómo capturar valores del ini file?

Ese sería solo el ini para el bootstrap, si requieres un Ini para parámetros propios lo mejor es que crees otro aparte y lo cargues usando Zend_Config_Ini.

Saludos.
  #3 (permalink)  
Antiguo 21/07/2009, 16:18
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: Zend Framework 1.8 - ¿cómo capturar valores del ini file?

Gracias GatorV, voy a ver como utilizar eso.
  #4 (permalink)  
Antiguo 21/07/2009, 19:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Zend Framework 1.8 - ¿cómo capturar valores del ini file?

Yo lo que hago es algo así en el Bootstrap:
Código php:
Ver original
  1. protected function _initConfiguration() {
  2.         $config = new Zend_Config_Ini(  
  3.             APPLICATION_PATH . '/configs/config.ini',
  4.             APPLICATION_ENV
  5.         );
  6.          
  7.         return $config;  
  8.     }

Luego en el Controller hago algo así:
Código php:
Ver original
  1. $bootstrap = $this->getInvokeArg('bootstrap');
  2. $config = $bootstrap->getResource('configuration')->toArray();
  3. var_dump($config);

Saludos.
  #5 (permalink)  
Antiguo 21/07/2009, 19:22
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: Zend Framework 1.8 - ¿cómo capturar valores del ini file?

Ahhh.. ahi voy teniendo más luces sobre mis dudas. Igualmente, sigo todavia medio perdido como buen nuevito en el Zend. Pero ya con esto tengo un poco más para investigar más orientado.
No hay forma de dejar digamos el contenido del INI en un array ya mismo en el ¿Bootstrap y que luego pueda yo tomar los valores desde cualquier lado?

¿Cómo hace o hago la conexión con la Base en el zend a partir de los datos del INI?
  #6 (permalink)  
Antiguo 21/07/2009, 20:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Zend Framework 1.8 - ¿cómo capturar valores del ini file?

De hecho al hacer return $config se regresa y se guarda el config (el objeto) y ya lo obtienes con getInvokeArg.

La conexión? Pues si ya lo pasaste en el application.ini puedes hacer por ejemplo:
Código php:
Ver original
  1. $db = Zend_Db_Table_Abstract::getDefaultAdapter();

Saludos.
  #7 (permalink)  
Antiguo 21/07/2009, 21:53
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: Zend Framework 1.8 - ¿cómo capturar valores del ini file?

Está bien lo de usar Zend_Config_Ini, pero no fue reemplazado este en la versión 1.8 por la clase Zend_Application.

$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '\configs\config.ini'
);

Debería tomar fácilmente los valores del INI luego de eso, pero la duda es ¿COMO?
  #8 (permalink)  
Antiguo 21/07/2009, 22:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Zend Framework 1.8 - ¿cómo capturar valores del ini file?

No, la clase Zend_Application tiene otro uso totalmente diferente, es para levantar la aplicacion y realizar sencillamente el Bootstraping. Inclusive internamente Zend_Application usa Zend_Config_Ini para parsear los datos del application.ini.

Creeme la solución para usar tus config.ini es como te indico ya que si no, es difícil pasarlas al controller vía el Bootstrap después.

Saludos.
  #9 (permalink)  
Antiguo 22/07/2009, 00:04
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: Zend Framework 1.8 - ¿cómo capturar valores del ini file?

Okay GatorV, haré como me has enseñado.
Lo pruebo y luego comento como me ha ido.

Muchas gracias!!!!!.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:20.