25.09.2008, 17:18
Für komplexere Internetauftritte
Jeder der eine mehr, oder minder komplexe Webbaplication schreiben will, der wird nach kurzer Zeit bemerken, dass er mit einem Module nicht weit kommt. Zumindest nicht wenn er keine bescheuerten Controllernamen einführen will, oder einige Controller mit 20 Funktionen bestückt.
Um genau sowas zu verhindern ist eine modulare Strucktur gut.
In unserem Verzeichnis modules befindet sich bis dato nur ein Ordner : default.
Hier fügen wir nun einen neuen Ordner hinzu den wir special nennen.
In diesem Verzeichnis erstellen wir nun wieder einen IndexController und die dazugehörigen Viewscripts ( siehe Part III -> Was lernen wir).
nun sollten wir im Ordner Modules folgende Ordnerstrucktur haben :
Achtung :
Die Klasse im Controller darf hier nun nicht nur IndexControler heißen, sondern muss den Modulnamen als Präfix haben. Also :
[code=php]
class special_IndexController extends Zend_Controller_Action {
public function IndexAction()
{
// Programmlogik hier
}
}
[/code]
Das Standart Routing ist :
/{modul}/{controller}/{action}
Also in unserem Fall : special/index/index. Es wird immer zuerst überprüft ob der erste Parameter in der URL ein Modul ist.
/{controller}/{action}
Hier wird alsModul 'default' benutzt.
Jeder der eine mehr, oder minder komplexe Webbaplication schreiben will, der wird nach kurzer Zeit bemerken, dass er mit einem Module nicht weit kommt. Zumindest nicht wenn er keine bescheuerten Controllernamen einführen will, oder einige Controller mit 20 Funktionen bestückt.
Um genau sowas zu verhindern ist eine modulare Strucktur gut.
In unserem Verzeichnis modules befindet sich bis dato nur ein Ordner : default.
Hier fügen wir nun einen neuen Ordner hinzu den wir special nennen.
In diesem Verzeichnis erstellen wir nun wieder einen IndexController und die dazugehörigen Viewscripts ( siehe Part III -> Was lernen wir).
nun sollten wir im Ordner Modules folgende Ordnerstrucktur haben :
Code:
/modules
->/default
->->/controllers
->->->[..]
->->/views
->->->/[..]
->/special
->->/controllers
->->->[..]
->->/views
->->->/[..]
Achtung :
Die Klasse im Controller darf hier nun nicht nur IndexControler heißen, sondern muss den Modulnamen als Präfix haben. Also :
[code=php]
class special_IndexController extends Zend_Controller_Action {
public function IndexAction()
{
// Programmlogik hier
}
}
[/code]
Das Standart Routing ist :
/{modul}/{controller}/{action}
Also in unserem Fall : special/index/index. Es wird immer zuerst überprüft ob der erste Parameter in der URL ein Modul ist.
/{controller}/{action}
Hier wird alsModul 'default' benutzt.