Chiamare lo zend framework da un'altra classe

ciao a tutti!

sto usando lo zend framework fin dalla versione 0.2.0, è davvero fantastico..cmq ho un bel problema: chiamare lo zend framewrok da una mia classe! Ora mi spiego meglio: sto creando un sito multilingue diviso in directory tipo:

ITA

ENG

FRA

commons

la directory commons contiene roba in comune a tutti e c'è pure lo zend framework. Aggiungo che ogni direcotry nazionalizzata ha una directory class, quindi ad esempio

ITA/class

ENG/class

FRA/class

commons/Zend

ora, nella directory ITA/class c'è, ad esempio, un file php di nome ad esempio classUser.php che contiene una classe USER che richiama una classe dello zend framework . Questo viene fatto nel modo seguente:

<?php

  require_once '../../commons/Zend/Db.php';

  class User {

      $db = Zend_Db::factory('Pdo_Mysql', array( // ecc

  }

?>

ma mi esce sempre un errore!!!!

Warning: require_once(../../commons/Zend/Db.php) [function.require-once]: failed to open stream: No such file or directory in /home/emulman/public_html/ITA/class/classUser.php on line 2

Fatal error: require_once() [function.require]: Failed opening required '../../commons/Zend/Db.php' (include_path='.:/usr/lib/php') in /home/emulman/public_html/ITA/class/classUser.php on line 2

in pratica l'errore accade perchè il file Zend/Db.php in riga 27 va a includere il file Zend/Loader.php e quindi lo va a cercare nel path locale, come se la direcotry Zend fosse sotto ITA/class ! come dargli il path reale????

inviato 9 anni fa
emulman
X 0 X

per avere il percorso assoluto della cartella che contiene lo script corrente puoi usare:

dirname(__FILE__)

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

ti ringrazio..ma la risposta era un'altra!!! partendo dalla tua risposta ho trovato la soluzione in INI_SET. In pratica nella mia classe devo fare così:

<?php
   ini_set('include_path',ini_get('include_path').'.:/'.$_SERVER['DOCUMENT_ROOT']."/commons/Zend");
   require_once('Db.php');

  class User {
     public function ApriDb() {
       // qui puoi suare la libreria Db di Zend Framework!
    }
  }
?>

in pratica con INI_SET aggiungo al path standard anche altre directory, quindi posso aggiungere anche quella dello Zend Framework!

risposto 9 anni fa
emulman
modificato 9 anni fa
X 0 X

ok, adesso ho capito  ;)

allora ti propongo una soluzione simile:

set_include_path(get_include_path() . ":".$_SERVER['DOCUMENT_ROOT']."/commons/Zend");

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

grazie!!!!! ;D ;D :bye:

risposto 9 anni fa
emulman
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda