autoloader e paths

Ciao Gianni ho uppato il mio progetto nel mio spazio web, la cui struttura è questa:

/home
    /username
        /domains
            /dominio
                /Apps
                    /sito 1
                        /default
                            /models
                            /views
                            /controllers
                        /plugins
                    /sito 2
                        /default
                            /models
                            /views
                            /controllers
                        /plugins
                /Libs
                    /Zend
                /Configs
                    /sito 1
                    /sito 2
                /public_html
                    /sito 1
                        /images
                        /styles
                        .htaccess
                        index.php
                    /sito 2
                        /images
                        /styles
                        .htaccess
                        index.php                
                /private_html
                /public_ftp

allora:

mettendo Apps, Libs e Configs in /home/username, non andava perchè è una cartella privata.

mettendo sempre le stesse dir in domains, non andava per lo stesso motivo

meddendo sempre le stesse dir in /domains/dominio/ va, solo che ora non so come far capire all'autoloader che deve aprire /home/username/domains/dominio/Libs per includere i suoi files...come devo fare?

 :bye:

inviato 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

devi specificare la cartella in set_include_path()

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Gianni l'include path è questa :

/home/user/Common/Libs;/home/user/Common/Apps/sis_discobus;/home/user/Common/Apps/sis_discobus/Default/Models;

ma lo zend framework sembrerebbe non trovare  i file ...

Warning: require_once(Zend/Controller/Request/Abstract.php) [function.require-once]: failed to open stream: No such file or directory in /home/user/Common/Libs/Zend/Controller/Plugin/Abstract.php on line 23

Fatal error: require_once() [function.require]: Failed opening required 'Zend/Controller/Request/Abstract.php'
/home/user/Common/Libs;/home/user/Common/Apps/sis_discobus;/home/user/Common/Apps/sis_discobus/Default/Models;
/home/user/Common/Libs/Zend/Controller/Plugin/Abstract.php on line 23
risposto 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

in set_include_path() prova a togliere il punto e virgola usato per separare i vari percorsi del path e metti al suo posto la costante PATH_SEPARATOR

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

grazie mille gianni, mi hai salvato il posto, come posso ricambiare? :'(

risposto 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

un'ultima cosa :

Warning: require_once(Zend/View/Interface.php) [function.require-once]: failed to open stream: No such file or directory in /home/trash/Common/Libs/Zend/Controller/Action/Helper/ViewRenderer.php on line 25

Fatal error: require_once() [function.require]: Failed opening required 'Zend/View/Interface.php' (include_path='/home/trash/Common//Libs:/home/trash/Common/Apps/sis_discobus:/home/trash/Common/Apps/sis_discobus/Default/Models:.:/usr/local/php5/lib/php') in /home/trash/Common/Libs/Zend/Controller/Action/Helper/ViewRenderer.php on line 25

che devo aggiungere all'include path per far andare anche questo?

risposto 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

in teoria niente... hai verificato che il file Zend/View/Interface.php esiste?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

lol ?

-- qui inizia la canzoncina per la figurà di popò --

no non esiste, stupido uploader FTP che uppa file a metà :D

-- qui finisce la canzoncina per la figura di popò --

scusa per il tempo che ti ho fatto perdere :P

:death:

grazie mille per l'aiuto :D

:bye:

risposto 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

sai perché ti ho chiesto di verificare se il file ci fosse realmente? Perché è capitato anche a me che il client FTP (senza segnalare alcun problema) non completasse l'upload  :wallbash:

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Gianni, un'altra cosa : come mai settando così il file di bootstrap :

define('LIB_DIR', ROOT . 'libs/');
define('APP_DIR', ROOT . 'apps/sis_' . SITE_NAME . '/');
define('CONFIG_DIR', ROOT . 'configs/sis_' . SITE_NAME . '/xml/');

/*
* App based directories
*/
define('PLUGIN_DIR'   , APP_DIR . 'plugins/');
define('VIEW_DIR'   , APP_DIR . 'default/views/');
define('MODEL_DIR'   , APP_DIR . 'default/models/');
define('CONTROLLER_DIR', APP_DIR . 'default/controllers/');

set_include_path(LIB_DIR . PATH_SEPARATOR . MODEL_DIR . PATH_SEPARATOR . VIEW_DIR);

funziona tutto, fuorchè dei models?

aggiungo che non funziona solo il controller delle news, quello dei contenuti va egregiamente...

risposto 9 anni fa
Andrea Turso
Andrea Turso
86
modificato 9 anni fa
X 0 X

Per i controller vale il percorso specificato al front controller. Le view di default vengono cercate allo stesso livello della cartella dei controllers. In questi 2 casi quindi non è il set_include_path() che permette di individuare queste classi.

I model "fatti in casa" come quelli del tutorial devono invece essere in una cartella del PATH quindi se non vengono caricati significa che il PATH non è stato impostato correttamente.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

il bello è che carica contents ( models/contents.php ) e non carica new ( models/news.php )

i controller che caricano i modelli sono :

indexController ( controllers/ )  -> news.php

contentsController ( controllers/ ) -> contents.php

???

:bye:

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