关于 Zend Framework 1.9 基础知识的几个问题。
我遵循了快速入门指南,基本上,引导涉及,
一个。来自 index.php:
$ZEND_FRAMEWORK_LIB_PATH = '/appl/ZendFramework-1.9.7/library'; defined('APPLICATION_PATH') || define('APPLICATION_PATH', (realpath(dirname(__FILE__) . '/../application'))); defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production')); set_include_path(implode(PATH_SEPARATOR, array((dirname(dirname(__FILE__)) . '/library'), $ZEND_FRAMEWORK_LIB_PATH, get_include_path(),))); require_once 'Zend/Application.php'; $application = new Zend_Application(APPLICATION_ENV, (APPLICATION_PATH . '/configs/application.ini')); $application->bootstrap()->run();
然后在 Bootstrap.php 中,我有
protected function _initAutoload() { $autoloader = new Zend_Application_Module_Autoloader(array("namespace" => "Default_", "basePath" => dirname(__FILE__),)); return $autoloader; } protected function _initDoctype() { $this->bootstrap("view"); $view = $this->getResource("view"); $view->doctype("XHTML1_STRICT"); }
首先,有几件事我不明白:
一个。如果用户不是通过默认的 index.php 访问该站点,这是否意味着引导(实际上,index.php 中的所有代码,包括环境设置等)都将被绕过?
没有地方明确调用 Bootstrap 的
_initAutoload()
或_initDoctype()
方法。那么什么时候隐式调用这些方法呢?由于在 index.php 中,我已经将配置文件
'/configs/application.ini'
“传递”给 Zend_Application 构造函数,是否有任何方法可以在其他地方检索配置条目?在我的应用程序中,我必须使用不同的数据库(所以我不能只使用
resources.db.*
)。所以在同一个 application.ini 文件中,我有,例如</p>custdb.adapter = "PDO_MYSQL" custdb.params.host = "localhost" custdb.params.username = "username" custdb.params.password = "password" custdb.params.dbname = "custdb"
管理数据库适配器的最佳实践是什么?
一个。是否有可能(我应该)在 index.php 或 Bootstrap.php 中创建数据库适配器并在需要时(以及如何)在其他地方检索它?
或者是否可以(我应该)只在别处检索配置条目(如何?)并在需要时实例化数据库适配器?
谢谢!
最佳答案
这里有一些答案。
2a。所有请求都重定向到 index.php。这是通过 mod_rewrite 完成的,并在 .htaccess 文件中指定。
2b。 Bootstrap 调用任何以 _init
为前缀的方法。参见 Zend Framework - Theory of Operation
2c。是的。 Zend::Config .您可以在 Zend::Registry
中存储一个实例以便于访问。例如:
$config = new Zend_Config((APPLICATION_PATH . '/configs/application.ini'));
$application = new Zend_Application(APPLICATION_ENV, $config);
Zend_Registry::set('config', $config);
查看 API 引用以查看这两个类的构造函数。
我认为快速入门没有那么有用。我建议买一本书。我喜欢 Keith Pope 的“Zend Framework 1.8 Web 应用程序开发”。
关于php - Zend 应用程序/ Bootstrap 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2138547/