caricare librerie set include path

Ciao ragazzi !!

Ho testato uno script (fa una semplice connessione db) scritto con il framework di zend.

<? 
set_include_path(get_include_path().PATH_SEPARATOR.'ZendFramework-1.8.0\library'.PATH_SEPARATOR.'.\models');  
 require_once('Zend/Loader/Autoloader.php');  
 Zend_Loader_Autoloader::getInstance();
 
 date_default_timezone_set('Europe/Rome');
 
 require ("config.php");
 
 /*connessione db*/
 try{
    $login_db=array('host'=>$host,
                   'username'=>$username,
                 'password'=>$password,
                 'dbname'=>$dbname);
 
    $db=Zend_Db::factory("Pdo_Mysql",$login_db);
 
    $db->getConnection();
    } catch(Zend_Db_Adapter_Exception $e){
        die("Zend Db Adaper Exception : ".$e->getMessage());
    } catch(Zend_Exception $e){
        die("Zend Exception: ".$e->getMessage());
    }
 Zend_Registry::set($db)  ;
 
  
 
 
 ?>

In locale funziona ma  sul  server mi da questo errore

-------------------

Warning: require_once(Zend/Loader/Autoloader.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/web57/web/toto/index.php on line 3

Fatal error: require_once() [function.require]: Failed opening required 'Zend/Loader/Autoloader.php' (include_path='.:/usr/share/php:/usr/share/pear:ZendFramework\library:.\models') in /var/www/web57/web/toto/index.php on line 3

-------------

non so , forse perchè il set include path non viene eseguito correttamente ?

inviato 7 anni fa
Toto007
X 0 X

mi rispondo da solo

ho modificato il set_include_path con la sequente riga

set_include_path(get_include_path().PATH_SEPARATOR.'/var/www/web57/web/toto/ZendFramework/library'.PATH_SEPARATOR.'.\models'); 

riassumendo ho dovuto modificare il percorso in cui risiede la cartella di root di zend framework sul server linux.

però a sto punto non mi è chiaro a che serve mettere get_include_path () :S ?

e .\models ?

risposto 7 anni fa
Toto007
X 0 X

Il set_include_path() imposta i percorsi ne quali PHP cercherà gli script richiamati con le direttive include e require. Ad essere più precisi PHP utilizza questi percorsi quando utilizziamo dei percorsi relativi con le istruzioni include e require. Utilizzando dei percorsi assoluti c'è poco da cercare...

Poiché anche nel php.ini si possono specificare questi path, la funzione set_include_path() rischia di sovrascrivere queste impostazioni. Allora grazie a get_include_path (che restituisce tali percorsi) si riesce ad accodare altri percorsi a quelli specificati nel php.ini

L'inclusione di "\models" permette a PHP di risolvere alcuni include() che puntano alle classi dei Model

 :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda