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 9 anni fa
Andrea Turso
Andrea Turso
86
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 9 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 9 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 9 anni fa
Andrea Turso
Andrea Turso
86
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 9 anni fa
Andrea Turso
Andrea Turso
86
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 9 anni fa
Andrea Turso
Andrea Turso
86
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 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Ok ho capito :D

Ogni controller deve avere un prefisso Cartella_AzioneController extends Zend_Controller_Action :D

:bye:

risposto 9 anni fa
Andrea Turso
Andrea Turso
86
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 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

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

:bye:

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