struttura modulare

Ciao Gianni sto cercando di suddividere tutto il mio sito in moduli utilizzando una semplice struttura modulare

qualcosa del genre

/htdocs
   /common
      /libs
         /zend
   /domains
      /dominio.ext
         /application
            /modules
               /default
                  controllers
               /blog
                  /controllers
                  /models
                  /views
               /news
                  /controllers
                  /models
                  /views
               /admin
                  /controllers
                  /models
                  /views
               /user
                  /controllers
                  /models
                  /views
               /exploits
                  /controllers
                  /models
                  /views
               /gallery
                  /controllers
                  /models

Il codice del file di bootstrap per ora è questo :

<?php
/**
* Bootstrap file
* @date 07 sep 2007
*/
define('DIR_SERVER_ROOT', $_SERVER['DOCUMENT_ROOT'] . '/');
define('DIR_APP_ROOT'   , 'domains/dominio.ext/');
define('DIR_COMMON'      , DIR_SERVER_ROOT . 'common/');
define('DIR_APP'      , DIR_APP_ROOT . 'application/');
define('DIR_MODULES'   , DIR_APP . 'modules/');

set_include_path(get_include_path() . PATH_SEPARATOR . DIR_COMMON);

require_once DIR_COMMON . 'Zend/Loader.php';
Zend_Loader::registerAutoload();


$front = Zend_Controller_Front::getInstance();
$front->addModuleDirectory(DIR_MODULES);

Ovviamente manca molto prima che possa essere considerato completo.

Provandolo ora ricevo questo errore :

Fatal error: Uncaught exception 'RuntimeException' with message 'DirectoryIterator::__construct(domains/dominio.ext/application/modules/) [<a href='function.DirectoryIterator---construct'>function.DirectoryIterator---construct</a>]: failed to open dir: No such file or directory' in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\common\Zend\Controller\Front.php:314 Stack trace: #0 C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\common\Zend\Controller\Front.php(314): DirectoryIterator->__construct('domains/domin...') #1 C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\domains\dominio.ext\index.php(21): Zend_Controller_Front->addModuleDirectory('domains/domin...') #2 {main} thrown in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\common\Zend\Controller\Front.php on line 314

che devo fare ?? ^^'

 :bye:

inviato 10 anni fa
Andrea Turso
Andrea Turso
96
X 0 X

Sembra che manchi una o più directory dall'elenco o che forse, quelle presenti sono vuote o che comunque manchi un file importante al loro interno.

risposto 10 anni fa
Marco Grazia
X 0 X

Se l'albero delle directory è quello riportato sopra, non vedo nessun riferimento alla cartella /htdocs/common/libs

risposto 10 anni fa
Xscratch
X 0 X

non era quello il problema :D ( in effetti l'albero che ho scritto è quello "ideale" e Zend non si trova in libs, almeno per ora )

comunque ho risolto

i moduli si trovano in /application/modules mentre io indirizzavo a /dominio.ext/modules/

grazie comunque per l'interesse :D

tanto altri problemi arriveranno a breve :2funny: ne sono certo

:bye:

risposto 10 anni fa
Andrea Turso
Andrea Turso
96
X 0 X

Ok, devo completare il file di bootstrap.

Come avvio il front controller in modo che utilizzi i moduli ?

Non andrebbe bene una cosa del genere :

$front = Zend_Controller_Front::getInstance();
$front->addModuleDirectory(DIR_MODULES);
$front->setParam('useDefaultControllerAlways', true);

--

e poi come lo avvio?

--

 ;D

 :bye:

risposto 10 anni fa
Andrea Turso
Andrea Turso
96
X 0 X

trovato il modo, non era run ma dispatch:

$_frontc = Zend_Controller_Front::getInstance();
$_frontc->addModuleDirectory(DIR_MODULES)
      ->setParam('useDefaultControllerAlways', true)
      ->dispatch();
risposto 10 anni fa
Andrea Turso
Andrea Turso
96
X 0 X

Ora che ho risolto il problema con il controller, torniamo alla struttura modulare :D.

Gianni mi sai spiegare bene cosa devo fare per utilizzare la struttura che ho fatto sopra?

Guardando nella documentazione di zend non si capisce molto come sfruttarla ...

io ho bisogno di mettere modelli,viste e controllers in cartelle separate per sezioni e poi avere un layout generale ( che credo debba andare in default )

poi che genere di url devo usare ( del tipo : modulo/controller/azione/* ? )

ma i file principali ?

risposto 10 anni fa
Andrea Turso
Andrea Turso
96
X 0 X

Ok ho capito :D

Ogni controller deve avere un prefisso Cartella_AzioneController extends Zend_Controller_Action :D

:bye:

risposto 10 anni fa
Andrea Turso
Andrea Turso
96
X 0 X

Per gestire le viste senza avere troppe ripetizioni nei file ( header e footer a questo punto in quale modulo vanno? in default credo )

e come li includo in ogni vista?

Devo definire la path per raggiungere le viste di default dalle altre viste?

risposto 10 anni fa
Andrea Turso
Andrea Turso
96
X 0 X

prova ad usare $this->_helper->viewRenderer->setScriptAction con un percorso assoluto della view

 :bye:

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