我想知道Zend Framework中引导程序的真正目的是什么。
Bootstrap类有哪些方法?
任何教程链接都可能有用......如果问题太模糊,请原谅我。我正在尝试学习Zend,但教程和书籍正在跳过步骤,它们在框架网站中并不那么清晰。我可以从快速入门中学到的是,它有助于启动会话。
我是否认为在任何控制器加载之前引导程序首先运行?我可以在bootstrap中编写任何我需要从头开始加载的方法吗?如何在控制器中访问这些引导程序?
答案 0 :(得分:21)
在计算中,引导(从旧表达“通过一个人的引导拉起自己”)是一种技术,通过该技术,简单的计算机程序激活更复杂的程序系统。在计算机系统的启动过程中,小程序(例如BIOS)初始化并测试连接硬件,外围设备和外部存储器设备的基本要求。然后,它从其中一个程序加载程序并将控制权传递给它,从而允许加载更大的程序(例如操作系统)。
在Zend Framework中,bootstrapping是加载应用程序的过程。这包括但不限于会话。在请求完成之前,应用程序处理请求(the dispatch)所需的任何资源都会被引导/加载/初始化,例如,在控制器将任何输入委托给模型并创建一个发送回客户端的响应之前。
其他信息:http://framework.zend.com/manual/1.12/en/zend.application.theory-of-operation.html
答案 1 :(得分:4)
正如戈登所说:
在Zend Framework中,bootstrapping是加载应用程序的过程。这包括但不限于会话。
您可以在Bootstrap类中创建许多私有方法。所有以_init前缀开头的方法名称都将在应用程序启动之前执行一次。
这里有一个例子:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function initSidebar(){
// Define a placeholder view for a template/layout
$this->bootstrap('View'); //Make sure the view resource is made available
$view = $this->getResource('View');
$view->placeholder('sidebar')
->setPrefix("<div class=\"sidebar\">\n <div class=\"block\">\n")
->setSeparator("</div>\n <div class=\"block\">\n")
->setPostfix("</div>\n</div>");
}
protected function initDocType() {
// Define a constant for the Doctype string on the template
$this->bootstrap('View');
$view = $this->getResource('View');
$view->doctype('HTML5');
}
}