Newsgroup: it.comp.www.php
Titolo: url/routing secondo lo zend

Ciao all, ogni tanto passo di qua :)
Dunque, sto facendo una "cosa" che si ispira vagamente allo zend 
framework. No, usare lo zend o altri framework non è la soluzione, sono 
troppo!
Allora il problema è questo, faccio il parsing del URL come lo zend:
$sito/controller/action/id/5..
il sito è classicamente diviso in due, parte pubblica e amministrazione.
$sito/admin -> carica il controller di default in /admin
$sito/admin/settings -> carica il controller settings in /admin/
Fino a qui tutto ok.
Ora, settings aggiunge un menu con alcune voci e io vorrei che i link 
fossero tutti del tipo; admin/settings/foo, admin/settings/bar/id/n etc, 
etc.
Il problema è che foo potrebbe essere una action di settings ma anche un 
altro controller. 
admin/settings/foo/list dovrebbe richiamare il controller foo con la 
action list
Qui mi fermo. 
Per adesso ho fatto un accrocchio con url tipo: 
admin/settings:foo/action/ ma non mi piace !
Non riesco a capire come si farebbe con lo zend...
Potrei controllare se "foo" è una action di settings e in caso negativo 
andare a cercare il controller "foo" ma per evitare sorprese, dovrei 
farlo solo quando serve (in questo caso per settings) e non a 
"prescindere"..
Idee, soluzioni ?
Ciao.
-- 
*** Linux user # 198661 ---_ ICQ 33500725 ***
    ***  Home  
http://www.kailed.net
  ***
        ***  Powered by openSUSE  ***


il più piccolo è Baseapp, ispirato a CakePHP e CodeIgniter, sono circa 
80kb. Cercando in giro ho trovato anche PunyPHP, lo trovi su Google 
Code, che è un framework in un singolo file.

Andrea D'Amore wrote:

Me li guarderò, grazie.
Anche se così manca il "gusto" (e se vogliamo anche l'aspetto didattico) 
di farselo :)


 action list
Hai due possibilita`, IMHO.
O fai come Zend, che distingue [modulo/]controller/action/parametri (in 
pratica controlla se esiste un modulo con quel nome. Se c'e`, richiama il 
controller DENTRO il modulo, altrimenti richiama quello di default).
Oppure dall'action settings leggi i parametri e da li` interpreti i primi 
due come controller e action, istanziando da li` il controller e 
richiamandone la action.
In ZF sarebbe qualcosa tipo
class AdminController {
 public function setingsAction() {
  $req = $this->getRequest();
  if (in_array($req->getParams(), "foo")) {
   $this->view->content = $this->view->action("foo", $req->getParam
("foo"));
  }
 }
}
(scritto a spanne, spero si capisca :) )
Bye.

Andrea D'Amore wrote:

A titolo informativo:
PunyPHP -> inguardabile. Va bene piccolo ma qui si esagera :)
Baseapp -> boh Non c'è una, e dico una, riga di documentazione!
Probabilmente rimane buona, almeno in parte, quella del Cake ma visto 
che non si sprecano nemmeno a dire questo, ci vediamo un'altra volta :)


 richiamandone la action.
Per adesso ho messo una bella __call() nel controller settings che 
ripulisce l'url e la ripassa al frontController.
Per funzionare funziona ma è anche una buona soluzione ?
Se la __call() è troppo "sporca", ho già ha disposizione un metodo 
preAction() che se presente, viene richiamato prima dell'action vera e 
propria..


 che non si sprecano nemmeno a dire questo, ci vediamo un'altra volta :)
Stesso ostacolo che ho incontrato io ma considera anche che è indicato 
avente versione 0.10 quindi molto immaturo e probabilmente l'autore ci 
lavora a tempo perso.

 che non si sprecano nemmeno a dire questo, ci vediamo un'altra volta :)
Io sto provando Kohana e mi piace. Leggero, documentazione esauriente e
otto secondi e mezzo per installarlo e farlo funzionare (cosa che non mi
è successa con altri framework).
saluti,
M.

 è successa con altri framework).
E' quello basato su CI ma tutto OOP, giusto?
Quanto è grande la directory una volta installata?

 Quanto è grande la directory una volta installata?
1,54 MB
(io ho scaricato tutti i moduli disponibili)
saluti,
M.