Vorrei iniziare a comprendere il funzionamento di Zend framework ma non riesco a farlo partire in nessun modo.
In locale ho istallato xampp che nella cartella PEAR (che da come ho capito è una raccolta di librerie) c'è Zend (C://xampp/php/PEAR/Zend).
Il miei problemi sono al momento due:
1) premesso che non voglio accedere fuori alla document root (spesso sugli hosting gratuiti non ho questa possibilità) come devo articolare i file e le cartelle?
2) come devo compilare il file index.php in coerenza con la disposizione file-cartelle?


Il mio obiettivo iniziale è molto semplice due pagine:
1) home page in cui compaiono i titoli degli ultimi 5 articoli inseriti
2) la pagina in cui è possibile leggere il singolo articolo in base all'id ricevuto come parametro

Riporto tabelle e query da eseguire:
codice:
CREATE TABLE  `my_test`.`articoli` (
`id_articolo` INT( 11 ) NOT NULL AUTO_INCREMENT ,
`titolo_art` VARCHAR( 20 ) NOT NULL ,
`testo_art` TEXT NOT NULL ,
`data_inserimento` INT( 10 ) NOT NULL ,
PRIMARY KEY (  `id_articolo` )
) ENGINE = MYISAM ;

SELECT id_art, titolo_art, data_inserimento FROM articoli ORDER BY data_inserimento DESC LIMIT 5

SELECT id_art, titolo_art, data_inserimento, testo_art FROM articoli WHERE id_art='$id_art' LIMIT 1
il file di visualizzazione (view) della home page è molto banalmente:
Codice PHP:
<html>
<body>
<h1>Ultime 5 news</h1>
<?php
/*se ci sono articoli*/
if($this->articoli): ?>
<ul>
<?php
    
foreach($this->articoli as $articoli): 
?>

    [*]
    <a href="<?php echo BASE_URL?>articoli/view/id/<?php echo $this->escape($articoli['id_art']); ?>/">

    <?php echo $this->escape($articoli['titolo_art']); ?>
    (<?php echo $this->escape($articoli['data_inserimento']); ?>)

    </a>
    

<?php
endforeach;
?>[/list]
<?php 
else: 
?>


Nessun articolo presente</p>
<?php endif; ?>
</body>
</html>
Un file di analoga banalità ho fatto per la singola news...

Il file IndexController.php
Codice PHP:
<?php
class IndexController extends Zend_Controller_Action
    
{
    public function 
indexAction()
        {
        
$articoli = new Articoli();
        
$this->view->articoli $articoli->ultimi_articoli();
        }
    }
?>
Il file Articoli.php:
Codice PHP:
<?php
Class Articoli
    
{

    
# ULTIME 5 NEWS
    
public function ultimi_articoli()
        {
        
/*
        prendiamo la connessione che nella index
        abbiamo salvaro/registrato con
        Zend_Registry::set('db', $connessione);
        */
        
$connessione Zend_Registry::get('db');
        
$query "
            SELECT
                id_art,
                titolo_art,
                data_inserimento
            FROM articoli 

            ORDER BY data_inserimento DESC
            LIMIT 5"
;

        

        
$righe $connessione->fetchAll($query);
        
/*convertiamo il timestamp della news in data leggibile*/

        
foreach($righe as $rrr)
            {
            
$righe['data_inserimento'] = date('j/m/Y'$righe['data_inserimento']);
            }
        
/*la funzione ha come output l'array con con le ultime 5 news*/
        
return $righe;
        }



    
# SINGOLA NEWS
    
public function singolo_articolo($id_articolo)
        {
        
$connessione Zend_Registry::get('db');
        
$query ="
            SELECT 
                id_art, 
                titolo_art,     
                data_inserimento,
 
                testo_art
            FROM articoli 
            WHERE id_art='"
.intval($id_articolo)."'
            LIMIT 1"
;
        
$righe $connessione->fetchAll($query);

        if(!empty(
$righe))
            {
            
$righe['data_inserimento'] = date('j/m/Y'$righe['data_inserimento']);
            }
        return 
$righe;
        }
    }
    
?>
il file .htaccess
codice:
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
php_flag register_globals off
php_flag magic_quotes_gpc off