Newsgroup: it.comp.www.php
Titolo: [Zend] istanziare oggetti/variabili comuni

Ciao a tutti.
In un tutorial ho letto che esiste un "punto comune" a tutta
l'applicazione per istanziare oggetti/variabili che devono essere
utilizzati in molti controller (per esempio la connessione al db).
Questo punto comune dovrebbe essere il file di bootstrap e anche qui
ho qualche problema.
Alcuni tutorial dicono che il file di bootstrap é l'index.php altri
bootstrap.php...bo :-(
Cosa dovrei fare se ad esempio volessi fare in modo che una certa
stringa (supponiamo "pippo") venga settata e, tramite registry, venga
messa a disposizione di tutti i controller?
Qualcuno potrebbe farmi un esempio?
Un grazie anticipato a tutte le persone che mi risponderanno.
Ciao

 esempio?
Zend_Registry::set('pippo', 'valore di pippo');
Quando la devi usare:
$pippo = Zend_Registry::get('pippo');
Tieni sempre a mente che il Registry non e` una sessione (lo perdi alla 
fine dello script) e di non abusarne (e` piu` o meno come usare variabili 
global, quindi male).
Io personalmente non lo uso praticamente mai, e infatti ho dovuto cercare 
nel manuale come usarlo...
http://framework.zend.com/manual/en/zend.registry.using.html
Bye.


Ho provato a mettere questo alla fine del mio index.php
Zend_Registry::set('pippo', 'valore di pippo');
ho recuperato il valore con
$pippo = Zend_Registry::get('pippo');
ma l'errore che viene generato é:
No entry is registered for key 'pippo'

 No entry is registered for key 'pippo'
Se fai il dispatch prima di settare il valore nel registry, per forza. :)
Zend Framework non fa niente di magico, fa le cose che gli dici di fare 
nell'ordine in cui le metti. Alcune cose sembrano magiche perche` vengono 
fatte nei costruttori degli oggetti.
Bye.

Questo é il mio index.php:
<?php
// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../
application'));
// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ?
getenv('APPLICATION_ENV') : 'production'));
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    get_include_path(),
)));
/** Zend_Application */
require_once 'Zend/Application.php';
// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
            ->run();
Zend_Registry::set('pippo', 'Io sono pippo');
Non ho capito la questione del dispatch che dicevi prima.

 Non ho capito la questione del dispatch che dicevi prima.
E` appunto quella qui sopra. Fai il bootstrap e il dispatch (dentro il 
run) prima di impostare la variabile nel registry.
Quando tutto e` finito (hai gia` mandato la pagina al browser) imposti la 
variabile, che subito dopo viene distrutta.
Bye.

 Ciao
-- 
Postato da Virgilio Newsgroup: lo usi da web ma con le funzioni del newsreader 
http://newsgroup.virgilio.it
Gerarchie it, italia, it-alt, tin, it.binari. Unico!


Bene ora é tutto chiaro.
Ho iniziato da poco con ZF e questa cosa (molto importante) non la
sapevo.
Grazie per l'aiuto.