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 10 anni fa
Andrea Turso
Andrea Turso
96
X 0 X

devi specificare la cartella in set_include_path()

 :bye:

risposto 10 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 10 anni fa
Andrea Turso
Andrea Turso
96
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 10 anni fa
Gianni Tomasicchio
X 0 X

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

risposto 10 anni fa
Andrea Turso
Andrea Turso
96
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 10 anni fa
Andrea Turso
Andrea Turso
96
X 0 X

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

risposto 10 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 10 anni fa
Andrea Turso
Andrea Turso
96
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 10 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 10 anni fa
Andrea Turso
Andrea Turso
96
modificato 10 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 10 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 10 anni fa
Andrea Turso
Andrea Turso
96
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda