sto lavorando su una piccola applicazione e sto usando alcune cose dello ZF.
Non uso il loro MVC anche perchè non ho delle vere view, l'applicazione crea script che saranno lanciati via cron, quindi non mi interessa una struttura con quel tipo di pattern.
- in un file bootstrap.php che includo negli altri file ho messo questa roba:
Codice PHP:
require_once 'Zend/Loader/Autoloader.php';
$autoloader = Zend_Loader_Autoloader::getInstance();
#require_once 'Zend/Db.php';
// Opzioni di connessione
$options = array (******');
$db = Zend_Db::factory('Pdo_Mysql', $options);
$db->setFetchMode(Zend_Db::FETCH_OBJ);
- Autoloader:
Le classi di Zend le posso istanziare senza fare il require dei file, vorrei che fosse così anche quando instanzio le mie.
Esempio classe nella cartella pippo/Pippo.php
Classe Pippo che sostanzialmente gestisce il model di un tipo di dato
Nello script che genericamente chiamo pippoController.php
chiamo:
$pippo = new Pippo();
Ora devo fare require 'pippo/Pippo.php'
come faccio a fare in modo dio non dovere mettere il require, ma che il file venga caricato grazie all'instanziazione della classe, come succede per gli oggetti Zend?
- REgistry
Come vedete istanzio Zend db Factory.
Come faccio a rendere $db disponivbile alle classi?
1) variabile Globale?
2) passo alla classe $db ==> $pippo= new Pippo($db)
3) ho letto che si può usare il componente Zend Registry
codice:
A registry is a container for storing objects and values in the application space. By storing the value in a registry, the same object is always available throughout your application. This mechanism is an alternative to using global storage.
Cosa mi suggerite?
$db mi serve perchè per esmpio ho il metodo $pippo->save()
in cui salvo l'oggetto nel db.