core::init
(CoreMVC 1.0)
core::init — 初始化配置
◎描述
array core::init ( [ array $config = null [, mixed &$variable = null ] ] )
array core::init ( string $filename [, mixed &$variable = null ] )
mixed core::init ( string $attribute [, mixed &$variable = null ] )
array core::init ( bool $clear [, mixed &$variable = null ] )
该方法可以通过关联数组配置,可以通过导入文件配置,可以清空配置,在配置的同时触发相应的函数。该方法提供通过属性名称取得属性值。该方法还可以针对某个变量进行配置,而不仅限于核心模块。
◎参数
config
当前要配置的关联数组,数组下标为属性名称,数组值为属性值。如果传入的是空值也会重新初始化。
filename
当前要导入的配置文件。文件名必须以“.php”和“.ini”结尾,否则被视为属性名称。
attribute
要取得属性值的属性名称,如果该属性名称不存在则返回空串。
variable
当前需要配置的变量,默认是核心模块。
clear
是否要完全清空当前配置,如果是则清空为空数组,如果否则完全不变,并且不会触发相应的函数。此参数多用于框架和调试。
◎返回值
如果传入属性名称则返回属性值,未找到时返回空串。其他情况下都会返回配置数组。
◎修改日志
版本 描述
1.2 将第二个参数修改为传址变量,可对此变量进行初始化。
1.1 新增 $class_name 参数,$level 改为1-5级并且正数取值负数赋值。
◎例子
配置核心模块的各种方法
《index.php》
<?php
require_once 'core.php';
core::init(); //在核心模块里修改静态变量
core::init(true); //清空核心模块配置。
var_dump(core::init(false)); //原封不动返回当前配置信息。
core::init(array('autoload_enable'=>true)); //配置某个属性,并且立即生效。
core::init('config.php'); //导入配置文件(返回数组形式),会和之前的配置叠加。
core::init('config.ini'); //导入配置文件(ini格式的),会和之前的配置叠加。
var_dump(core::init('autoload_enable')); //显示1,这是取单个属性值
var_dump(core::init('autoload_path')); //未设置的属性值会返回空串
?>
《config.php》
<?php
return array(
'autoload_enable' => true,
);
?>
《config.ini》
autoload_enable = true
使用第二个参数的方法
《index.php》
<?php
require_once 'core.php';
$value = null;
core::init(null,$value); //$value此时为空数组。
core::init(true,$value); //$value此时为空数组。
var_dump(core::init(false,$value)); //原封不动返回$value值
core::init(array('autoload_enable'=>true),$value); //为$value配置某个属性。
core::init('config.php',$value); //导入配置文件(返回数组形式),会和之前的配置叠加。
core::init('config.ini',$value); //导入配置文件(ini格式的),会和之前的配置叠加。
core::init('autoload_enable',$value);
var_dump($value); //显示1,这是取单个属性值
core::init('autoload_path',$value);
var_dump($value); //未设置的属性值会返回空串
?>
《config.php》
<?php
return array(
'autoload_enable' => true,
);
?>
《config.ini》
autoload_enable = true
模块继承核心模块的初始化方法
《index.php》
<?php
require_once 'core.php';
class index extends core {
/**
* 配置文件或配置数组
*/
private static = '';
/**
* 初始化函数(继承)
*/
public static function init($config = null, &$variable = null) {
if ($variable === null){
return core::init ($config, self::$config);
} else {
return core::init ($config, $variable);
}
}
}
index::init(); //虽然和核心模块的调用方法一样,但初始化的是index模块的配置。
?>