通过配置选项配置Zend
分类:威尼斯手机平台

将从官方网上下载下来的ZendFramework-1.0.3,一试,发现不行,较ZendFramework-1.0.2一比原来是改动了一些如:function __autoload($class){ Zend_Loader::loadClass($class);}已经不能再用,报错找不了控制器。现在用的是:Zend_Loader::registerAutoload(); //自动加载类,使用时,直接实例化使用其它的都没有什么变,我就不多说了!带上一网址:_webprogram/php/phpshil/200727/12436_3.html

本文实例讲述了Zend Framework教程之Application用法。分享给大家供大家参考,具体如下:

Zend_Application是Zend Framework的核心组件。Zend_Application为Zend Framework应用程序提供基本功能,是程序的入口点。它的主要功能有两个:装载配置PHP环境,并引导应用程序。

通常情况下,通过配置选项配置Zend_Application构造器,但也可以完全使用自定义方法配置。以下是两个使用用例。

Zend_Application配置选项

/** * Constructor * * Initialize application. Potentially initializes include_paths, PHP * settings, and bootstrap class. * * @param string $environment * @param string|array|Zend_Config $options String path to configuration file, or array/Zend_Config of configuration options * @throws Zend_Application_Exception When invalid options are provided * @return void */public function __construct($environment, $options = null){ $this->_environment =  $environment; require_once 'Zend/Loader/Autoloader.php'; $this->_autoloader = Zend_Loader_Autoloader::getInstance(); if  { if  { $options = $this->_loadConfig; } elseif ($options instanceof Zend_Config) { $options = $options->toArray(); } elseif  { throw new Zend_Application_Exception('Invalid options provided; must be location of config file, a config object, or an array'); } $this->setOptions; }}

Zend_Application配置方法

1.使用配置文件2.使用配置数组

Option

Description

phpSettings

用于配置php.ini选项,要求是数组,数组的键应该是选项的的key.

includePaths

把附加的路径加入到include_path,要求是数组

autoloaderNamespaces

给Zend_Loader_Autoloader注册附加命名空间,为数组

bootstrap

可以是设置bootstrap引导类的路径的字符串,也可以是数组,数组元素要求为 'path' 和 'class'

注意:

选项名称不区分大小写。

Zend_Application的方法

Method

Return Value

Parameters

Description

__construct( $environment, $options = null) Void

$environment:必填。 表示当前应用环境的String。

典型的字符串可能包括 "development", "testing", "qa", or "production",他们必须已经被定义。

对应于配置文件文件中相关章节。

$options:可选的,参数类型可能是:

String: 指定Zend_Config文件的配置路径.$environment用于指定配置文件的哪一个章节

从1.10开始,可以设置多个配置文件路径,然后会被合并成一个单一的配置文件。

这样更灵活,便于重用。

在这种情况下的key是"config",其值是文件路径数组。

注:可以是路径字符串,或 array("config"=>array("/path1","/path2"[,...]));.

Array: 配置应用的关联数组

Zend_Config:配置对象的实例

构造函数。 用于初始化配置对象。 实例化Zend_Loader_Autoloader。

通过传递给构造函数选项然后传递给setOptions()方法。

getEnvironment() String N/A getAutoloader() Zend_Loader_Autoloader N/A

获取Zend_Loader_Autoloader实例

setOptions Zend_Application

$options:必填,要求是数组

所有选项都存储在引用内部,并多次调用该方法来合并选项。

会根据选项生产对于的setter方法。

例如,选项“phpSettings”对应setPhpSettings()。

getOptions() Array N/A hasOption Boolean

$key: 判断是发有指定的配置

getOption Mixed

$key: 获取指定的配置选项的值

key不区分大小写。如果不存在返回NULL

setPhpSettings(array $settings, $prefix = '') Zend_Application

$settings:比填.PHPINI 的配置关联数组.

$prefix:可选. 为选项添加前缀

setAutoloaderNamespaces Zend_Application

$namespaces:必填.

传递命名空间字符串数组,通过Zend_Loader_Autoloader实例注册

setBootstrap Zend_Application

$path:必填.

可能是Zend_Application_Bootstrap_Bootstrapper实例,

格式为classname => filename的关联数组,

或key为“class”和value为“path”的关联数组。

$class:可选. 如果$path是字符串,$class 类名称

getBootstrap() NULL|Zend_Application_Bootstrap_Bootstrapper N/A

获取注册的bootstrap实例.

bootstrap() Void N/A

调用 bootstrap的bootstrap Void N/A

调用bootstrap的run()运行应用

// Create application, bootstrap, and run$application = new Zend_Application( APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini');$application->bootstrap;

_environment =  $environment; require_once 'Zend/Loader/Autoloader.php'; $this->_autoloader = Zend_Loader_Autoloader::getInstance(); if  { if  { $options = $this->_loadConfig; } elseif ($options instanceof Zend_Config) { $options = $options->toArray(); } elseif  { throw new Zend_Application_Exception('Invalid options provided; must be location of config file, a config object, or an array'); } $this->setOptions; } } /** * Retrieve current environment * * @return string */ public function getEnvironment() { return $this->_environment; } /** * Retrieve autoloader instance * * @return Zend_Loader_Autoloader */ public function getAutoloader() { return $this->_autoloader; } /** * Set application options * * @param array $options * @throws Zend_Application_Exception When no bootstrap path is provided * @throws Zend_Application_Exception When invalid bootstrap information are provided * @return Zend_Application */ public function setOptions { if (!empty { if (is_array { $_options = array(); foreach ($options['config'] as $tmp) { $_options = $this->mergeOptions($_options, $this->_loadConfig; } $options = $this->mergeOptions; } else { $options = $this->mergeOptions($this->_loadConfig, $options); } } $this->_options = $options; $options = array_change_key_case; $this->_optionKeys = array_keys; if (!empty($options['phpsettings'])) { $this->setPhpSettings($options['phpsettings']); } if (!empty($options['includepaths'])) { $this->setIncludePaths($options['includepaths']); } if (!empty($options['autoloadernamespaces'])) { $this->setAutoloaderNamespaces($options['autoloadernamespaces']); } if (!empty($options['autoloaderzfpath'])) { $autoloader = $this->getAutoloader(); if (method_exists($autoloader, 'setZfPath')) { $zfPath = $options['autoloaderzfpath']; $zfVersion = !empty($options['autoloaderzfversion']) ? $options['autoloaderzfversion'] : 'latest'; $autoloader->setZfPath; } } if (!empty($options['bootstrap'])) { $bootstrap = $options['bootstrap']; if ) { $this->setBootstrap; } elseif  { if (empty { throw new Zend_Application_Exception('No bootstrap path provided'); } $path = $bootstrap['path']; $class = null; if (!empty { $class = $bootstrap['class']; } $this->setBootstrap; } else { throw new Zend_Application_Exception('Invalid bootstrap information provided'); } } return $this; } /** * Retrieve application options  * * @return array */ public function getOptions() { return $this->_options; } /** * Is an option present? * * @param string $key * @return bool */ public function hasOption { return in_array, $this->_optionKeys); } /** * Retrieve a single option * * @param string $key * @return mixed */ public function getOption { } /** * Merge options recursively * * @param array $array1 * @param mixed $array2 * @return array */ public function mergeOptions(array $array1, $array2 = null) { if  { foreach ($array2 as $key => $val) { if (is_array { $array1[$key] = (array_key_exists && is_array ? $this->mergeOptions($array1[$key], $array2[$key]) : $array2[$key]; } else { $array1[$key] = $val; } } } return $array1; } /** * Set PHP configuration settings * * @param array $settings * @param string $prefix Key prefix to prepend to array values (used to map . separated INI values) * @return Zend_Application */ public function setPhpSettings(array $settings, $prefix = '') { foreach ($settings as $key => $value) { $key = empty ? $key : $prefix . $key; if  { ini_set; } elseif  { $this->setPhpSettings; } } return $this; } /** * Set include path * * @param array $paths * @return Zend_Application */ public function setIncludePaths { $path = implode(PATH_SEPARATOR, $paths); set_include_path($path . PATH_SEPARATOR . get_include_path; return $this; } /** * Set autoloader namespaces * * @param array $namespaces * @return Zend_Application */ public function setAutoloaderNamespaces { $autoloader = $this->getAutoloader(); foreach ($namespaces as $namespace) { $autoloader->registerNamespace; } return $this; } /** * Set bootstrap path/class * * @param string $path * @param string $class * @return Zend_Application */ public function setBootstrap { // setOptions() can potentially send a null value; specify default // here if  { $class = 'Bootstrap'; } if (!class_exists { require_once $path; if (!class_exists { throw new Zend_Application_Exception('Bootstrap class not found'); } } $this->_bootstrap = new $class; if (!$this->_bootstrap instanceof Zend_Application_Bootstrap_Bootstrapper) { throw new Zend_Application_Exception('Bootstrap class does not implement Zend_Application_Bootstrap_Bootstrapper'); } return $this; } /** * Get bootstrap object * * @return Zend_Application_Bootstrap_BootstrapAbstract */ public function getBootstrap() { if (null === $this->_bootstrap) { $this->_bootstrap = new Zend_Application_Bootstrap_Bootstrap; } return $this->_bootstrap; } /** * Bootstrap application * * @param null|string|array $resource * @return Zend_Application */ public function bootstrap { $this->getBootstrap()->bootstrap; return $this; } /** * Run the application * * @return void */ public function run() { $this->getBootstrap; } /** * Load configuration file of options * * @param string $file * @throws Zend_Application_Exception When invalid configuration file is provided * @return array */ protected function _loadConfig { $environment = $this->getEnvironment(); $suffix = pathinfo($file, PATHINFO_EXTENSION); $suffix =  ? pathinfo(basename, PATHINFO_EXTENSION) : $suffix; switch  { case 'ini': $config = new Zend_Config_Ini; break; case 'xml': $config = new Zend_Config_Xml; break; case 'json': $config = new Zend_Config_Json; break; case 'yaml': case 'yml': $config = new Zend_Config_Yaml; break; case 'php': case 'inc': $config = include $file; if  { throw new Zend_Application_Exception('Invalid configuration file provided; PHP file does not return array value'); } return $config; break; default: throw new Zend_Application_Exception('Invalid configuration file provided; unknown config type'); } return $config->toArray(); }}

更多关于zend相关内容感兴趣的读者可查看本站专题:《Zend FrameWork框架入门教程》、《php优秀开发框架总结》、《Yii框架入门及常用技巧总结》、《ThinkPHP入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

本文由威尼斯在线注册平台发布于威尼斯手机平台,转载请注明出处:通过配置选项配置Zend

上一篇:需要智能裁切的 下一篇:PHP5盗链函数@author,本文实例讲述了PHP获取QQ达人QQ信息的方法
猜你喜欢
热门排行
精彩图文