Dieser Artikel fasst die einführenden Wissenspunkte von Zend Framework zusammen und analysiert sie. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Das Zend-Framework ist eine Implementierung des MVC-Musters. Um schnell loszulegen, schauen Sie sich einfach den Teil Zend_Controller Zend_View an.
1.Zend_Controller Teil. Die wichtigste Klasse ist Zend_Controller_Front. Der klassische Code zu ihrer Verwendung ist sehr einfach:
$front=Zend_Controller_Front::getInstance(); $front-> setControllerDirectory("./app/controllers"); $front->dispatch();
Was hier erklärt werden sollte, ist, dass Sie new nicht verwenden können, um einen Zend_Controller_Front zu erhalten, sondern nur die Methode getInstance aufrufen können eine Instanz zurückgeben (mein zend_framework 1.01 wird verwendet). Das hier angegebene Controller-Verzeichnis befindet sich im App-Ordner im WWW-Dokumentstammverzeichnis. Im Allgemeinen sollten Apps nicht im Dokumentstammverzeichnis abgelegt werden – ein sogenanntes Sicherheitsproblem: Wenn die Konfiguration nicht streng ist, können die Dateien im WWW-Dokumentstammverzeichnis für Besucher sichtbar sein. Im Allgemeinen sollte es in einem anderen Verzeichnis abgelegt werden. Wenn es beispielsweise auf derselben Ebene wie das Stammverzeichnis des Dokuments abgelegt wird, können Sie Folgendes verwenden:
$front->setControllerDirectory("../app/controllers")
Es gibt ein zusätzliches „.“ Hier werden relative Pfade verwendet. Sie können andere Verzeichnisse mit ihren vollständigen Pfadnamen angeben. Zum Beispiel:
$front->setControllerDirectory("E: /server/app/controllers")
Dieser Teil ist im Index enthalten. in PHP. Bei korrekter Konfiguration wird jede Anfrage von der Rewrite-Funktion an diese $front umgeleitet, die die Front-End-Controller-Zend_Controller_Front-Instanz ist. Sämtliche Authentifizierungs- und sonstigen Verarbeitungsvorgänge müssen vor dem Versand durchgeführt werden.
2. Allgemeine Zend_View-Codes sind:
$view=new Zend_View(); Zend_Registry::set("view".$view);
Die von Zend_Framework empfohlene Verzeichnisstruktur wird standardmäßig übernommen. Das heißt, Ansichten und Controller-Modelle befinden sich alle auf derselben Ebene im Anwendungsverzeichnis. Unter Ansichten gibt es drei Geschwisterverzeichnisse: Skripte, Helfer, Filter. Wenn Sie also einen Controller definieren, müssen Sie unter scrīpts ein neues Verzeichnis erstellen, um die dem Controller untergeordneten Vorlagen zu speichern. Beispielsweise müssen Sie für ein einfaches
Class IndexController extends Zend_Controller_Action { function IndexAction() { } }
ein entsprechendes Indexverzeichnis erstellen und im Indexverzeichnis eine index.phtml-Vorlage erstellen. Wenn Sie unter IndexController eine weitere Funktion addAction() erstellen, müssen Sie eine neue add.phtml im Index erstellen. Wenn Sie einen anderen UserController haben, müssen Sie unter scrīpts ein entsprechendes Benutzerverzeichnis haben. Diese *.phtml-Dateien ähneln HTML-Dateien und definieren, wie der von Ihnen ausgegebene Inhalt angezeigt wird. Sie können es einfach leer lassen. Es kann jedoch nicht weggelassen werden, da sonst ein „Fehler“ angezeigt wird. Ungültiger Controller... Dies liegt daran, dass der Standard-ErrorController bereits registriert wurde. Der Standard-ErrorController wird aufgerufen, wenn der Front-End-Controller die entsprechende Controller-Verteilung nicht finden kann.
Manchmal möchten wir nicht die Standardverzeichnisstruktur oder die Standardansichtsvorlage vom Typ HTML verwenden. Zu diesem Zeitpunkt können wir
$view->setParam ("noViewRanderer",true);
verwenden, um die Standardeinstellung für das PHP-Typverzeichnis abzubrechen. Verwenden Sie
$view->setParam ("noErrorHandler",true);
, um in den Standard-ErrorController zu schreiben. Verwenden Sie
$view->setscrīptPath ("./app/views");
, um den Speicherort Ihrer Vorlage festzulegen. Dies ist nützlich, wenn Sie Smarty-Vorlagen verwenden.
kann wie folgt geschrieben werden:
$view=new Zend_View_Smarty(); $view->setParam("noViewRanderer",true); $view->setParam("noErrorHandler",true); $view->setscrīptPath("./app/views"); Zend_Registry::set("view".$view);
kann wie folgt erhalten werden, wenn:
$view=Zend_Registry::get("view");
verwendet wird
3. Beim ersten Kontakt kann das Modell einfach als Datenobjekt verstanden werden. Für diejenigen, die die Datenbank betreiben, kann diese Klasse im Allgemeinen direkt geerbt werden ist sehr gut gekapselt und reicht im Allgemeinen für die Verwendung aus:
class data extends Zend_Db_Table { protected $_name="data"; }
Sie müssen natürlich nur den Namen der Tabelle angeben. In diesem Fall verwendet zendf standardmäßig Ihren Klassennamen, um nach der Tabelle in der Datenbank zu suchen. Vergessen Sie nicht, defaultAdapter für Zend_Db_Table anzugeben:
$config = new Zend_Config_Ini('./application/config.ini', 'general'); $db = Zend_Db::factory($config->db->adapter, $config->db->config->toArray()); Zend_Db_Table::setDefaultAdapter($db);
config.ini ähnelt [general]
db.adapter = PDO_MYSQL db.config.host = localhost db.config.username = rob db.config.password = 123456 db.config.dbname = zftest
Hope Dieser Artikel erklärt, dass es für jeden hilfreich sein wird, PHP-Programme basierend auf dem Zend Framework-Framework zu entwerfen.
Weitere Artikel zu den einführenden Wissenspunkten zum Zend Framework finden Sie auf der chinesischen PHP-Website!