This article summarizes and analyzes the introductory knowledge points of Zend Framework. I share it with you for your reference, 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 should be noted here is that you cannot use new to get a Zend_Controller_Front. The getInstance method can only be called to return an instance (my zend_framework uses 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 one more ". ". 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 the same Levels are all in the 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 need 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.
can be written 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);
can be obtained like this when using:
$view=Zend_Registry::get("view");
3. When you first come into contact, the model can be simply understood as a data object. For those who operate the database, you can generally directly inherit the Zend_Db_Table class. This class is very encapsulated and is generally sufficient 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 search the database with your class name by default. table in . 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 be helpful to everyone’s PHP programming based on the Zend Framework framework.
For more articles related to Zend Framework introductory knowledge points, please pay attention to the PHP Chinese website!