Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 31
  1. #1

    Configurazione di base di Zend Framework

    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

  2. #2
    up... e daiiiiiiii... io aiuto sempre tutti e mai nessuno che mi dia una mano a me...

  3. #3
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Originariamente inviato da oly1982
    up... e daiiiiiiii... io aiuto sempre tutti e mai nessuno che mi dia una mano a me...
    Tu prova a fare domande tipo 'Come faccio a stampare la data corrente?' .... e vedrai che rispondiamo in tanti

    Comunque anche se non sono all'altezza, perchè non conosco Zend Framwork, se non per averlo provato un po di tempo fa ma poi abbandonato .... ma in ogni caso, ho provato il tuo codice e la struttura della cartella dovrebbe essere questa (lo metto su codice se no non si vede l'indentazione):

    codice:
    application
       configs
           application.ini
       controllers
           ErrorController.php
           IndexController.php
       models
           Articoli.php
       views
           helpers
           script
               error
                  error.phtml
               index
                  index.phtml
       Bootstrap.php
    docs
    library
       Zend
           ...... un fantastilione di cartelle ..... IL FRAMEWORK   
    public
         index.php
    tests
    Detto ciò sono riuscito a far avviare la tua applicazione (cioè almeno a farla vedere dal Framework) corregendo il nome della classe da Articoli a Application_Model_Articoli .... perchè quel simpaticone di ZF vuole che nel nome ci sia anche il percorso in cui si trova, non ti posto il codice perchè tanto cambia solo il nome della classe e ovviamente quando la richiami in IndexController cambia anche li.

    fatto questo però il Framwork 'parte' ma va subito in Debug e mi propone il seguente errore:

    'Message: No entry is registered for key 'db' '

    su configs/application.ini ho messo tutti i dati del DB ovvero
    codice:
    resources.db.adapter = PDO_MYSQL
    resources.db.params.host = localhost
    resources.db.params.username = user
    resources.db.params.password = pass
    resources.db.params.dbname = nomeDB
    ..... quindi non capisco perchè mi dia quell'errore


    ..... non so se ti sia stato molto utile tutto ciò (magari fin qui c'eri arrivato da solo) .... però almeno ti sarà servito come 'up'


  4. #4
    ma per come hai fatto tu la index.php si trova nella cartella public e non nella root del sito...
    inoltre la librearia è all'interno della cartella library... mentre io volevo utilizzare quella che su Xampp è nella cartella PEAR...

    In ogni caso mi fai veere in che modo hai scritto il file
    bootstraps.php
    index.php

    mmmmmmmmmmmmm...

  5. #5
    Utente di HTML.it L'avatar di hyde82
    Registrato dal
    Feb 2010
    Messaggi
    243

    zend

    ahhhhh oly....ti aiuto io....Hai configurato il server per il rewrite rule?

  6. #6
    il rewrite url funziona al 100%... ho testato (rozzamente) con un link scritto manualmente

  7. #7
    Utente di HTML.it L'avatar di hyde82
    Registrato dal
    Feb 2010
    Messaggi
    243
    bene ...perchè allora vuoi che index.php non giri in public? poi....usi zf tool?

  8. #8
    Originariamente inviato da hyde82
    bene ...perchè allora vuoi che index.php non giri in public? poi....usi zf tool?
    perchè siccome on line utilizzo spessisimo spazi web gratuiti che non permettono di accedere/inserire file-cartelle al di fuori della document root

    In questi casi se vi sono cartelle che voglio proteggere lo faccio con .htaccess
    codice:
    RedirectMatch permanent ^/cartella_vietata/(.*) /pages/error/page403.php
    zf tool non sò cosa è... (è il mio primo tentativo di utilizzare un framework...)

  9. #9
    Utente di HTML.it L'avatar di hyde82
    Registrato dal
    Feb 2010
    Messaggi
    243
    per la public se usi un server windows ,avrai problemi....ma se prendi uno spazio con server linux non dovresti averne.Lo zf tool è un tool che ti consente di generare da riga di comando nuovi progetti ed aggiungere componenti a progetti esistenti.Comincia a scaricarlo dal sito ufficiale:http://framework.zend.com/manual/en/...ol.html..Segui il link e la procedura di installazione...mooolto semplice.Attendo.

  10. #10
    ma dove diavolo sta il link per il download??!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.