This article summarizes and analyzes the introductory knowledge points of Zend Framework. Share it with everyone for your reference, the details are as follows:
zend framework is an implementation of the MVC pattern. If you want to get started quickly, just look at the Zend_Controller Zend_View part.
1.Zend_Controller part. The most important class is Zend_Controller_Front. The classic code to use it is very simple:
$front=Zend_Controller_Front::getInstance(); $front-> setControllerDirectory("./app/controllers"); $front->dispatch();
What I want to explain here is that you cannot use new to get a Zend_Controller_Front, you can only call the getInstance method to return an instance (used by my zend_framework is 1.01). The controllers directory I specified here is under the app folder under the www document root directory. Generally speaking, apps should not be placed in the document root directory - the so-called security issue: if the configuration is not strict, the files in the www document root directory may be visible to visitors. Generally, it should be placed in another directory. For example, if it is placed at the same level as the document root directory, you can use:
$front->setControllerDirectory("../app/controllers")
There is an extra ".". Relative paths are used here. You can specify other directories using their full path names. For example:
$front->setControllerDirectory("E: /server/app/controllers")
This part is included in the index. in php. Under the correct configuration, any request will be redirected by the rewrite function to this $front, which is the front-end controller Zend_Controller_Front instance. All authentication and other processing must be processed before dispatch.
2.Zend_View common code is:
$view=new Zend_View(); Zend_Registry::set("view".$view);
The directory structure recommended by Zend_Framework is adopted by default. That is, views and controllers models are at the same level. application directory. There are three sibling directories under views: scrīpts helpers filters. In this way, when you define a Controller, you have to create a new directory under scrīpts to store the templates subordinate to the Controller. For example, for a simple
Class IndexController extends Zend_Controller_Action { function IndexAction() { } }
, you have to create an index directory in it accordingly, and create an index.phtml template in the index directory. If you create another function addAction() under IndexController, you have to create a new add.phtml in index. If you have another UserController, you must have a corresponding user directory under scrīpts. These *.phtml files are similar to html files and define how the content you output is displayed. You can simply leave it blank. But it cannot be left out, otherwise it will prompt "error" invalid Controller... This is because the default ErrorController has already been registered. The default ErrorController will be called when the front-end controller cannot find the corresponding controller distribution.
Sometimes we don’t want to use the default directory structure or the default phtml type view template. At this time we can use
$view->setParam ("noViewRanderer",true);
to cancel the default phtml type directory setting. Use
$view->setParam ("noErrorHandler",true);
to write in the default ErrorController. Use
$view->setscrīptPath ("./app/views");
to set the location of your template. This is useful when using smarty templates.
You can write it like this:
$view=new Zend_View_Smarty(); $view->setParam("noViewRanderer",true); $view->setParam("noErrorHandler",true); $view->setscrīptPath("./app/views"); Zend_Registry::set("view".$view);
You can get it like this when using it:
$view=Zend_Registry::get("view");
3. When you first come into contact, the model can be simply understood as a data object. For database operations, you can generally directly inherit Zend_Db_Table. This class is very well encapsulated and is generally enough for use:
class data extends Zend_Db_Table { protected $_name="data"; }
You only need to specify the name of the table. Of course, you don't need to specify it explicitly. In this case, zendf will use your class name to search for the table in the database by default. Don’t forget to specify the defaultAdapter for Zend_Db_Table:
$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 is similar to [general]
db.adapter = PDO_MYSQL db.config.host = localhost db.config.username = rob db.config.password = 123456 db.config.dbname = zftest
I hope this article will help everyone based on Zend Framework framework for PHP programming helps.
For more articles related to Zend Framework introductory knowledge points, please pay attention to the PHP Chinese website!